Reference · Permissioned Tokens

ERC-3643 / T-REX Architecture

One line: ERC-20-compatible token whose transfer reverts unless ① the receiver is a verified eligible identity and ② the transfer passes all compliance rules; plus an agent with freeze / forced-transfer / recovery / mint / burn powers.

The gated transfer (the whole idea)

function transfer(address to, uint256 amount) {
  require(!frozen[msg.sender] && !frozen[to]);
  require(identityRegistry.isVerified(to));            // ① WHO may hold
  require(compliance.canTransfer(from, to, amount));   // ② WHETHER allowed
  // then move tokens (ERC-20 semantics)
}

The three layers

LayerQuestionContracts
Tokenthe asset + agent powersToken (ERC-20 + freeze/force/recover/mint/burn)
IdentityWHO may holdIdentity Registry, Identity Registry Storage, Trusted Issuers Registry, Claim Topics Registry, ONCHAINID
ComplianceWHETHER a transfer is allowedCompliance + pluggable rule modules

Identity layer, decoded

ONCHAINIDAn identity contract per holder, storing signed claims (KYC passed, accredited, country = SG).
Identity RegistryMaps wallet address → ONCHAINID. isVerified(addr) = has all required claims from trusted issuers.
Trusted Issuers RegistryWhose claims are accepted (which KYC providers).
Claim Topics RegistryWhich claims are required (KYC? accreditation? jurisdiction?).

Compliance modules (examples)

Max holders · max balance per investor · country allow/deny lists · lock-up periods · daily/volume caps. New rule = new module, no token rewrite. canTransfer = AND of all modules.

Roles

OwnerConfigures the token, registries, and compliance. (Issuer / platform.)
AgentOperates: mint, burn, freeze (full/partial), forced transfer, recovery, register identities. (Transfer agent.)

Agent powers & why

FreezeSanctions, court order, fraud, dispute
Forced transferCourt order, error correction, succession
RecoveryLost key → reissue to new verified wallet
Mint / burnSubscription / redemption

Marketnode mapping

Owner = issuer/platform · Agent = transfer agent/registrar · Identity Registry = KYC'd investor whitelist · Trusted Issuers = accepted KYC providers · Compliance modules = offering terms (jurisdiction, caps, lock-ups). Still off-chain: legal KYC docs, issuer authority, NAV oracle.