Cash out
to fiat
The offramp SDK for wallets, apps, and agents. Your users reach fiat through a protocol-held maker deposit while Peer handles the buyer side.
import { createCashClient, usdc } from '@zkp2p/cash';
const cash = createCashClient({ environment: 'production' });
// Estimate reads the oracle. It is not a locked quote.
await cash.estimate({ amount: usdc(1000), currency: 'USD' });
// Cash out: the user becomes the maker. Peer handles buyers.
const { depositId } = await cash.cashout({
amount: usdc(1000),
receive: { platform: 'venmo', currency: 'USD',
payee: { offchainId: '@you' } },
}, { signer });
// Track it from the id alone. No local order database.
for await (const order of cash.watch(depositId)) {
console.log(order.state, order.explain());
if (order.state === 'delivered') break;
}Offboard without
the middleman
Your app creates the maker deposit. A buyer pays your user on the app they already have, a TEE-TLS proof verifies the payment, and the protocol releases funds once verification passes. Buyer arrival is market-driven, so the SDK reports live order state instead of pretending there is a fixed ETA.
Protocol-held
Your user creates a maker deposit. Funds are held by the protocol and released only after the buyer's fiat payment is TEE-TLS verified.
Oracle at fill
Priced by the Chainlink oracle when a buyer fills, with no spread. estimate() is approximate; there is no quote to expire.
Buyer side handled
The taking side is handled by Peer. Your integration stores depositId, watches order state, and follows nextActions.
Where the money lands
Every corridor is priced by a live Chainlink feed at fill time, the same feed the protocol reads onchain. Read supported platforms and currencies at runtime with capabilities().
Venmo
USD
Cash App
USD
Zelle
USD
Chime
USD
Monzo
GBP
PayPal
USD, EUR, GBP, +4
Revolut
USD, EUR, GBP, +8
Wise
USD, EUR, GBP, +10
Built for agents,
not just apps
Unsigned by default
Every state-changing verb has an unsigned prepare counterpart that returns txs[] plus readable steps[] labels. Sign with any wallet, bundler, or policy layer.
A tool manifest
@zkp2p/cash/tools ships JSON-schema definitions of every verb, ready for an MCP server or a tool-use loop. Signing stays on the host.
Typed errors, self-driving
Every failure carries a code and a remediation. Every order carries its own next actions, so an agent drives the lifecycle on its own.
AGENTS.md and a skill
An integration manual ships in the package and a peer-cash-integration skill lives in the repo, so a coding agent onboards itself.
Peer is a peer-to-peer marketplace and payment protocol, not an exchange, broker, money services business, or custodian. Peer never holds or transmits user funds. This page is information about the software, not financial, legal, or tax advice.