Open-source wallet SDK for AI agents Squid Pay released an open-source TypeScript SDK, @squid/agent-wallet-sdk, that lets AI agents and backends read account context and propose payments or trades but cannot approve holds, sign transactions, or move money, with the owner's wallet remaining the final signer. The SDK supports Platform API keys (sq_master_…) via CLI HTTP and agent keys (sq_live_…) via MCP, and exposes tools such as get_account_summary, propose_action, and list_holds, while deliberately omitting approveHold, signTransaction, and exportPrivateKey to enforce human oversight. TypeScript SDK for AI agents and backends that connect to Squid Pay . Agents can read permitted account context and propose payments or trades. They cannot approve holds, sign transactions, broadcast, or move money. The owner’s connected wallet remains the final signer. Agent this SDK → Squid validates / HOLDs → Human reviews → Owner wallet signs → Squid verifies cd /Users/horatiubudai/ceo/Squid/sdk developer npm install npm run build From another project local path : npm install /Users/horatiubudai/ceo/Squid/sdk developer Create a Platform API key in Squid → Settings → CLI sq master … , or use an agent key from Agents sq live … . js import { SquidAgentWallet } from "@squid/agent-wallet-sdk"; const squid = new SquidAgentWallet { endpoint: process.env.SQUID ENDPOINT || "http://localhost:4173", apiKey: process.env.SQUID API KEY } ; const status = await squid.getStatus ; const wallets = await squid.listWallets ; const proposal = await squid.proposePayment { asset: "USDC", amount: 25, recipient: "0xRecipient...", chain: "Base", note: "Vendor invoice 1042", idempotencyKey: "invoice-1042" } ; console.log proposal.status ; // "held" | "ready for wallet" console.log proposal.proposalId ; // Needs Review hold id console.log proposal.message ; // Human-readable next step | Key | Default transport | Endpoint | |---|---|---| sq master … Platform API key | CLI HTTP | POST /api/cli/execute | sq live … agent key | MCP | POST /mcp | Force a transport: new SquidAgentWallet { apiKey, transport: "mcp" } ; new SquidAgentWallet { apiKey, transport: "cli" } ; console.log JSON.stringify squid.toMcpServerConfig , null, 2 ; { "mcpServers": { "squid": { "url": "http://localhost:4173/mcp", "headers": { "Authorization": "Bearer sq live …" } } } } Squid MCP tools exposed by this SDK: | Tool | Purpose | |---|---| get account summary | Profile, wallets, open reviews | get wallet balances | Balances / sync status | get financial harness | Agent budget + limits | list holds | Pending human reviews | get agent rules | Policies, files, vendors | get platform state | Full read-only platform snapshot | propose action | Create a review proposal never signs | squid.getStatus squid.listWallets / getBalances squid.listHolds / getHold id squid.listAgents squid.listRules squid.listPaymentLinks / getPaymentLink id squid.getPlatformState squid.getFinancialHarness squid.doctor squid.proposeAction { type, domain?, asset?, amount?, recipient?, chain?, note?, idempotencyKey? } squid.proposePayment { asset, amount, recipient, chain?, note?, idempotencyKey? } squid.proposeTrade { asset, amount, … } squid.executeCli "status" squid.callMcpTool "list holds" squid.listMcpTools squid.toMcpServerConfig Deliberately not available throws SquidForbiddenError : approveHold signTransaction exportPrivateKey Matches Squid Pay: - No private keys / seed phrases in Squid or this SDK. - Proposals go through Squid Brain / policy; risky ones become Needs Review holds. - Money moves only after the owner wallet signs and Squid verifies the chain receipt. - Structured errors from Squid code , type , message are preserved as SquidSdkError . export SQUID ENDPOINT=http://localhost:4173 export SQUID API KEY=sq master … node examples/quickstart.mjs node examples/propose-payment.mjs node examples/mcp-config.mjs This package lives next to the console at bank squid/Squid Pay / . Run Squid with npm run dev there default http://localhost:4173 http://localhost:4173 , then point the SDK at that origin. | Package | Role | |---|---| Squid Pay server.js + public/ | Source of truth, wallet signing, verification | @squid/pay-cli | Terminal client for Platform API key | @squid/agent-wallet-sdk | Programmatic agent / backend client | npm install npm run build npm test Requires Node.js ≥ 18 native fetch .