grip · sdk v0.4 · base mainnet

Money rails for software that spends.

Wallets, limits, and approvals for autonomous agents. Three lines to integrate. Settles in seconds on Base. The principal — you — never moves.

USDC native ERC-8004 ERC-7715 passkeys audit Q2 26
install
open wad
pay
approve
node ▸ typescript
1# install
2$ npm i @grip-labs/sdk
3
4// boot
5import { grip } from '@grip-labs/sdk'
6
7const client = grip.init({
8 apiKey: process.env.GRIP_KEY,
9 network: 'base'
10})
grip · ready · 192ms
connected to base mainnet
principal · lea.base resolved
1// one wad per agent — policy + cap + allowlist
2const wad = await client.openWad({
3 agentId: 'pi-research',
4 dailyCap: 25, // USDC
5 perTxCap: 20,
6 allowlist: ['openai', 'anthropic', 'dune'],
7 scope: ['research'],
8 expiresIn: '30d'
9})
10
11console.log(wad.id)
wad opened · 0xa3f1…78bC
on-chain policy registered · ERC-7715
agent can now spend up to $25/day
revoke any time · principal untouched
1// inside the agent — pay a service
2const tx = await wad.pay({
3 to: 'openai',
4 amount: 2.50,
5 memo: 'gpt-4 · 14k tokens'
6})
7
8if (tx.status === 'settled') {
9 return openai.complete(prompt)
10}
14:22:04 · tx requested · 2.50 USDC
14:22:04 · policy check · within cap (12.40 → 14.90 / 25)
14:22:04 · allowlist ✓ openai
14:22:06 · settled · base · 0xd1a7…f902
total elapsed · 1.8s · no human in loop
1// $350 plane ticket — exceeds $20 per-tx cap
2const tx = await wad.pay({
3 to: 'latam',
4 amount: 350,
5 memo: 'GRU → BUE · 12 may'
6})
7
8// auto: principal gets a push, decides
9await tx.awaitDecision()
09:14 · tx requested · 350 USDC
09:14 · exceeds per-tx cap · escalating
09:14 · push sent → principal device
09:15 · approved by face id · 47s
09:15 · settled · 0xfa2b…0e7c
§01 · what grip is

Three primitives. That's the whole product.

No accounts. No KYC for the agent. No "merchant of record" pretending to be a bank. Just programmable money.

Wads

Policy containers. One per agent. dailyCap, perTxCap, allowlist, scope, expiresIn. On-chain. Revocable in one call.

Principal

You. The one DID at the top. Agents act under it; the principal is the only signer with power to fund, raise caps, or revoke. ERC-8004 identity.

Pay

Single call. wad.pay({to, amount}). Within policy → settles in ~2s on Base. Outside policy → bumps to the principal's device for one-tap approval.

§02 · the flow

From npm install to settled tx in four steps.

01 · Install

SDK

One package. TypeScript-first. Works in Node, Edge, Bun, Cloudflare Workers, anywhere your agent runs.

02 · Open

One wad per agent

Each agent gets its own policy container. Set caps and an allowlist of who it can pay. Wads are on-chain — verifiable, revocable.

03 · Spend

Within policy → autonomous

Tx settles in seconds, no human in loop. Outside policy → push to principal's device. Approve with Face ID, kill with one tap.

04 · Watch

Companion app

iOS app + web dashboard. Live ledger, top-ups, approvals. Multi-agent view. Export to CSV. Audit anytime.

§03 · companion app

The principal sees everything.

Every move, every wad, every cap. Built for owners running 5+ agents. Available iOS, Android, web.

  • 01
    Live balance, all wads Total USDC across every agent. USD / EUR / JPY equivalents in real time.
  • 02
    Top-up: USDC, transfer, card Pix, SEPA, ACH, card, or onchain. Lands as USDC on Base. No gas, no chain to pick.
  • 03
    Approvals on your device Agent asks for $350. You see merchant, memo, wad context. One tap approves.
  • 04
    Caps, scopes, kill-switch Tighten any wad in seconds. Pause an agent. Revoke if it drifts. The principal is untouched.
grip
L
principal · lea.base
balance · all wads
USDC 847.32
grip pay · request
Atlas wants $350 — flight GRU→BUE
open wads · 3 active
P
Peppe
$12.40/100
π
Pi
$4.20/25
A
Atlas
$0/500
recent
all →
spotify
14:22 · via peppe
−$8.00
dune-pro
11:08 · via pi
−$4.40
top-up · pix
09:41 · principal
+$500
balance
activity
wads
settings
§04 · why not stripe

Built for software. Not for stores.

Card rails were designed for humans clicking checkout. Agents need policy, allowlist, programmatic limits, and instant settlement.

grip stripe diy onchain
agent-aware policy native · openWad() — manual rules build from scratch
instant settlement ~2s · base 2–7 days ~2s
approvals to principal push + face id
per-tx + daily caps on-chain · ERC-7715 webhooks + db contracts to write
allowlist of merchants yes code it
chargebacks none · final 120-day window none
setup time 3 lines · 5 min days · merchant account weeks
§05 · pricing

One number. That scales down with you.

No seats. No setup. No minimums. You pay a percentage of what your agents actually spend.

Builder · < $1k / month
1%of agent spend
Pay only when an agent spends. Free until then.
  • Unlimited wads
  • Unlimited agents
  • SDK + API + dashboard
  • Push approvals
  • Email + Discord support
no card · use it free until your agents start moving money
Scale · ≥ $1k / month
0.5%of agent spend
Drops automatically once you cross $1k in monthly spend.
  • Everything in Builder
  • Multi-user · roles · audit log
  • SLA + dedicated Slack
  • Custom allowlist registries
  • CSV / Quickbooks export
no contract · drop back to 1% if you slow down a month
§06 · honest answers

Things you'll ask before signing up.

Do you hold the money?
No. Funds live in a smart contract on Base, owned by the principal's DID. Grip never has signing keys. If we vanish tomorrow, your USDC is still there — withdrawable to any wallet via the contract.
What chain?
Base mainnet. USDC native. ~$0.0001 gas per tx, ~2s finality. We handle gas — you never see ETH. Multichain (Solana, Arbitrum) on the roadmap.
What about chargebacks?
There aren't any. Onchain is final. This is a feature for agents — no "the customer disputed it 89 days later" — but it means you have to trust your allowlist. Set allowlist tight.
Can the agent drain everything?
No. dailyCap and perTxCap are enforced on-chain. The agent literally cannot spend past them. Anything bigger triggers a push to the principal's device — Face ID required.
Refunds?
Sender → recipient negotiate. Grip gives you the rails and the ledger; we don't mediate. Most use-cases (API credits, subscriptions, bookings) handle this at the merchant layer.
What does "1% of spend" actually mean?
If an agent pays $10 to OpenAI, $10 lands in OpenAI's wallet and Grip charges $0.10 to the principal's wallet. Settled monthly. No surprise minimums.
Do recipients need a Grip account?
No. Recipients get USDC on Base at any address — they can withdraw to fiat via their own off-ramp (Coinbase, Bridge, Circle, BRLA, Lemon, etc). Grip is the sender side.
Audited?
Contracts: audit scheduled with Spearbit (June 2026). SDK: SOC 2 Type II in progress. Reports will be linked from /security as they land.

Three lines of code.
Your agent has a wallet.

Free until your agents move money. Then 1%. Drops to 0.5% past $1k/month.
no card · no kyc for builders · base mainnet