Skip to content

feat: add ADI Chain (chain ID 36900) support with USDC.e#2279

Open
idea404 wants to merge 8 commits into
x402-foundation:mainfrom
idea404:main
Open

feat: add ADI Chain (chain ID 36900) support with USDC.e#2279
idea404 wants to merge 8 commits into
x402-foundation:mainfrom
idea404:main

Conversation

@idea404
Copy link
Copy Markdown

@idea404 idea404 commented May 12, 2026

Add ADI Chain (CAIP-2 eip155:36900, chain ID 36900) as a default EVM chain across all three SDKs (TypeScript, Go, Python).

Default stablecoin: USDC.e at 0x9cb8142aEBBcdc60AF7c97Af897A67A8f3CA71C2, 6 decimals, EIP-3009 supported.

Rationale

ADI Chain is an EVM L2 secured by Ethereum with Chainlink CCIP as its canonical cross-chain bridge. USDC.e is deployed on mainnet with full EIP-3009 and EIP-2612 support, making it ideal for x402 payments.

Changes

  • Go (go/mechanisms/evm/constants.go): Added eip155:36900 entry to NetworkConfigs
  • TypeScript (typescript/packages/mechanisms/evm/src/shared/defaultAssets.ts): Added eip155:36900 to DEFAULT_STABLECOINS
  • Python (python/x402/mechanisms/evm/constants.py): Added eip155:36900 to NETWORK_CONFIGS
  • Changelog fragments for all three SDKs

Verification

All token parameters (address, name, version, decimals, EIP-3009 support) were verified on-chain via ADI Explorer (explorer.adifoundation.ai) and RPC calls to rpc.adifoundation.ai.

idea404 added 8 commits May 12, 2026 11:29
Add ADI Chain (chain ID 36900) to all three SDK registries with
USDC.e as the default stablecoin. USDC.e at 0x9cb8142aEBBcdc60AF7c97Af897A67A8f3CA71C2
supports EIP-3009 transferWithAuthorization with EIP-712 domain
name="USDC.e", version="2", 6 decimals.
- Add ADI Testnet (chain ID 99999) with DDSC as default asset (Permit2)
- Add DDSC as a supported fallback asset alongside USDC.e on ADI Chain
- Add SupportedAssets field to Go NetworkConfig and supported_assets to
  Python NetworkConfig TypedDict for multi-asset support
- Add supportedAssets field to TypeScript ExactDefaultAssetInfo type

DDSC (0x1211f0cf...) uses Permit2 transfer method:
- No EIP-3009 support (transferWithAuthorization not available)
- No EIP-2612 support (no permit() function)
- Requires standard ERC-20 approval flow before Permit2 transactions

ADI Chain: eip155:36900 | USDC.e (EIP-3009) + DDSC (Permit2)
ADI Testnet: eip155:99999 | DDSC (Permit2)
Verified on-chain: neither USDC.e (0x9cb814...) nor DDSC (0x1211f0cf...)
contracts are deployed on ADI Testnet (chain ID 99999). Both return empty
bytecode (0x). Removing testnet entry until stablecoins are deployed.
…SDC.e

- Revert SupportedAssets field from Go NetworkConfig struct
- Revert supported_assets field from Python NetworkConfig TypedDict
- Revert supportedAssets field from TypeScript ExactDefaultAssetInfo type
- Remove DDSC as supported fallback on ADI Chain mainnet
- Add ADI Testnet (eip155:99999) with USDC.e as default asset

ADI Testnet USDC.e verified via Chainlink CCIP directory:
- Address: 0x0C189aa5cE517aE3Ce24015F042D405141011634
- name: USDC.e, decimals: 6, version: 1
- No EIP-3009, no EIP-2612 -> uses Permit2
Verified via bytecode inspection: 0x4f1ef286 (transferWithAuthorization)
is present in the testnet USDC.e contract at 0x0C189aa5...011634.
The contract is a custom implementation (not a proxy) with EIP-3009
built directly in. Does not support EIP-2612 or EIP-712 domainSeparator.
The Chainlink CCIP directory lists a 'USDC.e' on ADI testnet but it's
a skeleton proxy with no ERC-20 implementation — just EIP-3009 and
decimals hardcoded. Not usable for actual payments. Neither Circle nor
Chainlink officially supports USDC on ADI testnet.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

@idea404 is attempting to deploy a commit to the Coinbase Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added typescript go sdk Changes to core v2 packages python labels May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

go python sdk Changes to core v2 packages typescript

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant