Supported chains
Mandate supports 4 EVM chains: 2 mainnets and 2 testnets. Your runtime key prefix determines which chains you can use.| Chain | Chain ID | USDC Address | Decimals | Key Prefix |
|---|---|---|---|---|
| Ethereum Mainnet | 1 | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | 6 | mndt_live_* |
| Ethereum Sepolia | 11155111 | 0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238 | 6 | mndt_test_* |
| Base Mainnet | 8453 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 6 | mndt_live_* |
| Base Sepolia | 84532 | 0x036CbD53842c5426634e7929541eC2318f3dCF7e | 6 | mndt_test_* |
Test vs live keys
Runtime keys use prefixes to enforce environment separation:mndt_test_*keys work with testnet chains (Sepolia, Base Sepolia). Use these for development and testing. Testnet usage is free.mndt_live_*keys work with mainnet chains (Ethereum, Base). Use these for production deployments.
SDK constants
The SDK exports chain and token constants so you avoid hardcoding addresses:Default RPCs
When usingMandateWallet, you can specify a custom RPC URL in the configuration. If you do not, the SDK uses public default RPCs:
| Chain | Default RPC |
|---|---|
| Ethereum Mainnet | https://eth.llamarpc.com |
| Ethereum Sepolia | https://rpc.sepolia.org |
| Base Mainnet | https://mainnet.base.org |
| Base Sepolia | https://sepolia.base.org |
Getting started on testnet
The fastest way to test Mandate is with amndt_test_* key on Base Sepolia:
- Register an agent using
mandate login --name "TestAgent" --address 0xYourAddress. - Fund your test wallet with Base Sepolia ETH and test USDC from a faucet.
- Validate a transaction:
mandate validate --action transfer --reason "Test payment" --amount 1 --to 0xRecipient.
Next Steps
SDK Constants
Full reference for all exported constants in the SDK.
Credential Management
Store and rotate runtime keys securely.