Fungible Token Templates
Each of the six templates deploys as an ERC-20 (on EVM chains) or SEP-41 (on Stellar) fungible token, suitable for fractional ownership. You deploy one contract per tokenized asset.1. Farmland
Tokenize ownership of agricultural land. Each deployedFarmlandToken represents a single parcel of farmland, with its physical and legal attributes stored directly on-chain.
Template string: "farmland"
Metadata fields (FarmlandMetadata):
Use cases: Fractional farmland investment platforms, agricultural cooperatives, diaspora remittance-to-land schemes, collateral for crop finance.
2. Commodity Receipt
Tokenize warehouse receipts for physical commodities. ACommodityReceiptToken represents a quantity of goods in a certified warehouse, giving holders a claim on the underlying stock.
Template string: "commodity"
Metadata fields (CommodityMetadata):
Use cases: Structured commodity finance, warehouse receipt financing, grain aggregation platforms, post-harvest loss reduction schemes.
Commodity tokens expose an
assetIsExpired() method that checks whether the current block timestamp has passed expiryDate. Call assetMarkExpired() to transition the asset to EXPIRED status when it lapses.3. Real Estate
Tokenize fractional ownership of property.RealEstateToken supports residential, commercial, industrial, and land asset types, with rental yield and occupancy state tracked on-chain.
Template string: "real-estate"
Metadata fields (RealEstateMetadata):
Use cases: Real estate investment trusts (REITs) on-chain, rental income distribution to token holders, property-backed lending, title registry integration.
4. Invoice
Tokenize trade receivables.InvoiceToken represents the right to receive payment on a commercial invoice, enabling invoice discounting and supply chain finance on-chain.
Template string: "invoice"
Metadata fields (InvoiceMetadata):
Invoice lifecycle (
InvoiceStatus enum):
Use cases: Supply chain finance platforms, invoice discounting marketplaces, SME working capital, buyer-led finance programmes.
5. Carbon Credit
Tokenize verified carbon offsets.CarbonCreditToken represents tonnes of CO₂ equivalent, with retirement tracked immutably on-chain against a named beneficiary.
Template string: "carbon-credit"
Metadata fields (CarbonCreditMetadata):
Each retirement is recorded as a
RetirementRecord on-chain:
Use cases: Corporate sustainability reporting, Kenyan and Nigerian carbon market platforms, voluntary carbon offset registries, deforestation credits.
6. Mining Rights
Tokenize mineral extraction licences.MiningRightsToken represents a fractional interest in a licensed mining concession, with the licence expiry and royalty rate tracked on-chain.
Template string: "mining-rights"
Metadata fields (MiningRightsMetadata):
Use cases: Mining royalty streams as investable assets, licence-backed financing, DRC and West African mining investment vehicles.
NFT Variants
For unique assets — a single farm plot, a specific property title, or a single warehouse vault — Ankara Chain provides ERC-721 (EVM) and Soroban NFT (Stellar) variants. Unlike the fractional ERC-20 templates above, NFT templates issue a single non-fungible token per deployed contract.
NFT metadata types are related to — but not identical to — their fractional counterparts.
FarmlandNFTMetadata replaces valuationUSD with a surveyReportHash field. RealEstateNFTMetadata omits occupancyStatus. MiningRightsNFTMetadata is field-for-field identical to MiningRightsMetadata. CommodityVaultNFTMetadata is warehouse-focused — it has warehouseId, warehouseLocation, operatorAddress, commodityType, quantityKg, gradeClassification, certificateHash, depositDate, and lastUpdated — rather than mirroring CommodityMetadata. You can link an NFT deed to a corresponding ERC-20 fractional token using assetLinkToERC20().
Multi-Token Variants
Two additional templates use ERC-1155 (EVM) for scenarios involving batched or pooled asset positions.commodity-batch
ERC-1155 batch token. Deploy one
CommodityBatchToken contract to represent multiple commodity batches in a single warehouse — each batch is a distinct token ID within the contract. Useful for warehouse operators managing rotating stock.pool-vault
Pooled asset vault.
PoolVaultToken accepts deposits of multiple whitelisted stablecoins and issues a single pool share token back to investors. Supports a management fee in basis points and an oracle for NAV calculation.Asset Lifecycle
Every fungible template tracks a lifecycle status on-chain through theAssetStatus enum. You advance the status explicitly using AssetRegistry.setStatus().
1
DRAFT (0)
The token is deployed but not yet live. Use this state while completing off-chain verification, uploading document hashes, or finalising metadata. Transfers may be restricted depending on your verifier configuration.
2
ACTIVE (1)
The token is live and available for minting, transfer, and investment. This is the normal operating state.
3
SUSPENDED (2)
The token is temporarily halted — for example during a regulatory review or legal dispute. The token contract is paused; no transfers or mints are processed.
4
REDEEMED (3)
The underlying asset has been redeemed and the token’s lifecycle is complete. For farmland this might mean the land has been sold; for invoices, the debt has been fully repaid and token holders have been paid out.
5
EXPIRED (4)
The asset has lapsed — used primarily for commodity receipts past their
expiryDate and mining rights past their licenseExpiry. The SDK exposes dedicated helper methods (assetMarkExpired(), assetMarkLicenseExpired()) for these transitions.