From db75aa4704a7c671846706f2a58252bf764cb96f Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 26 Aug 2026 14:40:57 -0400 Subject: [PATCH 1/2] docs(payments): sync token and chain coverage with the pay-core catalog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nothing syncs this table with pay-core's `SUPPORTED_TOKENS`, so it had drifted: six offered tokens were missing and five rows misstated fiat settlement. Verified against the catalog by dumping every registered token with its rendered CAIP-19, offered/disabled state, and offramp-allowlist membership, then diffing that against this file. All 43 GA rows now match. Added to GA (registered and offered today): - CHFAU on Ethereum, Polygon, Base - SoFiUSD and USAT on Ethereum - USDG on Robinhood Chain (Ethereum was already listed) - WBNB on BSC (WETH and WPOL were already listed) Settlement corrections. Fiat settlement comes from two offramp allowlists with different corridors — Iron covers USD/EUR, Ezeebit covers USD only among the currencies this page documents: - USDT/Polygon claimed Fiat (USD, EUR) but is in neither allowlist, so it has no direct offramp path at all — now Direct Crypto - USDC/Solana, USDT/Ethereum and USDT/Solana claimed EUR but are Ezeebit-only, which has no EUR corridor — now Fiat (USD) - USDT/BSC claimed Direct Crypto only, understating its Ezeebit support — now Fiat (USD), consistent with the other Ezeebit rows Added to Coming soon (registered but gated off by a rollout flag): - ETH on Robinhood Chain, alongside the other native-ETH rows - USDC on Stellar Also normalized the two PYUSD addresses to their EIP-55 checksummed form, so every identifier on the page is byte-identical to what the API returns. Deliberately not changed, pending a product decision: - Ezeebit also settles to KES and ZAR. Those corridors appear nowhere on this page or on Fiat Coverage, so listing them here would contradict that page. - ~35 volatile tokens (WBTC, LINK, UNI, AAVE, LDO, wstETH, ARB, OP, MORPHO, PENDLE, CRV, MKR, COMP, SNX, 1INCH, PEPE) are registered but reach buyers only as swap sources gated per merchant, so they are arguably not GA. - Fiat Coverage lists GBP as generally available, but no offramp provider and no currency enum variant supports it. Co-Authored-By: Claude --- payments/token-and-chain-coverage.mdx | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/payments/token-and-chain-coverage.mdx b/payments/token-and-chain-coverage.mdx index 5f46b5a..2bcea01 100644 --- a/payments/token-and-chain-coverage.mdx +++ b/payments/token-and-chain-coverage.mdx @@ -27,7 +27,7 @@ When creating crypto settlements, use the CAIP-19 token identifier below when sp | USDC | BSC | `eip155:56/erc20:0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d` | ✅ | Direct Crypto | | USDC | Celo | `eip155:42220/erc20:0xcebA9300f2b948710d2653dD7B07f33A8B32118C` | ✅ | Direct Crypto | | USDC | Monad | `eip155:143/erc20:0x754704Bc059F8C67012fEd69BC8A327a5aafb603` | ✅ | Direct Crypto | -| USDC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | ✅ | Direct Crypto or Fiat (USD, EUR) | +| USDC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | ✅ | Direct Crypto or Fiat (USD) | | EURC | Base | `eip155:8453/erc20:0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42` | ✅ | Direct Crypto or Fiat (USD, EUR) | | EURC | Ethereum | `eip155:1/erc20:0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c` | ✅ | Direct Crypto or Fiat (USD, EUR) | | EURC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr` | ✅ | Direct Crypto | @@ -37,23 +37,30 @@ When creating crypto settlements, use the CAIP-19 token identifier below when sp | EURAU | Base | `eip155:8453/erc20:0x4933A85b5b5466Fbaf179F72D3DE273c287EC2c2` | ✅ | Direct Crypto | | EURAU | Arbitrum | `eip155:42161/erc20:0x4933A85b5b5466Fbaf179F72D3DE273c287EC2c2` | ✅ | Direct Crypto | | EURAU | Optimism | `eip155:10/erc20:0x4933A85b5b5466Fbaf179F72D3DE273c287EC2c2` | ✅ | Direct Crypto | +| CHFAU | Ethereum | `eip155:1/erc20:0xBD4DfC058eb95b8De5ceAF39966A1a70F5556F78` | ✅ | Direct Crypto | +| CHFAU | Polygon | `eip155:137/erc20:0xBD4DfC058eb95b8De5ceAF39966A1a70F5556F78` | ✅ | Direct Crypto | +| CHFAU | Base | `eip155:8453/erc20:0xBD4DfC058eb95b8De5ceAF39966A1a70F5556F78` | ✅ | Direct Crypto | | AUSD | Ethereum | `eip155:1/erc20:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a` | ✅ | Direct Crypto | | AUSD | Arbitrum | `eip155:42161/erc20:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a` | ✅ | Direct Crypto | | AUSD | Base | `eip155:8453/erc20:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a` | ✅ | Direct Crypto | | AUSD | BSC | `eip155:56/erc20:0x00000000eFE302BEAA2b3e6e1b18d08D69a9012a` | ✅ | Direct Crypto | | USDG | Ethereum | `eip155:1/erc20:0xe343167631d89B6Ffc58B88d6b7fB0228795491D` | ✅ | Direct Crypto | -| PYUSD | Ethereum | `eip155:1/erc20:0x6c3ea9036406852006290770bedfcaba0e23a0e8` | ✅ | Direct Crypto | -| PYUSD | Arbitrum | `eip155:42161/erc20:0x46850ad61c2b7d64d08c9c754f45254596696984` | ✅ | Direct Crypto | -| USDT | Ethereum | `eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7` | ✅ | Direct Crypto or Fiat (USD, EUR) | -| USDT | Polygon | `eip155:137/erc20:0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | ✅ | Direct Crypto or Fiat (USD, EUR) | +| USDG | Robinhood Chain | `eip155:4663/erc20:0x5fc5360D0400a0Fd4f2af552ADD042D716F1d168` | ✅ | Direct Crypto | +| PYUSD | Ethereum | `eip155:1/erc20:0x6c3ea9036406852006290770BEdFcAbA0e23A0e8` | ✅ | Direct Crypto | +| PYUSD | Arbitrum | `eip155:42161/erc20:0x46850aD61C2B7d64d08c9C754F45254596696984` | ✅ | Direct Crypto | +| SoFiUSD | Ethereum | `eip155:1/erc20:0x0CB6d03B0aC88A463F67B7Ad99f9f3ec4678092E` | ✅ | Direct Crypto | +| USAT | Ethereum | `eip155:1/erc20:0x07041776f5007ACa2A54844F50503a18A72A8b68` | ✅ | Direct Crypto | +| USDT | Ethereum | `eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7` | ✅ | Direct Crypto or Fiat (USD) | +| USDT | Polygon | `eip155:137/erc20:0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | ✅ | Direct Crypto | | USDT | Arbitrum | `eip155:42161/erc20:0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9` | ✅ | Direct Crypto | -| USDT | BSC | `eip155:56/erc20:0x55d398326f99059fF775485246999027B3197955` | ✅ | Direct Crypto | -| USDT | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | ✅ | Direct Crypto or Fiat (USD, EUR) | +| USDT | BSC | `eip155:56/erc20:0x55d398326f99059fF775485246999027B3197955` | ✅ | Direct Crypto or Fiat (USD) | +| USDT | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | ✅ | Direct Crypto or Fiat (USD) | | WETH | Ethereum | `eip155:1/erc20:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | ✅ | Direct Crypto | | WETH | Optimism | `eip155:10/erc20:0x4200000000000000000000000000000000000006` | ✅ | Direct Crypto | | WETH | Base | `eip155:8453/erc20:0x4200000000000000000000000000000000000006` | ✅ | Direct Crypto | | WETH | Arbitrum | `eip155:42161/erc20:0x82aF49447D8a07e3bd95BD0d56f35241523fBab1` | ✅ | Direct Crypto | | WPOL | Polygon | `eip155:137/erc20:0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270` | ✅ | Direct Crypto | +| WBNB | BSC | `eip155:56/erc20:0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c` | ✅ | Direct Crypto | | SOL | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501` | ✅ | Direct Crypto | ## Coming soon @@ -66,9 +73,11 @@ The following token and chain combinations are planned for General Availability | ETH | Optimism | | ETH | Arbitrum | | ETH | Base | +| ETH | Robinhood Chain | | POL | Polygon | | BNB | BSC | | MON | Monad | +| USDC | Stellar | ## Definitions From 9d72d7af13d6c610b21d0663717d15132009062f Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 26 Aug 2026 16:01:08 -0400 Subject: [PATCH 2/2] Revert the Settlement column changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The premise was wrong. The offramp allowlists gate the settlement destination — the asset the offramp receives — not the token the buyer pays. Swap sources are expanded against every settlement candidate, offramp routes included, so a token in no allowlist still reaches fiat by swapping into one first. USDT/Polygon -> USDC -> Iron -> EUR is a real path, so marking that row Direct Crypto was a regression, not a fix. Keeps the missing-token additions and the address normalization, which stand on their own. Co-Authored-By: Claude --- payments/token-and-chain-coverage.mdx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/payments/token-and-chain-coverage.mdx b/payments/token-and-chain-coverage.mdx index 2bcea01..534f652 100644 --- a/payments/token-and-chain-coverage.mdx +++ b/payments/token-and-chain-coverage.mdx @@ -27,7 +27,7 @@ When creating crypto settlements, use the CAIP-19 token identifier below when sp | USDC | BSC | `eip155:56/erc20:0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d` | ✅ | Direct Crypto | | USDC | Celo | `eip155:42220/erc20:0xcebA9300f2b948710d2653dD7B07f33A8B32118C` | ✅ | Direct Crypto | | USDC | Monad | `eip155:143/erc20:0x754704Bc059F8C67012fEd69BC8A327a5aafb603` | ✅ | Direct Crypto | -| USDC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | ✅ | Direct Crypto or Fiat (USD) | +| USDC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` | ✅ | Direct Crypto or Fiat (USD, EUR) | | EURC | Base | `eip155:8453/erc20:0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42` | ✅ | Direct Crypto or Fiat (USD, EUR) | | EURC | Ethereum | `eip155:1/erc20:0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c` | ✅ | Direct Crypto or Fiat (USD, EUR) | | EURC | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr` | ✅ | Direct Crypto | @@ -50,11 +50,11 @@ When creating crypto settlements, use the CAIP-19 token identifier below when sp | PYUSD | Arbitrum | `eip155:42161/erc20:0x46850aD61C2B7d64d08c9C754F45254596696984` | ✅ | Direct Crypto | | SoFiUSD | Ethereum | `eip155:1/erc20:0x0CB6d03B0aC88A463F67B7Ad99f9f3ec4678092E` | ✅ | Direct Crypto | | USAT | Ethereum | `eip155:1/erc20:0x07041776f5007ACa2A54844F50503a18A72A8b68` | ✅ | Direct Crypto | -| USDT | Ethereum | `eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7` | ✅ | Direct Crypto or Fiat (USD) | -| USDT | Polygon | `eip155:137/erc20:0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | ✅ | Direct Crypto | +| USDT | Ethereum | `eip155:1/erc20:0xdAC17F958D2ee523a2206206994597C13D831ec7` | ✅ | Direct Crypto or Fiat (USD, EUR) | +| USDT | Polygon | `eip155:137/erc20:0xc2132D05D31c914a87C6611C10748AEb04B58e8F` | ✅ | Direct Crypto or Fiat (USD, EUR) | | USDT | Arbitrum | `eip155:42161/erc20:0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9` | ✅ | Direct Crypto | -| USDT | BSC | `eip155:56/erc20:0x55d398326f99059fF775485246999027B3197955` | ✅ | Direct Crypto or Fiat (USD) | -| USDT | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | ✅ | Direct Crypto or Fiat (USD) | +| USDT | BSC | `eip155:56/erc20:0x55d398326f99059fF775485246999027B3197955` | ✅ | Direct Crypto | +| USDT | Solana | `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB` | ✅ | Direct Crypto or Fiat (USD, EUR) | | WETH | Ethereum | `eip155:1/erc20:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2` | ✅ | Direct Crypto | | WETH | Optimism | `eip155:10/erc20:0x4200000000000000000000000000000000000006` | ✅ | Direct Crypto | | WETH | Base | `eip155:8453/erc20:0x4200000000000000000000000000000000000006` | ✅ | Direct Crypto |