Files
smom-dbis-138/docs/tokenization/TOKEN_SCOPE_GRU.md
2026-03-02 12:14:09 -08:00

8.3 KiB

GRU Token Scope (Deployed vs Specified)

This document lists GRU-M1 base money, ISO-4217 W tokens, Aave-style asset/debt tokens, and flash loan coverage. All tokens are ERC-20 compliant for DEX liquidity pool compatibility. Use deterministic deployment (CREATE2) for cross-chain tokens; same address everywhere.

ISO-4217 symbol matrix: For compliant token symbol construction (6-char native, 7-char bridged) and v0/v1 mapping, see ISO4217_COMPLIANT_TOKEN_MATRIX.md. On ChainID 138 only, token symbols are v0 (no chain designator): cUSDT, cUSDC; the X is left out. X is used only when denoting Chain 138 as origin elsewhere (e.g. bridged).

1. Base Money (GRU-M1) — ERC-20, DEX-ready

Token Contract / config Status Decimals Notes
cUSDC CompliantUSDC.sol Deployed 6 Chain 138; CREATE2 on other chains.
cUSDT CompliantUSDT.sol Deployed 6 Same.
cEURC CompliantFiatToken.sol Specified 6 EUR; deploy via CompliantFiatToken.
cEURT CompliantFiatToken.sol Specified 6 Tether EUR.
cGBPC CompliantFiatToken.sol Specified 6 GBP.
cGBPT CompliantFiatToken.sol Specified 6 Tether GBP.
cAUDC CompliantFiatToken.sol Specified 6 AUD.
cJPYC CompliantFiatToken.sol Specified 6 JPY (often 0 or 2 decimals; 6 for uniformity).
cCHFC CompliantFiatToken.sol Specified 6 CHF.
cCADC CompliantFiatToken.sol Specified 6 CAD.
cXAUC CompliantFiatToken.sol Specified 6 XAU-backed.
cXAUT CompliantFiatToken.sol Specified 6 Tether XAU.
LiXAU Specified 6 XAU-liquidity-adjusted; map or add.

Properties for all: ISO-4217 aligned naming and decimals, non-interest-bearing, fully redeemable, E-Money safeguards, reserve attestation hooks. Full ERC-20 (transfer, approve, balanceOf) for DEX pools.

2. ISO-4217 W Tokens (M1 eMoney) — ERC-20, DEX-ready

Token Contract Status Decimals Notes
USDW ISO4217WToken In script 2 DeployISO4217WSystem.s.sol.
EURW ISO4217WToken In script 2 Same.
GBPW ISO4217WToken In script 2 Same.
AUDW ISO4217WToken Specified 2 Deploy via TokenFactory.
JPYW ISO4217WToken Specified 2 Same.
CHFW ISO4217WToken Specified 2 Same.
CADW ISO4217WToken Specified 2 Same.

Use TokenFactory or extend DeployISO4217WSystem.s.sol. Full ERC-20 for DEX.

3. Asset Tokens (Aave-style, ac*) — ERC-20, DEX-ready

Token Contract Status Decimals CREATE2 salt
acUSDC DepositToken Mapped 6 keccak256("DepositToken.acUSDC")
acUSDT DepositToken Mapped 6 keccak256("DepositToken.acUSDT")
acEURC DepositToken Specified 6 keccak256("DepositToken.acEURC")
acGBPC DepositToken Specified 6 keccak256("DepositToken.acGBPC")
acAUDC DepositToken Specified 6 keccak256("DepositToken.acAUDC")
acJPYC DepositToken Specified 6 keccak256("DepositToken.acJPYC")
acCHFC DepositToken Specified 6 keccak256("DepositToken.acCHFC")
acCADC DepositToken Specified 6 keccak256("DepositToken.acCADC")
acXAUC DepositToken Specified 6 keccak256("DepositToken.acXAUC")

Use DepositToken with decimals_ set to underlying (e.g. 6). Freely transferable; DEX-ready.

4. Debt Tokens (Aave-style, vdc* / sdc*) — ERC-20, optionally DEX-ready

Token Contract Status Decimals Transferable CREATE2 salt
vdcUSDC DebtToken Mapped 6 configurable keccak256("DebtToken.vdcUSDC")
sdcUSDC DebtToken Mapped 6 configurable keccak256("DebtToken.sdcUSDC")
vdcEURC DebtToken Specified 6 configurable keccak256("DebtToken.vdcEURC")
sdcEURC DebtToken Specified 6 configurable keccak256("DebtToken.sdcEURC")
vdcGBPC DebtToken Specified 6 configurable keccak256("DebtToken.vdcGBPC")
sdcGBPC DebtToken Specified 6 configurable keccak256("DebtToken.sdcGBPC")
vdcAUDC DebtToken Specified 6 configurable keccak256("DebtToken.vdcAUDC")
sdcAUDC DebtToken Specified 6 configurable keccak256("DebtToken.sdcAUDC")
vdcJPYC DebtToken Specified 6 configurable keccak256("DebtToken.vdcJPYC")
sdcJPYC DebtToken Specified 6 configurable keccak256("DebtToken.sdcJPYC")
vdcCHFC DebtToken Specified 6 configurable keccak256("DebtToken.vdcCHFC")
sdcCHFC DebtToken Specified 6 configurable keccak256("DebtToken.sdcCHFC")
vdcCADC DebtToken Specified 6 configurable keccak256("DebtToken.vdcCADC")
sdcCADC DebtToken Specified 6 configurable keccak256("DebtToken.sdcCADC")
vdcXAUC DebtToken Specified 6 configurable keccak256("DebtToken.vdcXAUC")
sdcXAUC DebtToken Specified 6 configurable keccak256("DebtToken.sdcXAUC")

Use DebtToken with decimals_ and transferable_. When transferable_ == true, full ERC-20 for DEX; when false, mint/burn/vault-only (default).

5. Flash Loans

Location Status Notes
WETH10 Implemented WETH10.sol implements ERC-3156.
Liquidity pools Specified Pools should expose flash loan capability; gate via ComplianceRegistry/allowlist.

6. Reserve Attestation and E-Money Hooks

  • Base money: Par redeemability, safeguarded reserves, no yield on base money, transaction monitoring hooks.
  • Where: ComplianceGuard and TokenRegistry (iso4217w); PolicyManager and ComplianceRegistry (emoney); ReserveOracle for attestation.
  • See ISO-20022 and E-Money runbook (docs/runbooks).

7. ERC-20 and DEX Compatibility

  • Base (c) and W (W): Full ERC-20 (name, symbol, decimals, balanceOf, transfer, approve, allowance, Transfer/Approval events). Compatible with Uniswap, DODO, Balancer, etc.
  • Asset (ac):* Same; DepositToken is fully transferable and supports configurable decimals to match underlying.
  • Debt (vdc/sdc):** ERC-20 interface; when transferable is true, same as above; when false, only mint/burn/vault (no general transfers).
  • VaultFactory: Tokens created via VaultFactory.createVault use the 5-arg DepositToken.initialize and DebtToken.initialize only, so they get 18 decimals and non-transferable debt. For cUSDC/cUSDT (6 decimals) and DEX compatibility, deploy deposit/debt tokens via deterministic scripts using initializeWithDecimals / initializeFull (see runbooks).
  • Reporting: Token Aggregation Service exposes all tokens, pools, liquidity, and volume for CoinMarketCap and CoinGecko via /api/v1/report/* (see token-aggregation docs).

8. Naming and Decimals

  • ac* and vdc*/sdc* use same decimals as underlying (e.g. cUSDC 6 → acUSDC 6, vdcUSDC 6).
  • No per-chain address maps; use deterministic deployment (see MULTI_CHAIN_EXECUTION_DETERMINISTIC_DEPLOYMENT.md).
  • Canonical symbol grammar: In the GRU M00 Diamond spec, logical roles a (asset) and d (debt) map to deployed names ac (DepositToken) and vdc/sdc (DebtToken). Full grammar (c/a/d, W-before/after-ISO): GRU_M00_DIAMOND_FACET_MAP.md §5.