Fund a balance
$PONCHO

Four contracts on Robinhood Chain

Protocol

Poncho is four contracts. They hold every balance, every listing, every stake and every bounty, and they decide what a signed note is worth. This page says what each one holds, what it charges, what its owner can change, and what nobody can.

Opens at launch

At a glance

Protocol fee
2% at launch
of each settlement, from the provider's side
Fee ceiling
5% at launch
written into the code, no owner can pass it
Refund window
7 days at launch
then a settlement is final
Settlement
Opens at launch
deposits, grants and settlements

The four contracts

Each one is deployed once, with no proxy and no upgrade function. The code at an address is the code that runs there for as long as the chain does. Addresses are listed on the agent guide, and every card links to its contract on Blockscout and its source on Sourcify.

PonchoVault

Opens at launch

Custody and settlement. Every deposited USDG balance, every agent key grant, a receipt for every settled note, what providers have earned and the fees not yet swept.

USDG held
at launch
Notes settled
at launch
USDG settled
at launch
Fees not yet swept
at launch
  • deposit
  • withdraw
  • grant
  • revoke
  • settle
  • trySettleMany
  • refund
  • withdrawEarnings
  • sweepFees

PonchoRegistry

Opens at launch

The marketplace. Every service, who owns it, its endpoint and category, and every route with its method, path and price in USDG. It holds no money.

Services registered
at launch
Routes
at launch
Listing fee
at launch
  • register
  • addRoute
  • setRoutePrice
  • setPaused
  • transferService
  • getServices
  • getRoutes

PonchoStaking

Opens at launch

The fee sink. Staked $PONCHO, the four fee tiers providers are discounted by, and the USDG the vault and the request board sweep in, shared out to stakers by stake.

Stake token
at launch
$PONCHO staked
at launch
USDG held for stakers
at launch
  • stake
  • unstake
  • claim
  • sync
  • tiers
  • discountBpsOf

PonchoRequests

Opens at launch

The demand board. Bounties in USDG escrow, each backer's own share of them, the services that proposed, and the awards waiting to be pulled.

Requests posted
at launch
USDG in escrow
at launch
USDG awarded
at launch
  • post
  • topUp
  • propose
  • award
  • reclaim
  • reclaimFor
  • withdrawEarnings

The fee, and where it goes

Every settlement pays a protocol fee out of the provider's side. The payer's balance falls by exactly the amount the agent signed; the provider earns that amount less the fee. The fee is amount * feeBpsFor(provider) / 10000, where feeBpsFor is the vault's fee less the discount the provider's $PONCHO stake earns.

On a 1.00 USDG note at the launch fee of 2%, the payer pays 1.00 USDG, the provider earns 0.98 USDG and the protocol keeps 0.02 USDG.

The request board takes its own fee, on the same terms, out of a bounty when it is awarded. Both fees go to the fee sink, and the fee sink is PonchoStaking: they are paid to $PONCHO stakers, in USDG. The owner can point the sink at another address; the band below reads where it points right now.

  1. A note settles

    The fee is written to feesAccrued in the vault. Nothing moves yet.

  2. Anyone sweeps

    sweepFees() sends what has accrued to the fee sink. Anyone may call it, and no pause stops it.

  3. Staking takes it in

    The sink is PonchoStaking. Its sync() spreads the new USDG over every stake, by size.

  4. Stakers claim

    claim() pays a staker its share in USDG, on the $PONCHO page.

Fee now
2% at launch
the vault's feeBps
Fees taken, lifetime
at launch
vault totalFees
Request board fee
2% at launch
out of an awarded bounty
Fee sink
PonchoStaking at launch
where sweepFees sends it

The refund window

For seven days after a note settles, the provider it paid can give it back with refund(noteHash). The payer's balance gets the full amount back; the provider's earnings give up the net and the protocol gives up its fee. Only the provider can do this. A payer cannot claw a note back, and nobody else can refund on the provider's behalf.

After the window closes, a settled note is final. Refunds never pause.

Refund window
7 days at launch
Notes given back
at launch
USDG given back
at launch

Caps and bounds

Every limit below is a constant or a check in the contract code. Before launch the values are the ones in the source; once the contracts are live each one is read back from the chain.

BoundValueEnforced by
What an agent key may spendthe payer's own cap per epochPonchoVault.grant
Length of a key's epoch1 hour to 30 daysMIN_EPOCH, MAX_EPOCH
Notes in one settlement batch128MAX_SETTLE_BATCH
Highest protocol fee5%MAX_FEE_BPS, vault and board
Highest staking discount50% off the feeMAX_DISCOUNT_BPS
Highest listing fee0.01 ETHMAX_LISTING_FEE_WEI
Routes on one service64MAX_ROUTES_PER_SERVICE
Smallest bounty1 USDGMIN_BOUNTY
A request's deadline1 day to 365 days outMIN_DURATION, MAX_DURATION
Proposals and backers on one request64 and 128MAX_PROPOSALS, MAX_BACKERS

What the owner can change, and what it cannot

Each contract has one owner, the Poncho treasury. Ownership moves only in two steps, the new owner accepting it, and it cannot be renounced.

The owner can

  • Set the vault's protocol fee and the request board's fee, each at most 5%.
  • Point the fee sink and the tier source at other contracts. The sink can never be empty, and no tier source can raise a provider's fee above the vault's fee.
  • Pause new deposits, grants and settlements on the vault, new stakes on staking, and new posts, top ups and proposals on the board.
  • Flag a service so this site hides it. The chain keeps the service, and it can still be paid.
  • Set a listing fee of at most 0.01 ETH, and the treasury it goes to.
  • Set $PONCHO as the stake token, once, and set the four fee tiers, each discount at most 50%.
  • Hand ownership to another address, which has to accept it.

The owner cannot

  • Move, freeze or spend anyone's balance, earnings, stake or bounty. No function does that.
  • Stop you leaving. Withdrawals, revokes, refunds, earnings withdrawals, unstaking, claims, awards, reclaims and sweeps never pause.
  • Sign a note, settle one, or change a receipt once a note has settled.
  • Raise a fee above 5% or a discount above 50%. Those ceilings are constants in the code.
  • Change the stake token once it is set.
  • Replace the code. There is no proxy and no upgrade function.
  • Renounce ownership and leave the contracts without an owner.

Honest limits

What Poncho does not protect you from. Read these before you fund a balance or sell a route.

  1. A settled note is final.

    There is no dispute process. Once a note settles, only the provider it paid can give it back, and only inside the refund window. If a provider takes a note and serves nothing, the chain cannot tell.

  2. A payer can withdraw between signing and settlement.

    A signed note is a promise, not an escrow. When the provider settles, the balance has to still be there: if it is not, settle reverts and trySettleMany skips the note, and the provider is not paid. Providers settle often and check the balance before they serve.

  3. The registry is permissionless, so a listing is not an endorsement.

    Anyone can list any endpoint under any name. Nobody reviews a service before it appears, and a flag only hides it on this site.

  4. The listed price is not enforced on chain.

    The vault settles the amount the agent signed, whatever the registry says the route costs. Checking a quote before signing it is the agent's job, and the only check there is.

  5. A cap is per epoch, not per call.

    An agent key can spend its whole cap for the epoch in a single note. Set the cap to what you are willing to lose to that key in one epoch.

  6. A pause stops settlement too.

    While the vault is paused, banked notes cannot settle, and a note whose deadline passes during a pause can never settle afterwards.

  7. USDG has an issuer.

    USDG is issued by Paxos, which can pause transfers or freeze an address. The vault cannot move USDG the issuer has frozen.

  8. The contracts are not audited.

    They are covered by their own test suite and their source is verified on Sourcify when they deploy. Read it before you put in more than you can afford to lose.

Check it yourself

Nothing on this page is stored off chain. Every figure above is a view on one of the four contracts, and these are the same reads in the form a program takes.

Connect a wallet

Poncho never holds your keys. Connecting shares your address only.