From 84cc39dde1f19f914cad4d32caabe245e675d917 Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Fri, 2 Oct 2026 11:05:11 +0200 Subject: [PATCH 1/3] docs(x402): use the EIP-55 checksummed USDC address --- build/agents/x402.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/agents/x402.mdx b/build/agents/x402.mdx index d8c07c4e95..09b6847904 100644 --- a/build/agents/x402.mdx +++ b/build/agents/x402.mdx @@ -130,7 +130,7 @@ const routes: RoutesConfig = { payTo: "0xYourSellerPayoutAddress", // your wallet — receives the USDC price: { amount: "10000", // $0.01 — USDC has 6 decimals; always a string - asset: "0xcEBA9300f2b948710d2653dD7B07f33A8B32118C", + asset: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C", extra: { name: "USDC", version: "2" }, // EIP-712 domain, must match the token }, }, @@ -192,7 +192,7 @@ The Celo facilitator settles **USDC** and **USDT** via EIP-3009 `transferWithAut | Token | Address | Decimals | |-------|---------|----------| -| USDC | `0xcEBA9300f2b948710d2653dD7B07f33A8B32118C` | 6 | +| USDC | `0xcebA9300f2b948710d2653dD7B07f33A8B32118C` | 6 | | USDT | `0x48065fbbe25f71c9282ddf5e1cd6d6a887483d5e` | 6 | ### Celo Configuration @@ -207,7 +207,7 @@ const mainnetAccepts = { payTo: "0xYourSellerPayoutAddress", price: { amount: "10000", // $0.01 — USDC has 6 decimals - asset: "0xcEBA9300f2b948710d2653dD7B07f33A8B32118C", // Celo mainnet USDC + asset: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C", // Celo mainnet USDC extra: { name: "USDC", version: "2" }, }, }; From fa545b3a8e92a09d84667a87e5a85dc2e2fd2eb7 Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Fri, 2 Oct 2026 11:11:48 +0200 Subject: [PATCH 2/3] docs(agents): require EIP-55 checksummed addresses --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index 92594e8c06..d139b89898 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -94,6 +94,7 @@ The policy, decided for the restructure: **troubleshooting-first.** - Self-contained: imports shown, env vars named, network stated in a comment. A reader copies one block and it works. - Bare language tag, no `title=`, no line highlighting. Use `bash` for shell (not `sh`/`shell`), `ts`/`tsx` for TypeScript (not `typescript`), `js`/`jsx` for JavaScript, `solidity`, `json`, `yaml`. - Every address in a code block or table carries the network name and, for tokens, the decimals: `// Celo mainnet (42220), USDC, 6 decimals`. +- Every address is written in its EIP-55 checksummed form; get it from `cast to-check-sum-address
`. Mixed case with a wrong checksum breaks copied code: ethers throws `bad address checksum` and viem's `isAddress` returns `false`. - Prefer `viem` / `wagmi` examples; they support Celo fee-currency transactions natively. - Testnet is **Celo Sepolia, chain ID 11142220**. Alfajores (44787) is retired — do not reference it. From 7f4a25ad4348c7a24d431a2b08e62109c698053b Mon Sep 17 00:00:00 2001 From: Paul Lange Date: Fri, 2 Oct 2026 14:29:21 +0200 Subject: [PATCH 3/3] docs(x402): checksum the USDT address and scope the EIP-55 rule to edited addresses --- AGENTS.md | 2 +- build/agents/x402.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index d139b89898..d70ec25a8a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -94,7 +94,7 @@ The policy, decided for the restructure: **troubleshooting-first.** - Self-contained: imports shown, env vars named, network stated in a comment. A reader copies one block and it works. - Bare language tag, no `title=`, no line highlighting. Use `bash` for shell (not `sh`/`shell`), `ts`/`tsx` for TypeScript (not `typescript`), `js`/`jsx` for JavaScript, `solidity`, `json`, `yaml`. - Every address in a code block or table carries the network name and, for tokens, the decimals: `// Celo mainnet (42220), USDC, 6 decimals`. -- Every address is written in its EIP-55 checksummed form; get it from `cast to-check-sum-address
`. Mixed case with a wrong checksum breaks copied code: ethers throws `bad address checksum` and viem's `isAddress` returns `false`. +- Write new and edited addresses in their EIP-55 checksummed form; get it from `cast to-check-sum-address
`. Mixed case with a wrong checksum breaks copied code: ethers throws `bad address checksum` and viem's `isAddress` returns `false`. Do not sweep old pages just to recase addresses; fix the ones on pages you are already editing. - Prefer `viem` / `wagmi` examples; they support Celo fee-currency transactions natively. - Testnet is **Celo Sepolia, chain ID 11142220**. Alfajores (44787) is retired — do not reference it. diff --git a/build/agents/x402.mdx b/build/agents/x402.mdx index 09b6847904..ade220e8b7 100644 --- a/build/agents/x402.mdx +++ b/build/agents/x402.mdx @@ -193,7 +193,7 @@ The Celo facilitator settles **USDC** and **USDT** via EIP-3009 `transferWithAut | Token | Address | Decimals | |-------|---------|----------| | USDC | `0xcebA9300f2b948710d2653dD7B07f33A8B32118C` | 6 | -| USDT | `0x48065fbbe25f71c9282ddf5e1cd6d6a887483d5e` | 6 | +| USDT | `0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e` | 6 | ### Celo Configuration