You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+40Lines changed: 40 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -283,6 +283,46 @@ Server verifies payment → returns 200 + data
283
283
284
284
Your agent's keys never leave the non-custodial wallet. All payments respect on-chain spend limits set by the wallet owner.
285
285
286
+
## Why agent-wallet-sdk?
287
+
288
+
Every major AI company launched an agent wallet in early 2026. Coinbase Agentic Wallets went live February 13. MoonPay Agents launched March 4. Stripe added x402 on February 11. The problem: every single one of them holds your agent's keys.
| **Audit trail** | API logs (centralized) | API logs | On-chain events, self-queryable |
300
+
| **Open source** | No | No | Yes (MIT) |
301
+
302
+
**The three questions that matter:**
303
+
304
+
**1. Who holds the key?** With Coinbase and MoonPay, their infrastructure holds your agent's private key. That means they can freeze it, they get hacked and your key goes with it, and they can shut down the product. agent-wallet-sdk generates keys locally and they never leave your environment.
305
+
306
+
**2. Where are spend limits enforced?** Coinbase uses session caps enforced at the API layer -- those can change. MoonPay has no per-transaction limits at all. agent-wallet-sdk enforces limits inside an EVM contract. A `perTxLimit` of 25 USDC means the contract will physically not execute a transaction over 25 USDC. No API to call, no policy to change.
307
+
308
+
**3. What happens when the platform shuts down?** Custodial wallets disappear with the platform. Your agent's wallet contract is deployed on-chain. It exists as long as the EVM exists.
309
+
310
+
```typescript
311
+
// Your keys stay in your environment -- not on Coinbase, not on MoonPay
312
+
const wallet = createWallet({
313
+
accountAddress: '0xYOUR_CONTRACT',
314
+
walletClient: createWalletClient({
315
+
account: privateKeyToAccount(process.env.AGENT_KEY), // never transmitted
316
+
transport: http('https://mainnet.base.org'),
317
+
}),
318
+
chain: 'base',
319
+
});
320
+
```
321
+
322
+
If you need a quick integration and you're already in the Coinbase ecosystem: their product works for demos and low-stakes use cases. But if you're building agents that handle real funds, run autonomously for weeks, or need to survive beyond a single platform's product lifecycle -- you want the keys under your own control.
323
+
324
+
---
325
+
286
326
## Why Non-Custodial Beats Exchange Wallets
287
327
288
328
OKX OnchainOS supports 60+ chains. Coinbase Agentic Wallets are backed by a trillion-dollar exchange. Both look impressive on paper. Here's the problem: **they hold your agent's keys.**
0 commit comments