Cert Logo 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.

Example Half Baked Heroes' Certificate
Example Certificate rendered onchain with multiple previous owners

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.

FeaturesCertificate of Authenticity
ERC-721 Token
ERC-721 Metadata
EIP‑721 Metadata Update
RevealImmediately
MetadataOn-Chain
Metadata RenderingDynamic
ImagesOn-Chain
Image RenderingGenerative

*On-chain means is stored or generated on the Ethereum blockchain directly.

Supply Tokenomics

FeaturesCertificate of Authenticity
BlockchainEthereum
Supply issued at end of mining100%
Allocated to mining100%
Reserved for "marketing"0%
Team allocations0%
Pre-allocations0%
VC private sale0%
Pre-sale0%
Whitelisting0%
Vesting0%

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)