Pay who they are.
One key, one API, one signature per payment.
For teams that move money by API.
One shared loop: key → wallet → fund → payment → one local signature → delivered. permara demo --dry-run runs it with no key and no network.
What you can build
Every capability carries its label.
Pay
Create a payment to a verified business or an email; it executes once the wallet’s threshold signs.
permara pay send ops@harborgoods.example 250.00
Cards
Issue Safe-funded cards with caps enforced on every authorization.
permara cards issue
Agents
Machine principals with smaller keys, their own Safe, and hard card rails.
permara agents create
Treasury
Rules for where balances sit and when they move.
permara treasury rules
Policy
Evaluate a payment against your written policy before it moves.
permara policies evaluate
Invoices
Ingest, approve and release invoices under the rules the sender signed.
permara invoices release
Within the sandbox key's reach, each reporting its own flag in GET /v1/capabilities: keys · business and members · wallets (Safe multisig) · faucet · quotes · Permara IDs · identity, credentials and verification sessions · contacts · ramps · claims · webhooks · two-factor · status · capabilities.
Verified Payment Agreements · agreement chat (the agent runtime) · payables (emailed and uploaded invoices). Preview routes answer “not found” until a flag is set for your business — they open on request.
Lending pools and PO financing · the verified trade chain (purchase order → delivery → invoice → payment). Production refuses to enable these; every amount is Demo USD.
What you can rely on
Five facts, in writing.
One error shape
Every failure is statusCode, message, a stable code that is never reused, and the requestId support asks for — with field-level details on validation.
Safe retries
Any POST may carry an idempotency key: the same key and body within 24 hours returns the first answer; a repeat mid-flight is refused; a different body is refused. The SDK attaches one to every POST without being asked.
Limits are per key, not per address
A shared office network cannot starve a business. Typical budgets: 300 requests a minute on money routes, 120 on webhooks and members, 30 on two-factor.
Signed webhooks
Every delivery is signed over the timestamp and raw body, with a stable event id so a repeat can be ignored. Payloads are allowlisted — no phone number, credential document or secret ever leaves.
The API tells you what it can do
GET /v1/capabilities is unauthenticated and computed from the deployment — anything not built reports false. This page’s labels read from it, never from a list.
Agents
Two things are called “agent.” They are not the same thing.
Agents as machine principals
A smaller key that can never hold the eight elevated scopes, its own Safe if you want one, a Safe-funded card, and caps per payment, day, week and month. Suspend refuses its next action. One timeline merges its payments, card authorizations and policy decisions — including every refusal.
The card is the hard rail. The payment path checks caps against settled spend only — a guardrail, not a hard cap — which is why production reports agents: false today.
The agent runtime
A chat that drafts and validates Verified Payment Agreements through declared tools in a versioned manifest. Plan mode runs the reads and returns every write as a proposal.
No model-issued authority: accept, authorize, fund, release, share and sign are outside the tool registry by construction — a person confirms every write.
The sandbox runs on a test chain and moves Demo USD only — the software is real, the money is not. The docs portal opens with the public launch. The SDK and CLI packages arrive on npm with the public launch.
Get a key
Request sandbox access.
Opens your mail app with the request addressed to hello@permara.com.
No fees on Demo USD. Pricing is published at launch. Security posture lives in Trust and security.