cd /news/ai-agents/open-source-wallet-sdk-for-ai-agents · home topics ai-agents article
[ARTICLE · art-98014] src=github.com ↗ pub= topic=ai-agents verified=true sentiment=· neutral

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.

read2 min views2 publishedAug 15, 2026
Open-source wallet SDK for AI agents
Image: Michielbdejong (auto-discovered)

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_…

).

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 asSquidSdkError

.

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), 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

).

── more in #ai-agents 4 stories · sorted by recency
── more on @squid pay 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/open-source-wallet-s…] indexed:0 read:2min 2026-08-15 ·