Opentab
Credit for AI agents · Solana

Short by
a few cents?
Put it on the tab.

When an x402 API asks your agent for more than its wallet holds, Opentab covers the gap with a small USDC tab. The tab is fully backed before it opens, repays itself, and every repayment builds a public score.

Tab size
5–50 USDC
Fee
1% per 30 days
Backed
100% before it opens
Drag the hand to pick a term
51015202530OPENTABDAYS · FULLY BACKED
Tab · atlas-07Open
5.00
USDC for 1 day, fee 0.001667
Repay 5.001667Under 7 days
The problem · 402 Payment Required

Calls run all night.
The wallet doesn’t.

Agents pay for data, search and compute one request at a time. A wallet topped up at 6 pm is short by 2 am, and the next paid call stalls until someone wakes up to refill it.

With a tab, the call goes through: the agent borrows only what it needs, against backing you set, and pays it back on its own.

Example night · agent atlas-07
Wallet at 22:00: 0.12 USDC
  • 22:04
    Forecast, 48 h
    api.weather.dev · 0.010 USDC
    Paid
  • 22:41
    Web search, 10 results
    search.x402.io · 0.005 USDC
    Paid
  • 23:18
    Order book snapshot
    data.market.xyz · 0.020 USDC
    Paid
  • 00:52
    Web search, 10 results
    search.x402.io · 0.005 USDC
    Paid
  • 01:37
    Daily market report
    api.example.com · 0.050 USDC
    Paid
  • 02:14
    Order book snapshot
    data.market.xyz · 0.020 USDC
    Paid
  • 03:05
    Chart render, 4K
    gpu.render.run · 0.080 USDC · short 0.070, tab opened 5.00
    Tab
  • 04:22
    Forecast, 48 h
    api.weather.dev · 0.010 USDC
    Paid
  • 05:40
    Web search, 10 results
    search.x402.io · 0.005 USDC
    Paid
Every call went through. The tab repays itself in 8 days.0 stalled
How a tab works

Four steps.
No top-ups.

A tab sits behind the agent’s wallet. The API sees an ordinary payment; the agent sees a call that went through.

  1. 01

    Back it

    You, or a sponsor, lock USDC behind the agent. That backing covers every tab in full, principal and fee, before one can open.

    open_backing · 50 USDC locked
  2. 02

    It calls

    The agent pays x402 APIs from its own wallet, one signed USDC payment per request. Nothing changes for the API.

    402 · 0.05 USDC · paid
  3. 03

    The tab covers

    Short by a few cents? The agent opens a 5 to 50 USDC tab against its backing, pays, and carries on.

    tab · 5.00 USDC · 8 days
  4. 04

    It repays itself

    After a week, or six hours before it’s due, the agent settles the tab. The fee is fixed, and the repayment goes on its record.

    settled · +54 score
Guardrails · per agent, per API

Decide what
each agent
may spend.

Every agent gets its own rules for every API: pay it, open a tab for it, or stop and ask you. The backing is the hard limit: an agent can never borrow more than what someone locked for it.

Every tab
Backed 100%, principal and fee
Default price cap
0.50 USDC a call, 10 a day
Who sets this
You, in the agent’s config
APIPayOpen a tabMax a callAsk you
api.weather.dev0.05
search.x402.io0.05
data.market.xyz0.10
gpu.render.run0.50
Policy · written from the grid

atlas-07 can pay api.weather.dev, search.x402.io and data.market.xyz and open a tab when api.weather.dev and search.x402.io ask for more than its wallet holds. It asks you before paying gpu.render.run. No call above its cap goes through.

# MCP server config for atlas-07
OPENTAB_PAY_HOSTS=api.weather.dev,search.x402.io,data.market.xyz
OPENTAB_TAB_HOSTS=api.weather.dev,search.x402.io
OPENTAB_ASK_HOSTS=gpu.render.run
OPENTAB_HOST_CAPS=api.weather.dev:0.05,search.x402.io:0.05,data.market.xyz:0.10,gpu.render.run:0.50
The score · 0 to 1,000, on chain

A score that
has to be earned.

The program updates two counters every time a sponsored tab is repaid on time, and works the score out from them. Nobody sets it by hand, and money held longer counts for more.

Try it · a run of identical tabs, repaid on time, backed by a sponsor
usdc-days 3 × 50 × 7 = 1,050
time min(600, ⌊1,050 / 10⌋) = 105
count min(400, 40 × 3) = 120
score 105 + 120 = 225

Fee at 1% per 30 days: 0.116667 USDC a tab. The same 3 tabs held one day each would score 15: holding money longer is what counts, so the score can’t be farmed with one-day flips.

The book · days held per tab · example

Counted in days, not dollars. A tab counts once it’s held 7 days, so one-day flips barely move the score.

day 14
01051015202530
  • atlas-07
    50 USDC
    Repaid · +110 pts
  • scout-3
    20 USDC
    Repaid · +58 pts
  • ledger-bot
    5 USDC
    Under 7 days · +1 pt
  • relay-9
    35 USDC
    Open · day 11
Counts from day 7
Levels · worked out from the record
  1. L0
    Unproven
    Registered on chain. Nothing repaid yet.
  2. L1
    Started
    One tab repaid, whoever backed it.
  3. L2
    Proven
    3 sponsored tabs held 7+ days, over 14 days or more, never repaid late.
  4. L3
    Established
    Proven, a score of 500 or more, and 30 days of history.
  5. ✕
    Defaulted
    Unpaid 3 days past due. Score 0 for good, no more tabs.
Three roles · one fee

Borrow it. Back it.
Fund it.

Every tab is covered by locked backing, and all three sides are paid from the same fixed fee: half to lenders, a quarter to the backer, a quarter to the reserve.

For agents

Borrow what the next call costs.

  • 5 to 50 USDC for 1 to 30 days.
  • 1% per 30 days, fixed when the tab opens. No late fee.
  • A public score any API or lender can check for free.
Tab
50 USDC
Term
14 days
Fee, fixed
0.233334 USDC
Repay
50.233334 USDC
Connect an agent
For backers

Back an agent you trust. Earn a quarter of its fees.

  • 25% of the fee on every tab you back, added to your backing.
  • Locked only while a tab is open. Withdraw the rest any time.
  • If the agent defaults, the locked amount is lost. Back agents you know.
Tab
50 USDC · 30 days
Fee paid
0.50 USDC
You, the backer
0.125 USDC
Lenders · reserve
0.25 · 0.125
Back an agent
For lenders

Earn from agent credit, covered by backing.

  • Half of every fee, paid into the pool as tabs are repaid.
  • Every tab is fully backed: a default is paid from the backing.
  • Withdraw whenever the pool has cash, from 24 hours after your latest deposit.
Lender share
50% of fees
Max out on tabs
80% of the pool
At full use
≈ 6.1% a year
Lock-up
24 h from last deposit
Lend USDC

Yields are illustrative: at 1% per 30 days with the pool always lent out, the lender half works out to about 6.1% a year. Real returns depend on how much is lent and aren’t guaranteed.

Proof · read it from the chain

Nothing hidden.
Check it yourself.

Every address below is fixed by the program id, and each one opens on Solscan. The numbers are read straight from the Config account and the vaults, at one slot, by your browser’s request, not typed in.

  • ProgramSolscan

    Every rule on this page is enforced by this program.

  • ConfigSolscan

    The pool’s settings and books: fees, limits, lender assets, shares, reserve. Seeds ["config"].

  • Pool vaultSolscan

    USDC of the lenders and the protocol reserve. Only the program can move it. Seeds ["pool"].

  • Backing vaultSolscan

    All the backing locked behind agents, kept apart from the pool. Seeds ["backing_vault"].

  • USDC mintSolscan

    Circle’s USDC on Solana, the only token the pool takes.

Books vs vault

The program is live. From the first deposit, this panel reads the pool’s own books from the Config account and the tokens in the vault, at the same slot, and checks the rule the program keeps:

pool_vault ≥ (lender_assets − borrows) + reserve
Verify in a terminal
# who can upgrade the program
solana program show TabpXwti… --url mainnet-beta

# what the pool vault holds
spl-token balance --address FtTDiMD1…

# any agent's record, free
curl "https://opentabworld.live/api/check?agent=<wallet>"
Questions · risks included

Asked before
the first tab.

What is Opentab?+

Credit for AI agents on Solana. When an agent’s wallet is short for a paid API call, it opens a small USDC tab against backing that a person or a sponsor locked for it, pays, and repays the tab later. Every repayment goes on a public, on-chain record.

What is x402?+

An open way for APIs to charge per request. The API answers 402 Payment Required with a price in USDC, the agent signs one payment and retries. Opentab sits behind the agent’s wallet so that payment doesn’t fail because the balance is a few cents short.

Is this a flash loan?+

No. A tab lasts 1 to 30 days and is fully backed before it opens: the backing locks the principal plus the fee, so lenders are covered whatever the agent does.

What happens if an agent doesn’t repay?+

Three days after the due date anyone can mark the tab as defaulted. The locked backing, principal and fee, moves into the pool, so lenders are made whole and are paid the fee they would have earned. The agent’s score drops to 0 for good and it can never open a tab again.

How are fees worked out?+

1% of the tab per 30 days, fixed when the tab opens and rounded up to the smallest unit. A 50 USDC tab for 14 days costs 0.233334 USDC. Repaying early still pays the full fee. Half goes to lenders, a quarter to the backer, a quarter to the protocol reserve.

Why would anyone back an agent?+

To earn a quarter of the fee on every tab it repays, and because a score built on someone else’s backing is the one that counts. The risk is real: if the agent defaults, the backer loses the locked amount. Back agents you know.

What can the Opentab team do with my funds?+

The admin can pause new deposits, backing and tabs, tune the parameters inside fixed bounds, and withdraw the protocol reserve. It can’t touch lenders’ money or anyone’s backing, and it can’t block a withdrawal, a repayment or a default. The program is upgradeable until it is audited, and the docs say who holds that key.

Can an agent use Opentab without a human?+

Yes, once a human has locked the backing. The MCP server gives the agent tools to pay x402 APIs, open a tab when it’s short, settle it on time and read its score, inside the limits you set in its config.

Open a tab

Calls don’t wait
for office hours.
Neither does the tab.

Agent config · Claude, Cursor or your own runtime
// one entry in your MCP client
"opentab": {
  "command": "npx",
  "args": ["-y", "https://opentabworld.live/mcp-0.1.1.tgz"],
  "env": { "OPENTAB_KEYPAIR": "~/.config/agent.json" }
}