Skip to main content
Commodity Tokens bridge physical assets and blockchain rails through programmable reserve attestation and multi-modal redemption. Lock physical commodities in verified vaults, issue tokens backed by real-time reserve proofs, and enable instant settlement across primary and secondary markets.

Why Institutions Tokenize Commodities

Eliminate Intermediaries

Remove custodians, transfer agents, and settlement intermediaries with on-chain verification

Instant Liquidity

Transform illiquid physical assets into tradable collateral with 24/7 market access

Automated Compliance

Reserve ratios validate on-chain before every mint, preventing over-issuance automatically

Flexible Redemption

Support physical delivery, cash settlement, or unit-based redemption based on asset requirements

Reserve Management

Issuers maintain physical commodity reserves in verified vaults and publish attestations on-chain. Each token locks to a fixed gramsPerToken ratio established at deployment—for gold, this might be 1 gram per token. The contract validates that totalSupply × gramsPerToken ≤ totalGramsReserve × 10^18 before executing any mint operation. Reserve attestations point to third-party audit reports, vault certifications, or quality grading documentation through IPFS URIs or similar content-addressed storage. Issuers update these attestations as new audits complete without requiring contract redeployment. The vaultLocationHash provides cryptographic verification of physical storage locations while maintaining operational security.
Consider a gold token with gramsPerToken = 1e18 (1 gram per token):
// Issuer attempts to mint 1000 tokens
totalSupply = 5000 tokens
gramsPerToken = 1e18
totalGramsReserve = 6500 grams

// Validation check
requiredGrams = (5000 + 1000) × 1e18 / 1e18 = 6000 grams
actualReserve = 6500 grams

// Result: Mint approved (6500 >= 6000)
If the issuer tries minting 2000 tokens instead, the transaction reverts because the reserve would be insufficient (6500 < 7000).

Sub-Issuer Architecture

Multiple financial institutions can issue tokens against the same commodity type through the factory deployment pattern. Each institution becomes a sub-issuer with independent mint limits, fee structures, and redemption processes—but all tokens share the same contract implementation.
Single Issuer ModelSub-Issuer Model
One institution controls all mintingMultiple authorized issuers mint independently
Centralized reserve managementEach sub-issuer maintains separate reserves
Single point of failureDistributed issuance reduces systemic risk
Limited liquidity poolsCombined liquidity across all sub-issuers
Sub-issuers configure their own mintLimit caps that prevent any single institution from dominating supply. The main issuer approves sub-issuer applications and can revoke minting privileges if reserve compliance fails. This creates a federated model where multiple banks or exchanges can offer the same commodity token while maintaining independent operations.

Redemption Modes

Commodity Tokens support three distinct redemption patterns that accommodate different asset types and regulatory requirements:
Users burn tokens to receive physical commodity units. The contract enforces minimum redemption amounts through minTokensForAsset to match standard unit sizes (e.g., 1kg gold bars require at least 1000 tokens if each represents 1 gram).When unitsEnabled = true and unitWeightGrams is set, redemptions must align to physical unit boundaries. Attempting to redeem 1500 grams when units are 1000 grams will revert—users must burn multiples of the unit size.
// User requests physical gold delivery
await commodityToken.createBurnRequest(
    1000e18, // 1000 tokens = 1000 grams = 1 bar
    true,    // burnTokens = physical redemption
    RequestType.MANUAL_APPROVAL,
    0
);
// Tokens locked pending issuer fulfillment
// After verification, issuer ships physical gold
// Request executed, tokens burned, reserve decremented

Request Workflow System

Commodity Tokens implement four request types that balance automation with compliance oversight:
// No approval needed - executes immediately
const requestId = await token.createMintRequest(
    recipientAddress,
    1000e18,          // amount
    1000e18,          // grams added
    RequestType.INSTANT,
    0                 // no timelock
);
// Tokens minted in same transaction
This flexibility lets issuers configure workflows that match their operational requirements—high-frequency trading desks use instant execution while banks processing large commodity deliveries implement manual approval with timelock safeguards.

Fee Distribution

Minting and burning operations can include configurable fees split between the main issuer and the platform. Set mintFeeBps and burnFeeBps to values between 0-1000 basis points (0-10%).
// Configure 0.5% mint fee, 0.25% burn fee
await token.setFees(50, 25); // in basis points

// When user mints 1000 tokens:
// - Total minted: 1000 tokens
// - Fee: 5 tokens (0.5%)
// - User receives: 995 tokens
// - Platform gets: 1.25 tokens (25% of fee)
// - Issuer gets: 3.75 tokens (75% of fee)
Fees cannot exceed 10% (1000 bps) to prevent predatory pricing. The platform automatically receives 25% of all collected fees to sustain infrastructure operations.

Deployment Options

Deploy Commodity Tokens through the Trusset dashboard for guided setup or directly via factory contracts for programmatic control. Both paths generate UUPS upgradeable proxies that share implementation logic while maintaining isolated state.
When calling createCommodityToken on the factory contract:
  • name / symbol: Token identification
  • gramsPerToken: Fixed reserve ratio (e.g., 1e18 for 1 gram per token)
  • mainIssuer: Address with full administrative control
  • redemptionAddress: Where unredeemed tokens route
  • maxSupply: Hard cap on total supply (0 = unlimited)
  • kycRequired: Enforce identity verification on transfers
  • useCustomRegistry: Override factory default KYC registry
  • customRegistry: Custom identity registry address (if enabled)
The factory tracks all deployed tokens by issuer, enabling cross-token analytics and consolidated reporting.

API Reference

Integration endpoints for Commodity Token deployment

Identity Registry

KYC verification integration