peard
Programs

peard

Denomination and settlement. The registry of pairables, the reward ledger, and the fulfilment valve.


peard owns denomination and settlement and owns nothing of the pool. It holds the registry of pairables, one market per launched token, one position per holder, and the burn-to-ship valve. There is no AMM in it and no oracle in any trading path.

Every name, account, argument and error on this page is generated from target/idl/peard.json, the IDL Anchor emits at build time. It is what the deployed bytes actually accept, not a recollection of it.

Program id

Address7uwT6YPFpAVESKHpA6fBeTh7mQNdsYXr8jSp1nkwpHqR
Deployedmainnet-beta and devnet, same address on both. Mainnet since 2026-08-26: Global initialised against Circle USDC, 121 pairables registered, every one of them priced at zero until a relayer runs
Instructions26
Account types5
Events14
Error codes40

Instructions

Global and governance

The registry

Markets

Fees and the vault

Positions and claims

Fulfilment

Accounts

The state this program owns. Field names are as they appear on chain.

Types

Events

EventFields
BackingSetmarket, backing, max_age_secs
BackingSyncedmarket, value_usd, as_of
BreakerTrippedpairable, observed, twap, dev_bps
Claimedmarket, owner, units, usdc, price, coverage
FeesDepositedmarket, usdc, protocol_cut, units, price
FulfillmentRequestedmarket, owner, seq, units, quoted_usd, commitment
FulfillmentSettledmarket, owner, seq, shipped, units, quoted_usd
InboxConvertedmarket, converter, usdc, asset, price, bounty_bps
MarketCreatedmarket, pairable, token_mint, quote_mint, quote_mode, creator
PairableRegisteredpairable, id, unit_label, resolver, grade, asset_mint
PoolSetmarket, pool, kind
PositionSyncedmarket, owner, earning_balance, units_owed
PricePushedpairable, raw, twap, sources, ts
RolledOvermarket, from, to, final_price, new_price, factor, units_outstanding

Errors

CodeNameMessage
6000Unauthorizedunauthorized
6001Frozenpairable is frozen
6002PushTooSoonoracle push too soon after previous push
6003BadPriceprice observation outside sane bounds
6004NoPriceno price available yet
6005PriceStaleprice is stale
6006ZeroAmountamount must be greater than zero
6007BadIdentifieridentifier is empty or too long
6008BadParamparameter outside allowed range
6009MathOverflowmath overflow
6010NothingToClaimnothing accrued to claim
6011NothingToSweepvault holds nothing unaccounted to sweep
6012ClaimTooLargeclaim exceeds units owed
6013InsufficientVaultreward vault cannot cover this payout
6014WrongTokenAccounttoken account does not match the position owner or market mint
6015WrongQuoteMintmarket quote mint does not match the vault
6016FulfillmentDisabledfulfillment is not enabled for this pairable
6017RequestTooLargerequest exceeds the per-request ceiling
6018BudgetExhaustedepoch fulfillment budget exhausted
6019NotRequestedfulfillment request is not in the requested state
6020GradeUnsupportedsoft-grade pairables are not supported yet
6021GradeAssetMismatchhard grade requires an asset mint, and an asset mint requires hard grade
6022WrongAssetMintnative quote mode requires the pairable's own asset mint
6023NativeNeedsHardGradenative quote mode requires a hard-grade pairable
6024WrongUsdMintdenominated markets must quote in the configured dollar mint
6025FulfillmentNeedsDenominatedfulfillment is only available on denominated markets
6026RequestTooSmallrequest is below the minimum worth shipping
6027RequestNotExpiredrequest has not reached its expiry yet
6028PairableExpiredpairable has expired and no longer takes pushes
6029PairableNotExpiredpairable has not expired yet
6030TerminalIsSettleterminal policy is settle, so there is nothing to roll onto
6031SuccessorMismatchroll terminal requires a successor, and a successor requires roll
6032WrongSuccessorsuccessor pairable does not match the one registered
6033SuccessorNotLivesuccessor is not live enough to roll onto
6034RollFactorInsaneroll factor is outside the sane band; needs governance
6035WrongBackingbacking account is not the one this market names, or is not a backing account
6036ConvertNeedsNativeinbox conversion only applies to native markets
6037ConvertDustconversion is too small to price without rounding to nothing
6038InboxTooSmallinbox does not hold that much
6039ConvertShortfallthe vault received less asset than the offer demands