PROOFSLIP
ephemeral verification for agent workflows

24-hour receipts your agents check before they act.

Free — 500 receipts/month. No credit card.

ProofSlip

Verified
rct_7f3k9x2m
Typeaction
Statussuccess
Refund of $42.00 issued to customer #8812

CreatedMon, 23 Mar 2026 12:00:00 GMT
ExpiresTue, 24 Mar 2026 12:00:00 GMT
> view payload
{
  "customer_id": 8812,
  "refund_amount": 42.00,
  "currency": "USD",
  "reason": "duplicate_charge",
  "initiated_by": "agent/billing-v2"
}
01
Create

Issue a receipt when something happens — a payment, an approval, a handshake.

# POST /v1/receipts { "type": "action", "status": "success", "summary": "Refund of $42.00 issued to customer #8812", "idempotency_key": "refund-8812-2026-03-23" }
02
Verify

Before acting, your agent checks the receipt. Valid receipt = go. No receipt = stop.

# GET /verify/rct_7f3k9x2m { "id": "rct_7f3k9x2m", "valid": true, "expires_at": "2026-03-24T12:00:00Z" }
03
Expire

Receipts auto-expire after 24 hours. No cleanup. No stale state.

For humans
Shareable URL
Every receipt has a unique verification page. Send the link — anyone can confirm the receipt is real and current.
For agents
JSON API
Same receipt, machine-readable. Your agent GETs the endpoint and gets a yes/no with an expiry window.
Every receipt ID is cryptographically random and verifiable.
A database flag?
No expiry, no portability between services.
A webhook?
Pushes events but doesn't prove they happened.
A log?
Records history. Doesn't answer "is this still valid?"
ProofSlip gives the next agent portable, expiring proof it can verify before acting.
Duplicate refund
Two agents process the same refund because neither can prove it already happened.
Without ProofSlip

Agent A refunds $42. Agent B sees the same ticket, refunds $42 again. Customer gets $84. Your DB flag was stale.

With ProofSlip

Agent A creates a receipt with idempotency_key: "refund-8812". Agent B tries the same key — gets the existing receipt back. One refund, one proof.

Stale approval
An agent acts on a human approval that was given 3 days ago for a different context.
Without ProofSlip

Manager approved a $500 payment on Monday. Friday, a different agent finds that approval flag and pushes $5,000. The flag never expired.

With ProofSlip

Approval receipt expires in 1 hour. Agent checks valid: true and expired: false before every action. Stale approval = automatic stop.

Broken handshake
Agent B starts writing to a shared resource before Agent A is done reading it.
Without ProofSlip

Agent A is mid-read. Agent B assumes it’s done and starts writing. Data corruption. No coordination, just hope.

With ProofSlip

Agent A creates a handshake receipt when ready. Agent B verifies it exists before writing. No receipt = wait.

Unsafe retry
A pipeline crashes and restarts from the beginning instead of where it left off.
Without ProofSlip

Pipeline fails at step 7 of 10. Restarts at step 1. Re-sends emails, re-processes payments, re-deploys artifacts. Chaos.

With ProofSlip

Each step creates a resume receipt. On restart, the pipeline checks which receipts are still valid and skips to step 8.

action
Verify a refund happened before emailing the customer.
approval
Gate a payment on a fresh human approval — not a cached one.
handshake
Prove both agents acknowledged before either starts writing.
npx -y @proofslip/mcp-server
Works with Claude Desktop, Cursor, Windsurf, and any MCP client. npm ↗
ProofSlip
Verification
Did it happen? Ephemeral receipts your agents verify before they act. Proof of past actions.
Context Capsule
Knowledge
What do I need to know? Structured handoff packets that carry decisions, findings, and next steps forward.
Receipts prove what capsules describe. Capsules reference receipts. contextcapsule.ai →