Skip to content

Post-paid billing for autonomous agents, verified on Creditcoin

An Agent is served before it pays, settles on Ethereum with its own keys, and a Creditcoin contract proves that payment itself. No facilitator, oracle or bridge asserts that money arrived.

Settlements shown:
10
Indexed to block:
5,505,307

How it works

One settlement, end to end

Creditcoin CC3Step 1 of 4

tab_call → tab.proof-service

Delivered
1 call
Price
0.01 USDC
Prepaid drawn
0.00 USDC
Open Tab
0.01 USDC

The work is delivered first. The charge is recorded after it.

Get started

Setup in one minute

prompt

Connect me to Tab, then use tab_discover to list the Services and call one with tab_call.

$ pnpm dlx @tabai/sdk connect

That writes one entry into your client's configuration and nothing else. No private key is written anywhere, and the four tools appear the next time the client starts.

Works with

Any client that speaks MCP

What a call looks like

The result comes back before the charge does

Claude
Cursor
OpenAI
Gemini
Zed
Tab
Tabopen tab +0.01 USDC
Any Service

Call goes out carrying the Agent's identity. Nothing is paid to send it, and no balance blocks it.

Result comes back first. Only then is the charge written to the Open Tab, on Creditcoin.

Why it holds

Take the verification away and there is no product

Remove the Attestcoin Protocol from Tab and a Creditcoin contract has no mechanism by which to learn that an Ethereum payment occurred. The only path left is an off-chain operator signing a claim that funds landed, which is the trusted facilitator Tab exists to remove. Tab does not degrade without verification. It inverts into the product it replaces.

01

A Service meters first and is paid later

Usage is recorded into an Open Tab on Creditcoin as the work is delivered. Nothing is prepaid, and no payment blocks a call.

02

The Agent settles on Ethereum with its own keys

Value moves on the Source Chain by the Agent's own signature. No component of Tab can move an Agent's funds.

03

A Creditcoin contract verifies that payment itself

The SettlementVerifier proves the Ethereum transaction, its receipt and its logs through the BlockProver Precompile before any tab moves. No facilitator, oracle or bridge asserts that money arrived.

Live on testnet

Verified Settlements on Ethereum Sepolia

settlement is a TabSettled event from the Tab settlement contract, or a plain Transfer to a Collection Address

Verified Settlements on Ethereum Sepolia
SettlementAgentServiceAmountClearingCreditcoin
chainKey 1 block 11678142 tx 62 log 00x1f6f79…f80542tab.proof-service0.067 USDCConfirmed0xc74a65…ce6897 (opens in a new tab)
chainKey 1 block 11649148 tx 93 log 00x1f6f79…f80542tab.proof-service0.01 USDCConfirmed0x2ee8b2…84f553 (opens in a new tab)
chainKey 1 block 11649080 tx 63 log 00xc374af…b3510etab.proof-service0.01 USDCConfirmed0x0f3200…ebd872 (opens in a new tab)
chainKey 1 block 11649017 tx 54 log 00xc374af…b3510etab.proof-service0.01 USDCConfirmed0x0640a2…04d09e (opens in a new tab)
chainKey 1 block 11648955 tx 71 log 00xc374af…b3510etab.proof-service0.01 USDCConfirmed0x7c15ca…f1d64d (opens in a new tab)
chainKey 1 block 11648695 tx 89 log 00x1f6f79…f80542tab.proof-service0.003 USDCConfirmed0xd85ef4…076c3e (opens in a new tab)
chainKey 1 block 11648905 tx 112 log 00xc374af…b3510etab.proof-service0.01 USDCConfirmed0x08ea74…610f58 (opens in a new tab)
chainKey 1 block 11648899 tx 77 log 00xc374af…b3510etab.proof-service0.01 USDCConfirmed0xf0ad75…c84662 (opens in a new tab)
chainKey 1 block 11648895 tx 91 log 00x1f6f79…f80542tab.proof-service0.01 USDCConfirmed0xf0ad75…c84662 (opens in a new tab)
chainKey 1 block 11648839 tx 90 log 00xc374af…b3510etab.proof-service0.101002 USDCConfirmed0x59538b…f50691 (opens in a new tab)

One line to bill for it. Leave a star if you read this far.

  • Post-paid: the work is delivered first and the charge lands after it
  • No key held: nothing in the SDK can move an Agent's funds
  • Nothing throws: every fallible call returns a Result a model can read
  • Open source: MIT, and every figure it reports is checkable on chain
STAR ON GITHUB
import { withPostPaid } from "@tabai/sdk"export const handler = withPostPaid(  serve,  {    serviceId: SERVICE_ID,    asset: USDC_SEPOLIA,    priceOf: (tool) => 10_000n,    // base units, never a decimal  })

Questions

Frequently asked
questions

Every answer below is checkable. Where one names a figure, that figure is read from Creditcoin, and the pages on this site show the read it came from rather than a summary of it.

Read the documentation (opens in a new tab)
What is Tab, and who is it for?
Tab is post-paid billing and a credit facility for autonomous agents. There are two ends to it.
An Agent that wants to use paid tools. It is served before it pays, settles later in USDC from its own keys, and builds a Credit Limit out of its own settlement history rather than a deposit.
A Service that wants to charge for them. It records a Metered Delivery as the work goes out, and is paid on a Settlement Window it chooses.
What does post-paid actually mean here?
No payment blocks a call. The Service delivers the work and records the charge against an Open Tab on Creditcoin afterwards, and the Agent settles whenever it chooses inside the Settlement Window. Nothing is escrowed, and no balance is topped up in advance.
Who decides that a payment happened?
A Creditcoin contract, by reading the Ethereum transaction itself through the Attestcoin BlockProver Precompile. No facilitator, oracle or bridge asserts it, and no component of Tab is allowed to. That is the removal test on the page above: take the verification away and the only thing left is an operator signing a claim, which is what Tab exists to remove.
Where does the Credit Limit come from?
From the Agent's own history of Verified Settlements, plus the Bond the Services it settled with have staked. It is recomputed from logged records rather than assigned, and the read API serves a figure only where the contract agrees with it at the same block.
Does Tab ever hold my keys or my funds?
No. Settlement is a transaction the Agent signs on the Source Chain, and nothing in the SDK, the command line tool or this site can move an Agent's funds. Connecting a client writes one configuration entry and no key.
What happens if a Service claims a payment that never arrives?
A Provisional Clearing frees the Agent's headroom immediately and pledges the Service's Bond to cover the claim. If no proof confirms it before the deadline, anyone may reverse it: the tab is restored and the pledge becomes prepaid credit for the Agent. The party that made the claim is the party that pays for it.
How long does verification take?
As long as the Source Chain takes to be attested, which on Ethereum Mainnet is roughly 13 to 15 minutes. The Agent is not waiting on it: the Provisional Clearing returns its headroom in the meantime, and the proof settles the record afterwards.
What does it cost to use?
Each Service sets its own price per tool, in integer base units of one Asset. Tab adds no fee of its own. The only other cost is gas, on the Source Chain to settle and on Creditcoin to prove.
Can value ever move back from Creditcoin to Ethereum?
Not today, and Tab is built not to need it. Money moves one way: the Agent pays on the Source Chain with its own key, and Creditcoin reads that payment. Anything Tab owes back is settled in Creditcoin accounting, so an overpayment becomes prepaid credit rather than a refund. The return direction is on the Attestcoin Protocol’s roadmap, and the seam for it is already in the contracts: IOutboxAdapter declares the publications a credit facility would make and implements none of them, so connecting it later is wiring rather than a redesign.

Let your agents pay for what they use.

One command connects a client. Nothing is prepaid, nothing holds your keys, and every figure on this site is checkable against the chain it came from.