AI is a black box. Plumb gives you something to hold on to.
Most AI services hand you an answer and a bill. Plumb's bet is that every answer should leave behind proof — proof you can verify yourself and no one can rewrite. Everything here is built around that idea.
Proof for every answer
Every answer comes with a signed receipt — what you asked, what you got back, which model ran it, what it cost. You check it yourself; no one can fake it or change it later.
Works with your existing code
Plumb speaks OpenAI. Swap one URL and you're done — no new library, no rewrite. The receipt comes along for free.
Backed up on the blockchain
Every couple of minutes, a batch of receipts is committed to Base. Public, permanent, independent of Plumb — so your proof outlives us if it has to.
Self-host in 30 minutes
One Linux VPS. No Docker, no Kubernetes, no vendor lock-in. Own your wallets, your users, your data. Our production instance runs off the same guide.
Smart contracts can ask AI
Pipe lets a Solidity contract request inference and receive a verifiable answer back. Opens up a whole class of AI-powered on-chain apps.
Memory you can delete
Opt-in persistent memory. See exactly what Plumb remembered, why, and when. Delete any of it, any time. No black-box profile.
Three lines of Python. A receipt you can trust.
If you've ever used an AI API, Plumb works exactly the same way — with one new superpower. Here's the whole loop.
- 01
Ask a question
Your app calls Plumb the same way it would call OpenAI — same SDK, same shape. Your session is a wallet signature, so there are no passwords to manage.
- 02
Plumb generates a receipt
The gateway signs a receipt that commits to exactly what you asked, what model ran, what it cost, and what came back. All in one atomic step — no debit without a receipt, no receipt without a debit.
- 03
You verify, anyone can audit
The receipt rides back with your answer. Check it in one line of code, click a button in the explorer, or let your users do it themselves. Two minutes later it's on-chain forever.
# 1. Ask a questionfrom plumb_sdk import Clientc = Client(base_url="https://api.plumbtech.xyz")resp = c.chat.completions.create(model="anthropic/claude-sonnet-4.5",messages=[{"role": "user", "content": "hi"}],)# 2. Fetch the receiptrcpt = c.receipts.get(resp.id)# 3. Verify it — one line of mathassert c.verify_receipt(rcpt)✓ receipt verified — model, cost, timestamp all match
One stack. Four building blocks. No vendor lock-in.
Use what you need, ignore the rest. Everything is OpenAI-compatible where possible, and everything is yours to host.
Recent receipts
Real answers from real people, signed seconds ago. Click any one — your browser does the cryptographic check right there.