Settlement Token Compatibility
This page documents settlement-token compatibility and the legacy MNEE_* aliases that Coal still accepts. Coal now describes settlement generically: USDC is the default fallback, and you can configure another Base token when needed.
Key Properties
| Property | Value |
|---|---|
| Default asset | USDC on Base |
| Custom asset support | Any Base ERC-20 you explicitly configure |
| Decimals | Defaults to 6, but configurable |
| Network | Base |
| Selection model | Global settlement token per environment |
| Compatibility | Legacy MNEE_* env vars still supported |
Default Behavior
- If you do nothing, Coal uses USDC.
- If you configure a custom settlement token address, Coal uses that token instead.
- Most docs should describe the settlement asset generically unless the page is specifically about token compatibility.
| Custom token on Base | ETH | USDC | |
|---|---|---|---|
| Settlement time | ~2 seconds | ~12 seconds | ~2 seconds |
| Transfer fee | < $0.01 | Variable (gas) | < $0.01 |
| Price volatility | None (stable) | High | None |
| Configuration complexity | Higher | N/A | Lowest |
How Coal Uses the Configured Settlement Token
When a customer pays via Coal:
- Customer sends the configured settlement token from their wallet to the merchant's payout address on Base
- Coal verifies the transfer on-chain (checks amount, recipient, Transfer event)
- Merchant receives funds in their payout wallet, no intermediary
Coal is non-custodial — we never hold your funds.
Setting Your Payout Address
Your payout address is the Base-compatible wallet address where you want to receive payments. Set it in Console → Settings.
Double-check your address
Payments are irreversible. Verify your payout address before going live — if you enter the wrong address, Coal cannot recover the funds.
Compatible wallets: MetaMask, Coinbase Wallet, Rainbow, any wallet supporting Base (EVM-compatible).
Token Contract
The currently configured settlement token contract on Base:
10x... (Base mainnet — see usecoal.xyz for current address)
You can verify any transaction on Basescan by searching the contract address.
Amount Formatting
Settlement amounts in Coal's API are strings to avoid floating-point precision errors:
1{ "amount": "49.99" } // ✓ String — precise2{ "amount": 49.99 } // ✓ Also accepted for input
Always store and compare amounts as strings or integers in the smallest unit. Coal's backend uses BigInt arithmetic internally.
Choosing a Settlement Token
Use USDC if you want the cleanest default setup. Use a custom token only when you intentionally need a different settlement asset for product, treasury, or partner reasons.
| USDC | Custom token | |
|---|---|---|
| Default | Yes | No |
| Configuration | None | Requires token address, decimals, symbol, and name |
| Network | Base | Base |
| Checkout display | Automatic | Uses your configured symbol and name |
| Legacy support | N/A | MNEE_* aliases still supported |
To use USDC (default): leave SETTLEMENT_TOKEN_ADDRESS / NEXT_PUBLIC_SETTLEMENT_TOKEN_ADDRESS unset.
To use a custom token: set SETTLEMENT_TOKEN_ADDRESS, SETTLEMENT_TOKEN_DECIMALS, SETTLEMENT_TOKEN_SYMBOL, and SETTLEMENT_TOKEN_NAME in the backend, plus the matching NEXT_PUBLIC_... values in the frontend.
The switch is seamless — the checkout UI, verification flow, and webhook payloads all adapt to the configured settlement token.
Further Reading
- Transaction Lifecycle — how Coal verifies payments on-chain
- Multi-Token Payments — accept any token, settle in the configured asset
- Environments — full environment variable reference
