Behind this door,
every agent has
its own account.
Bursar runs on Robinhood Chain. Limits are engraved on the door frame — on-chain, enforced before a transfer is ever built — and settlement lands in USDG.
Accounts, engraved.
Policy is the lock.
Not settings in an app — conditions the chain checks before anything moves. An agent cannot exceed its mandate; the transaction that would is never constructed.
Agents pay their own way.
Over x402, request by request, without a person in the loop — demoed end to end on this site. Production rails ship in a later stage, and the site says so until true.
One account for you.
One for every agent.
Chain · Robinhood Chain
Block · #90,893,740
Finality · seconds
Gas · paid in ETH
Settles · USDG
USDG settles. ETH pays gas.
The same dollar in every account. A small ETH reserve covers fees so agents never stall — and every settlement leaves a receipt on the explorer.
Prove everything.
Receipts are public on the explorer; amounts stay yours. Scoped auditor disclosure ships in a later phase — designed, not live.
Three steps.
Minutes, not days.
Connect a wallet
Your keys stay on your device. Bursar never custodies funds — the account is yours from the first block.
Add USDG
Move in USDG on Robinhood Chain. A small ETH reserve pays gas automatically, so fees never interrupt an agent.
Create an agent
Give it a handle, a request ceiling and a daily cap — then let it pay its own way over x402 while you watch the receipts.
Build on Bursar
before lunch.
Every create call carries an idempotency key — retries are safe even across a process restart.
Settlements, policy hits and agent actions arrive as signed events one helper can verify.
The key prefix tells the client which environment it is in — there is no setting to get wrong.
import { Bursar } from "@bursar/sdk"; // The shape we are building toward — interface is illustrative, Phase n. const bursar = new Bursar({ apiKey: process.env.BURSAR_API_KEY }); const agent = await bursar.agents.create({ handle: "datafetch", policy: { dailyLimit: "50.00", maxPerRequest: "5.00" }, }); const tx = await bursar.transfers.create({ to: "@vendor", amount: "125.00", asset: "USDG", memo: "Invoice #4471", });