Overview

Ankara Chain ships six ERC-20 asset templates. Each is a UUPS upgradeable proxy deployed via the TokenFactory. All templates inherit AnkaraChainBaseToken — providing mint, burn, pause, role-based access control, and a pluggable identity verifier.

Common Features (All Templates)

Every template provides:
  • ERC-20 fungible token with mint, burn, transfer
  • Pause / unpause — halt transfers in emergencies
  • Role-based access controlMINTER_ROLE, PAUSER_ROLE, MANAGER_ROLE, UPGRADER_ROLE
  • Asset lifecycleDRAFT → ACTIVE → SUSPENDED → REDEEMED / EXPIRED
  • Identity verifier hook — plug in any IIdentityVerifier implementation to gate transfers
  • UUPS upgradeable — fix bugs or add features without migrating token holders
  • On-chain metadata — versioned, with MetadataUpdated events
  • assetId — unique identifier (stored as bytes32, passed as a human-readable string that gets hashed)
  • countryCode — ISO 3166-1 alpha-2

Asset Lifecycle

Status is changed via setStatus(uint8) — requires MANAGER_ROLE.

Identity Verifier

All templates support an optional IIdentityVerifier that gates mints and transfers:
  • Pass identityVerifier in deploy options to enable it
  • Pass address(0) (or omit) for open / no KYC
  • Use the built-in WhitelistVerifier for simple whitelist-based verification on testnet
  • Swap the verifier at any time via setIdentityVerifier(address) without redeploying

Roles

All roles default to the admin address provided at deploy time.