CertificateOfAuthenticity (Certificate.sol)
The Certificate NFT accompanying each Half Baked Hero is a dynamic record that meticulously tracks and presents key statistics about the mined hero. This certificate offers a detailed provenance, chronicling the history of ownership over time. Additionally, it provides insightful metrics such as the amount of ETH used to mine the hero; which also determines the Hero's title, the exact mint date of the hero, and the 'block gap'—the number of blocks elapsed without mining activity prior to the hero's mining.
Uniquely, this Certificate NFT is transferable independently of the hero, enhancing its utility and significance. Its tokenURI, along with the certificate's image rendered in SVG format, is generated dynamically on-chain, ensuring that the metadata and visual representation are always current and accurately reflect the hero's ongoing journey and transaction history.
| Features | Certificate of Authenticity |
|---|---|
| ERC-721 Token | ✅ |
| ERC-721 Metadata | ✅ |
| EIP‑721 Metadata Update | ✅ |
| Reveal | Immediately |
| Metadata | On-Chain |
| Metadata Rendering | Dynamic |
| Images | On-Chain |
| Image Rendering | Generative |
*On-chain means is stored or generated on the Ethereum blockchain directly.
Supply Tokenomics
| Features | Certificate of Authenticity |
|---|---|
| Blockchain | Ethereum |
| Supply issued at end of mining | 100% |
| Allocated to mining | 100% |
| Reserved for "marketing" | 0% |
| Team allocations | 0% |
| Pre-allocations | 0% |
| VC private sale | 0% |
| Pre-sale | 0% |
| Whitelisting | 0% |
| Vesting | 0% |
The key features of this contract are:
- ERC721 NFT with all behaviors
- Handles collection (storage) and routing of fees (royalties, swap)
- Provides access to history of Hero transfers
- Provides access to statistics about the amount of ETH that was sent during the initial mining, mint date and the block gap (how many non-mining blocks there were before the hero was minted).
- Can be transferred independently of the HalfBakedHeroes NFT
Non-standard EOA external non-view functions on this contract
updateVibesDirection(address) onlyOwner- Changes where 50% of fees (vibes) are directed; to allow changes to a contract destination in future.
- emits
VibesUpdate(address)
distributeEth()- Sends 50% of ETH in contract to project multi-sig
- Sends 50% of ETH in contract to
LiquidityManger
distributeToken(address)- 100% of Mementos(MOTE) tokens in this contract are burnt
- 100% of Rocket Pools Staked ETH (RETH) in this contract are sent to
LiquidityManger - Other tokens are converted to WETH
- Sends 50% of WETH in contract to project multi-sig
- Sends 50% of WETH in contract to
LiquidityManger
setRenderer(address) external onlyOwner- Updates the renderer contract
- emits
BatchMetadataUpdate(uint256, uint256)
Ecosystem only external methods on this contract (cross contract calls)
notarize(address, uint16, uint80) onlyHBHContract returns (uint16)- Issues Certificate NFT
- Stores additional sent data
- emits
MetadataUpdate(uint256)
refreshMetadata(uint256) onlyHBHContract- Called after transfers of HBH to refresh the providence list
- emits
MetadataUpdate(uint256)