Overview
Ankara Chain ships six ERC-20 asset templates. Each is a UUPS upgradeable proxy deployed via theTokenFactory. 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 control —
MINTER_ROLE,PAUSER_ROLE,MANAGER_ROLE,UPGRADER_ROLE - Asset lifecycle —
DRAFT → ACTIVE → SUSPENDED → REDEEMED / EXPIRED - Identity verifier hook — plug in any
IIdentityVerifierimplementation to gate transfers - UUPS upgradeable — fix bugs or add features without migrating token holders
- On-chain metadata — versioned, with
MetadataUpdatedevents assetId— unique identifier (stored asbytes32, passed as a human-readable string that gets hashed)countryCode— ISO 3166-1 alpha-2
Asset Lifecycle
setStatus(uint8) — requires MANAGER_ROLE.
Identity Verifier
All templates support an optionalIIdentityVerifier that gates mints and transfers:
- Pass
identityVerifierin deploy options to enable it - Pass
address(0)(or omit) for open / no KYC - Use the built-in
WhitelistVerifierfor 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.