T-REX Smart Contracts
How Axia issues and controls tokenized assets on-chain, the 4 contract models available, and the behavior of each smart contract. Focus on smart contracts and integration.
1. The 4 tokenization models
Every offering picks one model, defined by two decisions: fungible vs NFT and regulated vs standard.
| Model | Contract | Fungible? | Regulated (on-chain KYC)? | Use case |
|---|---|---|---|---|
| 1. Standard NFT | ERC-721 | No (1 = 1 asset) | No | Collectible, simple certificate |
| 2. Standard token | ERC-20 (whitelabel) | Yes (divisible) | No | Utility token, non-regulated share |
| 3. Regulated NFT | AxiaCompliantERC721 | No | Yes | Investment certificate (1 NFT/investor) |
| 4. Regulated token | ERC-3643 (T-REX suite) | Yes | Yes | Tradable share / security token |
- Standard (1 and 2): free transfer, no on-chain identity. Simple and cheap.
- Regulated (3 and 4): every transfer is verified on-chain — only wallets with approved identity/KYC can receive. This is what provides regulatory enforceability (ERC-3643 is the recognized standard for security tokens).
2. Shared Identity layer (models 3 and 4)
The two regulated models share the same identity infrastructure per blockchain — built once per network. This is what makes regulated tokenization possible.
Role of each contract:
- ONCHAINID (ERC-734/735): the investor's on-chain identity. One contract per person, holding the claims (e.g., "KYC approved", "country=BR") signed by a trusted issuer.
- IdentityRegistry (IR): answers "is this wallet verified?". Links
wallet → ONCHAINID. - IdentityRegistryStorage (IRS): the storage of the links — shared across all tokens of the chain, so the investor does on-chain KYC only once and it applies to all regulated offerings.
- TrustedIssuersRegistry (TIR): lists who can issue valid claims. Here = Axia (which approves KYC off-chain and signs on-chain).
- ClaimTopicsRegistry (CTR): which claims the token requires (e.g., KYC).
- ModularCompliance (MC): pluggable transfer rules (lock-up, jurisdiction, limits).
3. Behavior of each smart contract
Model 1 — ERC-721 (standard NFT)
- Classic ERC-721. Free
transferbetween any wallets. - No identity lookup. No freeze/recover.
- Behavior: whoever holds the key controls the NFT.
Model 2 — ERC-20 (standard token / whitelabel)
- Classic ERC-20, with
supplyset at issuance. - Free
transfer/trading. No KYC, no on-chain compliance. - Behavior: ordinary fungible token.
Model 3 — AxiaCompliantERC721 (regulated NFT)
Axia-proprietary contract (auditable) that adds the ERC-3643 layer on top of an ERC-721. Every movement passes through a single control point (_update):
Functions and behavior:
| Function | Who | Behavior |
|---|---|---|
mint(to, tokenId, uri) | Axia Agent | Issues the NFT; reverts if to is not verified |
transfer (user) | Investor | Only to a verified wallet; respects freeze/pause/compliance |
setAddressFrozen(wallet, bool) | Agent | Freezes/unfreezes a wallet |
setTokenFrozen(tokenId, bool) | Agent | Freezes a specific NFT |
forcedTransfer(from, to, tokenId) | Agent | Moves by court order/correction; ignores freeze, but requires a verified destination |
recover(old, new, onchainId, tokenId) | Agent | Recovers an NFT from a lost wallet → new wallet of the same ONCHAINID |
pause()/unpause() | Agent | Pauses user transfers (agent mint/forced still run) |
burn(tokenId) | Agent | Burns |
Model 4 — ERC-3643 / T-REX suite (regulated token)
Tokeny's reference implementation (open-source, audited) of the ERC-3643 standard. The Token is an ERC-20 whose transfers consult the same IR + Compliance:
| Function | Behavior (vs model 3) |
|---|---|
mint(to, amount) | Fungible (amount, not tokenId); reverts if not verified |
transfer | Same: only between verified parties + compliance |
freezePartialTokens(wallet, amount) | Freezes part of the balance (granularity the NFT lacks) |
setAddressFrozen | Freezes the entire wallet |
forcedTransfer(from, to, amount) | Same semantics |
recoveryAddress(lost, new, onchainId) | Recovers the full balance to a new wallet of the same ONCHAINID |
pause/unpause, batch* | Pause + batch operations |
Same identity layer for models 3 and 4 → a verified investor can receive both a compliant NFT and a regulated fungible token, without redoing on-chain KYC.
4. Issuance flow (contract deploy)
Issuance is automatic when the offering is activated/closed, according to the configured model.
5. Contribution → identity → mint flow (regulated models)
The on-chain identity is provisioned on demand (lazy) at mint time — the investor does nothing beyond the normal KYC.
If the investor does not have approved KYC, provisioning fails and the mint reverts — by construction, a regulated asset never goes to an unverified wallet.
6. Transfer flow (regulated secondary market)
P2P between investors and listing on an exchange work as long as both ends have KYC — which is exactly the requirement of a security token.
7. Behavior matrix (summary)
| Capability | Model 1 ERC-721 | Model 2 ERC-20 | Model 3 Regulated NFT | Model 4 ERC-3643 |
|---|---|---|---|---|
| Free transfer | ✅ | ✅ | ❌ (KYC only) | ❌ (KYC only) |
| On-chain identity (KYC) | — | — | ✅ | ✅ |
| On-chain compliance | — | — | ✅ | ✅ |
| Freeze wallet | — | — | ✅ | ✅ |
| Freeze partial (balance) | — | — | n/a (NFT) | ✅ |
| Forced transfer (agent) | — | — | ✅ | ✅ |
| Recover lost wallet | — | — | ✅ | ✅ |
| Pause token | — | — | ✅ | ✅ |
| Fungible / divisible | ❌ | ✅ | ❌ | ✅ |
| Recognized as security token | — | — | partial¹ | ✅ |
¹ The regulated NFT uses the same identity/compliance mechanism as ERC-3643 applied to ERC-721; the formal "ERC-3643" label belongs to the fungible model.
8. Administrative actions (regulated models)
Operated by Axia (the Agent role in the contract), under permission + reinforced authentication:
- Recover only moves assets to a wallet of the same ONCHAINID — it is not possible to divert them to an arbitrary address.
- Revoke identity removes the investor from the chain's IdentityRegistry → affects all of their regulated assets on that network.
9. Why this design
- Reuse, not reinvention: model 4 uses Tokeny's T-REX suite (audited), the de facto standard for security tokens recognized by regulators (e.g., VARA/ADGM). Axia does not rewrite the standard — it integrates it.
- Transparent custody: the investor only does the KYC; Axia (custodial) provisions the on-chain identity and pays the gas. The experience is the same as an ordinary app.
- Single on-chain KYC per chain: thanks to the shared IRS, the investor is verified once and can join any regulated offering on that network.
- Enforceable: an irregular transfer does not execute — it does not depend on the backend being correct/online. It is a guarantee at the contract level.
Glossary
| Term | Meaning |
|---|---|
| ERC-3643 | Regulated security token standard (on-chain identity + compliance) |
| T-REX | "Token for Regulated EXchanges" — reference implementation of ERC-3643 (Tokeny) |
| ONCHAINID | The investor's on-chain identity contract (ERC-734/735) |
| Claim | Signed attestation (e.g., KYC approved) stored in the ONCHAINID |
| Trusted Issuer | Who can issue valid claims (Axia) |
| Agent | Administrative role in the contract (mint, freeze, recover…) |
| Compliance | Set of on-chain rules that validate each transfer |