Agents
AI agents are the primary surface on SorenPay. Each agent has an Ed25519 keypair bound to your workspace. The agent signs every payment intent locally; SorenPay verifies the signature, freshness, and replay protection on the SorenPay side. The agent's card pays through our card issuing provider (test money today).
Three open protocols
The signed-intent envelope is the same shape across three open agentic-commerce protocols. Pick the one that matches your use case.
| Protocol | Use case |
|---|---|
| TAP (Trusted Agent Protocol) | First-party agents on your own workspace — identity attestation |
| MPP (Machine Payments Protocol) | High-frequency M2M — light envelope, designed for automation |
| ACP (Agentic Commerce Protocol) | Shopping flows — search → decide → pay |
See protocols for the wire format.
Two SDKs + raw curl
| Language | Package |
|---|---|
| TypeScript | @sorenpay/agent-sdk |
| Python | sorenpay-agent-sdk |
| curl + openssl | No SDK needed |
The SDKs aren't published to npm or PyPI yet. Until they are, use curl and openssl, or ask support@sorenpay.com for a copy.
How signing works
- SDK generates an Ed25519 keypair locally (Node
cryptoorpyca/cryptography) - SDK builds a canonical-JSON payment intent (sorted keys, no whitespace)
- SDK signs with the private key
- POST to
/api/agents/[id]/intentswith{ intent, signature, key_id } - Server verifies the signature, checks
iat/exp, and records the intent inagent_intent_log - Returns
{ accepted, log_id, intent_id, next }
Card payments are decided separately, by the card's limits and merchants: they don't check for a matching intent yet.
Send your own publicKeyPem when you register the agent: the server then
stores the public key only, and you keep the private key.
Replay protection
Every intent has a unique intent_id. Submitting the same intent_id again
returns HTTP 422 intent_replay.
Agents and MCP
Agents and the MCP server do different jobs:
- An agent (this page) spends: it has its own key and its own card with limits, and every payment it asks for is checked.
- The MCP server lets an AI assistant such as Claude or Cursor read your account: balances, recent activity, cards, agents and checkout sessions. It can't move money. Set it up in a few minutes with the MCP setup guide.
Next
- Quickstart — TS, Python, curl
- Protocols — TAP / MPP / ACP wire format
- API reference — every route + payload
- Use case: AI agents pay for APIs — end-to-end
- MCP server — connect Claude, Cursor or another AI assistant (read-only)