peard
Programs

peard_vault

The NFT reserve of real things. Live on devnet, holding one reserve and nothing in it.


peard_vault holds NFTs and nothing else. An NFT here is a deed to a specific batch rather than a registry row for a type, because every variable that decides what a batch is worth lives on the batch: quantity, cost basis, acquisition date, expiry, carry, haircut, appraiser, custodian.

The core values nothing itself. ItemKind is metadata and no instruction branches on it, which is the only way "support every type" stays tractable instead of becoming a growing switch statement inside a deployed program.

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

Program id

Address6ps4NbLGcZGW1WWqrp4PsqMCozHied1QGihDzP1A5zv8
Deployedmainnet-beta and devnet, same address on both, 2026-08-26. Mainnet has no reserves. Devnet has one, and it holds nothing. IDL published on devnet, so an explorer decodes its accounts by name
Instructions9
Account types3
Events8
Error codes14

Instructions

The reserve

Items

Marking

Carry

Accounts

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

Types

Events

EventFields
AppraisalRejecteditem, observed, held, step_bps
Appraiseditem, value_usd, step_bps, carry_owed_usd
CarrySettleditem, paid_usd, still_owed_usd
EpochClosedreserve, epoch, value_usd, items
ItemDepositedreserve, item, seq, kind, nft_mint, quantity, cost_basis_usd, expires_ts
ItemMarkeditem, epoch, was, now_value, carry
ItemRedeemeditem, nft_mint, recipient, value_usd
ItemWrittenOffitem, cost_basis_usd, custodian

Errors

CodeNameMessage
6000Unauthorizedunauthorized
6001BadParamparameter outside allowed range
6002ZeroAmountamount must be greater than zero
6003MathOverflowmath overflow
6004ItemFrozenitem is frozen
6005ItemNotHelditem is no longer held
6006BadAppraisalappraisal outside sane bounds
6007EpochIncompletethe epoch still has unmarked items
6008AlreadyMarkeditem has already been marked this epoch
6009ReserveStalethe reserve has not been marked recently enough to be counted
6010NotAnNftan nft is one indivisible unit and this is not one
6011NothingOwednothing is owed on this item
6012CarryVaultEmptythe carry vault holds nothing to pay with
6013CarryOutstandingcarry is still owed on this item