Technical
1. Architecture Overview
The USDT0 implementation separates token functionality from cross-chain messaging. This split enables independent upgrades of token and messaging components while maintaining consistent token behavior across chains.
Core Components
The implementation consists of three main components:
OAdapterUpgradeable (on Ethereum):
Implements LayerZero OFT functionality for Ethereum
Handles both sending and receiving cross-chain messages
Interfaces directly with the TetherToken contract on Ethereum
Locks/Unlocks USDT for cross-chain transfers
OUpgradeable (on other chains):
Implements LayerZero OFT functionality for other chains
Handles both sending and receiving cross-chain messages
Interfaces with the TetherTokenOFTExtensoin
Controls minting/burning for cross-chain transfers
TetherTokenOFTExtension (on other chains):
Offers mint/burn interface for the OFT
Component Interaction Diagram
The graphic illustrates how USDT and USDT0 are transferred across Ethereum, Chain A, and Chain B:
Ethereum → Chain B:
USDT Adapter locks USDT on Ethereum.
A LayerZero message triggers USDT0 OFT on Chain B to mint equivalent USDT0.
Chain B → Chain A:
USDT0 OFT burns USDT0 on Chain B.
A message triggers USDT0 OFT on Chain A to mint the equivalent.
Chain A → Ethereum:
USDT0 OFT burns USDT0 on Chain A.
A message instructs the USDT Adapter to unlock USDT on Ethereum.
The flow ensures consistent token supply across chains.
2. Interfaces Reference
Token Interfaces
The USDT0 token implements the following standard interfaces:
ERC20
ERC20Permit (EIP-2612)
EIP-3009 (Gasless transfers)
Key public functions for integration:
OFT Interfaces
The OFT implementation provides cross-chain transfer functionality through LayerZero:
The OFT interface is consistent across all chains, whether using OAdapterUpgradeable on Ethereum or OUpgradeable on other chains. The only difference is that on Ethereum, users need to approve the OFT adapter to spend their USDT before calling send
.
3. Deployments
Ethereum Mainnet
OAdapterUpgradeable:
0x6C96dE32CEa08842dcc4058c14d3aaAD7Fa41dee
Multisig Safe:
0x4DFF9b5b0143E642a3F63a5bcf2d1C328e600bf8
INK Chain
TetherTokenOFTExtension:
0x0200C29006150606B650577BBE7B6248F58470c1
OUpgradeable:
0x1cB6De532588fCA4a21B7209DE7C456AF8434A65
Multisig Safe:
0xc95de55ce5e93f788A1Faab2A9c9503F51a5dAE2
4. Security Configuration (DVNs)
USDT0 utilizes a dual-DVN security configuration requiring verification from:
LayerZero DVN
USDT0 DVN
Both DVNs must verify the payloadHash before a cross-chain message can be committed for execution. This setup ensures enhanced security through independent verification of all cross-chain transfers.
For detailed information about LayerZero DVNs and security stacks, refer to: https://docs.layerzero.network/v2/home/modular-security/security-stack-dvns
Last updated