USDG Gateway & Avalanche ICTT
USDG (USD Ghost) is the native stablecoin on Umbraline Testnet, backed 1:1 by USDC via Avalanche's Inter-Chain Token Transfer (ICTT) protocol.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Avalanche Fuji C-Chain │
│ │
│ ┌─────────┐ ┌──────────────────┐ │
│ │ USDC │ ──► │ ERC20TokenHome │ (Locks USDC) │
│ └─────────┘ └────────┬─────────┘ │
│ │ Avalanche Warp Messaging │
└────────────────────────────┼────────────────────────────────────┘
│
▼
┌────────────────────────────┼────────────────────────────────────┐
│ Umbraline Testnet (47474) │
│ │ │
│ ┌────────▼─────────┐ │
│ │ GhostTokenRemote │ (Mints USDG) │
│ │ (USDG) │ │
│ └────────┬─────────┘ │
│ │ │
│ ┌────────▼─────────┐ │
│ │ GhostVault │ (vanish/summon) │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Contract Addresses
Avalanche Fuji C-Chain (43113)
| Contract | Address | Purpose |
|---|---|---|
| Test USDC | 0x5425890298aed601595a70AB815c96711a31Bc65 | Aave faucet USDC |
| ERC20TokenHome | 0x255E85e3a021Cd8074D11dCD73FE342273178048 | Locks USDC for bridging |
| TeleporterRegistry | 0xF86Cb19Ad8405AEFa7d09C778215D2Cb6eBfB228 | Teleporter coordination |
| Blockchain ID | 0x7fc93d85c6d62c5b2ac0b519c87010ea5294012d1e407030d6acd0021cac10d5 | ICTT routing |
Umbraline Testnet (47474)
| Contract | Address | Purpose |
|---|---|---|
| USDG (GhostTokenRemote) | 0x2A3ad14479ecB02B2B59Fc6D239F0777a0afFE05 | Stablecoin on L1 |
| TeleporterRegistry | 0xD984Bc60965390D70D3Bf744cfFD58D7E52D718E | Teleporter coordination |
| TeleporterMessenger | 0x253b2784c75e510dD0fF1da844684a1aC0aa5fcf | Cross-chain messaging |
| Blockchain ID | 0x4a449a82fed39ca256e89872ee71a24dc2291b848e1fb0785c25e33a0972d304 | ICTT routing |
Bridge Flow: USDC → USDG
const UMBRALINE_BLOCKCHAIN_ID = '0x4a449a82fed39ca256e89872ee71a24dc2291b848e1fb0785c25e33a0972d304';
const USDG_ADDRESS = '0x2A3ad14479ecB02B2B59Fc6D239F0777a0afFE05';
const ERC20_TOKEN_HOME = '0x255E85e3a021Cd8074D11dCD73FE342273178048';
// Step 1: Approve USDC on Fuji C-Chain
await usdc.approve(ERC20_TOKEN_HOME, amount);
// Step 2: Send via ICTT
await tokenHome.send({
destinationBlockchainID: UMBRALINE_BLOCKCHAIN_ID,
destinationTokenTransferrerAddress: USDG_ADDRESS,
recipient: userAddress,
primaryFeeTokenAddress: ethers.ZeroAddress, // Pay fee in AVAX
primaryFee: 0,
secondaryFee: 0,
requiredGasLimit: 250000n,
multiHopFallback: ethers.ZeroAddress,
}, { value: 0 }); // No additional value needed
// Step 3: User receives USDG on Umbraline Testnet
// USDG can be vanished directly to GhostVault
USDG Features
- Privacy Ready: USDG can be vanished directly to GhostVault (no wrapper needed)
- Standard ERC-20: Fully compatible with DeFi protocols
- Bridgeable Back: Can be sent back to C-Chain via
send()method on USDG contract
Getting Test USDC
Test USDC can be obtained from the Aave faucet:
- URL: https://app.aave.com/faucet/
- Network: Avalanche Fuji
- Token: USDC
- Address:
0x5425890298aed601595a70AB815c96711a31Bc65