{"id":15647583,"url":"https://github.com/cazala/eth-pictures","last_synced_at":"2025-04-30T13:16:44.291Z","repository":{"id":66201332,"uuid":"204617442","full_name":"cazala/eth-pictures","owner":"cazala","description":"🎨 Draw your own NFTs","archived":false,"fork":false,"pushed_at":"2020-04-27T02:20:09.000Z","size":755,"stargazers_count":44,"open_issues_count":0,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-09T02:51:07.593Z","etag":null,"topics":["ethereum","infura","ipfs","nft","opensea","openzeppelin"],"latest_commit_sha":null,"homepage":"https://eth.pictures","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cazala.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-27T04:09:01.000Z","updated_at":"2024-08-21T20:38:41.000Z","dependencies_parsed_at":"2023-03-13T20:30:29.111Z","dependency_job_id":null,"html_url":"https://github.com/cazala/eth-pictures","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cazala%2Feth-pictures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cazala%2Feth-pictures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cazala%2Feth-pictures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cazala%2Feth-pictures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cazala","download_url":"https://codeload.github.com/cazala/eth-pictures/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242656037,"owners_count":20164431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","infura","ipfs","nft","opensea","openzeppelin"],"created_at":"2024-10-03T12:19:55.943Z","updated_at":"2025-03-09T06:33:08.049Z","avatar_url":"https://github.com/cazala.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ETH Pictures\n\nThis tool is an experiment I did to play with decentralized infrastructure.\n\nThe images are uploaded to [IPFS](https://ipfs.io), and an NFT (non-fungible token) is minted in the Ethereum blockchain to represent each picture.\n\nEach token is ownable, transferrable, tradable and unique.\n\nThe gallery data is pulled from [OpenSea](https://opensea.io)'s API.\n\n## Setup\n\n0. Environment variables\n\n```\n$ mv .env.example .env\n```\n\nAdd your `REACT_APP_INFURA_TOKEN`\n\n1. Install dependencies\n\n```\n$ npm install\n```\n\n2. Start dev-server\n\n```\n$ npm start\n```\n\n3. Production build\n\n```\n$ npm run build\n```\n\n## Deploy your own contract\n\nYou need to fill the `MNEMONIC` and `REACT_APP_INFURA_TOKEN` environment variables in your `.env` file:\n\n```\nMNEMONIC=\"bunker satoshi food...\"\nREACT_APP_INFURA_TOKEN=b013...\n```\n\nThen use `openzeppelin create` command and follow the interactive steps to deploy your contract.\n\nTo use this new contract just update the `REACT_APP_CONTRACT_ADDRESS` environment variable.\n\n## Modifying the contract\n\nIf you make changes to `contracts/EthPictures.sol` you will need to do the following afterwards:\n\n1. Compile contracts\n\n```\n$ npm install -g @openzeppelin/cli\n$ openzeppelin compile\n```\n\n2. Generate TypeScript interfaces\n\n```\n$ npm run contracts\n```\n\nIf you have problems compiling your app after this, check out the [Troubleshooting](https://github.com/cazala/eth-pictures/blob/master/README.md#troubleshooting) section.\n\n## Rinkeby\n\nTo use the Rinkeby testnet you need to point to a Rinkeby contract (you can deploy your own or use the one shown below), and also point to OpenSea's rinkeby API, like this:\n\n```\nREACT_APP_CONTRACT_ADDRESS=0xd9284B013f9237BAA3d884dca36FA1658430b178\nREACT_APP_OPENSEA_API=https://rinkeby-api.opensea.io\nREACT_APP_OPENSEA_URL=https://rinkeby.opensea.io\n```\n\nThat address is an actual instance of the contract deployed to Rinkeby: [link to Etherscan](https://rinkeby.etherscan.io/address/0xd9284b013f9237baa3d884dca36fa1658430b178).\n\n## Troubleshooting\n\nIf your build is failing due to a problem with `src/contracts/EthPicturesAbi.ts` try typing the ABI as `any`, by changing the last line in that file to the following:\n\n```tsx\n] as any)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcazala%2Feth-pictures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcazala%2Feth-pictures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcazala%2Feth-pictures/lists"}