BRC-721: NFTs
The BRC-721 token standard on Bitcoin is similar to ERC-721 on Ethereum. It can represent virtually anything in Bitcoin:
collectible items
memberships
lottery tickets
in-game items
and more
Write a BRC-721 smart contract
Extending the OpenZeppelin ERC-721 contract, we can create a hypothetical PFP NFT collection (CryptoWizards) on Bitcoin.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
contract CryptoWizards is ERC721URIStorage {
constructor() ERC721("CryptoWizards", "WIZ") {}
function safeMint(address to, uint256 tokenId, string memory uri) public {
_safeMint(to, tokenId);
_setTokenURI(tokenId, uri);
}
}Compile the contracts
To compile your contracts, use the built-in hardhat compile task.
Deploy the contracts
Review config file hardhat.config.ts. The network configs should look like this.
Run the deploy scripts using hardhat-deploy.
Make sure the accounts in hardhat.config.ts have some $BVM.
Interact with the contracts
Once the contracts are deployed, you can interact with them. We've prepared a few hardhat tasks to make it easy for you to interact with the contracts.
Last updated