Files
smom-dbis-138/docs/nft/GRU_FORMULAS_NFT.md
defiQUG 2b52cc6e32 refactor(archive): move historical contracts and adapters to archive directory
- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`.
- Updated documentation to reflect the historical status of archived components.
- Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations.
- Enhanced Makefile and package.json scripts for improved contract testing and building processes.
- Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory.
- Updated implementation reports to indicate archived status for various components.
2026-04-12 18:21:05 -07:00

1.8 KiB
Raw Blame History

GRU Formulas NFT

Contract: archive/solidity/contracts/nft/GRUFormulasNFT.sol
Standard: ERC-721


Overview

The GRU Formulas NFT mints up to three token types, each depicting a GRU-related monetary formula as an on-chain SVG graphic.

Token ID Mapping

Token ID Formula Name / Description
0 Money Supply GRU monetary layers: 1 M00 = 5 M0 = 25 M1 (base M00, collateral M0, credit M1). See GRUConstants.sol.
1 Money Velocity Equation of exchange: M × V = P × Y (money supply × velocity = price level × output).
2 Money Multiplier m = Reserve / Supply = 1.0 — no fractional reserve; enforced in ComplianceGuard and ISO4217W tokens.

Minting

  • Only addresses with MINTER_ROLE can mint.
  • mint(to, tokenId) with tokenId 0, 1, or 2.
  • There are exactly three NFTs: tokenId 0, 1, and 2 (one per formula). Each tokenId can be minted once; the recipient receives that formulas graphic.

Metadata

  • tokenURI(tokenId) returns a data URI: data:application/json;base64,<base64(JSON)>.
  • The JSON includes name, description, and image.
  • The image field is a data URI with an on-chain SVG: data:image/svg+xml;base64,<base64(SVG)>.
  • No off-chain or IPFS dependency; all graphics are on-chain.

Deployment

Deploy with an admin address (receives DEFAULT_ADMIN_ROLE and MINTER_ROLE). Grant MINTER_ROLE to any additional minters as needed.

forge create archive/solidity/contracts/nft/GRUFormulasNFT.sol:GRUFormulasNFT --constructor-args <ADMIN_ADDRESS> --rpc-url $RPC_URL --private-key $PRIVATE_KEY

References

  • GRU layers: contracts/vault/libraries/GRUConstants.sol
  • Money multiplier validation: contracts/iso4217w/ComplianceGuard.sol, docs/OPERATIONS_RUNBOOK.md