A Hardhat plugin to upload your build artifacts to IPFS
Used by buildship.xyz, e.g. in nft-contracts.
Lets you deploy your smart-contract from your browser, using browser wallet like Metamask.
Uses nft.storage, so you need to create an account there and get an API key.
npm install @buildship/hardhat-ipfs-upload
Import the plugin in your hardhat.config.js
:
require("@buildship/hardhat-ipfs-upload");
Or if you are using TypeScript, in your hardhat.config.ts
:
import "@buildship/hardhat-ipfs-upload";
No!
This plugin creates upload
task.
You will need nft.storage API key. You can get it here.
You can set it in .env
file:
NFT_STORAGE_API_KEY=...
Or set it as environment variable:
export NFT_STORAGE_API_KEY=...
Then you can use upload
task:
npx hardhat upload contracts/MyContract.sol
Example output:
Uploading contracts/MyContract.sol to IPFS...
Uploaded! Deploy at https://gate-rinkeby.buildship.xyz/deploy/Qm...
Usage: hardhat [GLOBAL OPTIONS] upload --args <STRING> --ascii <STRING> contract
OPTIONS:
--args Deploy arguments
--ascii ASCII art file path (.txt)
POSITIONAL ARGUMENTS:
contract Contract to deploy
If you need your NFT contract to be deployed to Ethereum, try no-code NFT launcher at https://app.buildship.xyz.
MIT
Feel free to open issues and PRs!
<A list of changes in each version>
- Initial release
- Add basic tests
- Add ipfs upload tests
- Accept NFT_STORAGE_API_KEY from hardhat config
- Use public IPFS upload endpoint
- Host website itself on IPFS