Errors index
Every custom error the protocol can revert with, its contract, and the condition that raises it.
AlreadyFinalized · BuybackBurnersetup was called after the one-shot gate closed.
AlreadyFinalized · PatronsetWiring was called after the one-shot setup gate already closed.
AlreadyFinalized · PermanentCollection
An onlySetup-gated call (i.e. setWiring) landed after the setup gate was already closed.
AlreadyFinalized · VaultBurnPoolsetup was called after it already ran once.
AlreadyFrozen · RendererRegistrysetImplementation or freeze was called after freeze().
AlreadyInitialized · PatronsetWiring found permanentCollection already set.
AlreadyInitialized · PermanentCollectionsetWiring found patron already set.
AlreadyKickedOff · PunkVaultTitleAuctionkickoff() was called after the auction clock already started.
AlreadyLocked · PunkVaultreceivePunk was called for a Punk already registered as vaulted.
AlreadyRecorded · PermanentCollectionrecordAcquisition was called for a Punk whose custody is InReturnAuction or Vaulted.
AlreadySettled · PunkVaultTitleAuctionsettle() was called after a winning settle.
AlreadySettled · ReturnAuctionModule
The sale for this punkId has already been settled.
AlreadySetup · TokenAdminPokersetup was called a second time.
AlreadyWired · ReturnAuctionModule
The one-shot wiring setter (setLiveBidAdapter or setVaultBurnPool) was already called.
AuctionEnded · PunkVaultTitleAuctionbid() was called at or after endsAt.
AuctionLive · PunkVaultTitleAuctionsettle() was called before endsAt.
AuctionNotLive · PunkVaultTitleAuctionbid() or settle() was called before kickoff(), or bid() after a winning settle.
AuthorizedExtensionAlreadyLocked · PCSwapContextsetAuthorizedExtension or lockAuthorizedExtension was called after the binding was already locked.
BadCategoryId · PermanentCollection
A trait id argument was 111 or higher.
BidBelowMinimum · PatronacceptListing was called while the accounted live bid is below MIN_BID_FOR_LISTING (0.5 ETH).
BidBelowMinimumIncrease · PunkVaultTitleAuction
The bid beat the current high but by less than 5%.
BidBelowMinIncrement · ReturnAuctionModule
The bid doesn't exceed the current high bid by the required 1% increment.
BidBelowReserve · ReturnAuctionModule
The bid is below the snapshotted reserve.
BidNotHigherThanCurrent · PunkVaultTitleAuction
The bid was less than or equal to the current high.
BidNotHigherThanCurrent · ReturnAuctionModule
The first bid on a sale was zero.
CustodyAlreadySet · PermanentCollectionmarkCustody was called for a Punk that is not currently InReturnAuction.
DatasetHashMismatch · PermanentCollection
Constructor-only: the supplied PunksData contract's datasetHash did not equal EXPECTED_DATASET_HASH.
EmptyFragment · TraitIconCachecacheTrait derived an empty fragment for the trait.
EmptySvg · PunkSvgFragmentCachecachePunk derived an empty fragment, meaning PunksData returned an all-transparent 24x24 tile for the id.
ExcessInputSpent · BuybackBurner
The V4 swap reported more ETH consumed than the exact-input amount requested.
FinderPaymentFailed · Patron
The finder-fee send to the acceptListing caller failed, reverting the whole call.
ForwardFailed · LiveBidAdapter
The ETH forward to Patron failed.
ForwardFailed · ProtocolFeePhaseAdapter
The controller rejected the ETH transfer at the end of sweep.
InsufficientOutput · BuybackBurner
The swap returned fewer tokens than the caller's minOut.
InSwap · BuybackBurner
A decorated function was entered during an authorized extension's swap window (PCSwapContext.inSwap).
InSwap · LiveBidAdapter
The call arrived during an authorized extension's swap window (PCSwapContext.inSwap is set).
InSwap · Patron
A guarded entry point was called during a swap while a bound extension has the PCSwapContext.inSwap flag raised.
InSwap · ProtocolFeePhaseAdapter
A notInSwap-decorated function was entered while PCSwapContext reports a swap in progress.
InSwap · PunkVaultTitleAuction
A decorated entry point was called during an official-pool swap while a swap-context extension is bound.
InSwap · ReturnAuctionModule
A decorated entry point was called during an official-pool swap while a bound extension had the swap-context flag raised.
InSwap · VaultBurnPool
A notInSwap-decorated function was entered while PCSwapContext reports a swap in progress.
InvalidCustodyTransition · PermanentCollectionmarkCustody received an outcome other than ReturnedToMarket or Vaulted.
InvalidPunkId · PatronpunkId is 10000 or higher.
InvalidPunkId · PunkSvgFragmentCachecachePunk or buildFragment was called with punkId >= 10000.
InvalidRecipient · PunkVaultmintProofs was called with recipient == address(0).
InvalidTargetTrait · PatrontargetTraitId is out of range (>= 111) or the Punk doesn't carry that trait.
InvalidTraitId · PunkVaultmintProofs was called with traitId >= 111.
InvalidTraitId · TraitIconCache
A function was called with traitId >= 111.
ListingAboveExpected · Patron
The acceptBid listed price exceeds the caller's expectedListingWei cap: the seller raised the price after the caller's read.
ListingExceedsBid · Patron
The required outflow exceeds the accounted live bid.
Locked · ProtocolAdmin
A renewal or rotation (newAdmin != address(0)) was attempted after the timer expired or after a burn.
MaskMismatch · PermanentCollection
The mask supplied to recordAcquisition did not match punksData.traitMaskOf(punkId).
NoEligibleTarget · PermanentCollection
The Punk carries no trait that is both uncollected and not already pending in another return auction, so there is nothing an acquisition could target.
NoSurplus · PatronskimSurplus found no unaccounted ETH: the raw balance doesn't exceed accountedLiveBidWei.
NotAContract · RendererRegistry
The setImplementation candidate has no contract code (an EOA, a typo, or a destroyed contract).
NotAdapter · Patronreceive() was called by an address other than liveBidAdapter.
NotAdmin · BuybackBurner
A parameter setter was called by an address that fails ProtocolAdmin.checkAdmin, or after the 1-year admin lock.
NotAdmin · LiveBidAdapter
The caller failed the setter's admin gate: checkAdmin for the two throttle setters (admin plus unexpired timer), or the raw admin() for setActivationThreshold.
NotAdmin · Patron
An allowlist setter was called by an address other than the current ProtocolAdmin.admin().
NotAdmin · ProtocolAdmintransferAdmin was called by an address other than the current admin.
NotAdmin · RendererRegistry
The caller of setImplementation or freeze isn't the active protocol admin, either because it's the wrong address or because the admin timer has expired.
NotAuthorized · TokenAdminPoker
A rate setter (setHookMaxReferralBps / setTokenTaxBps) was called by an address that is neither owner nor the current ProtocolAdmin.admin().
NotAuthorizedExtension · PCSwapContextenterSwap / exitSwap was called by anything other than the currently authorized extension, or while no extension is authorized (the launch state).
NotCached · PunkSvgFragmentCachepointerOf, fragmentOf, or svgOf was called for a Punk that has never been baked.
NotCached · TraitIconCachepointerOf, fragmentOf, or svgOf was called for a trait that has never been baked.
NotCanonicalTarget · Patron
The supplied targetTraitId is not the protocol-derived canonical target (the rarest uncollected, non-pending trait the Punk carries).
NotDeployer · BuybackBurnersetup was called by an address other than the deployer captured at construction.
NotDeployer · PatronsetWiring was called by an address other than the deployer recorded at construction.
NotDeployer · PermanentCollection
An onlySetup-gated call came from an address other than the constructor-time deployer.
NotDeployer · PunkVaultsetTitleAuction or setRendererRegistry was called by an address other than the deployer EOA.
NotDeployer · ReturnAuctionModule
A wiring setter was called by an address other than the deploying address.
NotDeployer · VaultBurnPoolsetup was called by an address other than the deployer captured at construction.
NothingToBurn · BuybackBurnerexecuteStep was called with remainingEth == 0.
NothingToClaim · ReferralPayoutclaim/claimFor was called for a referrer with a zero balance.
NothingToWithdraw · PunkVaultTitleAuctionwithdrawRefund() or withdrawProceeds found a zero balance for the target address.
NothingToWithdraw · ReturnAuctionModulewithdrawRefund was called with a zero pendingRefund balance.
NotModule · ReturnAuctionEscrowlistForSettlement or sweepProceeds was called by an address other than MODULE.
NotOwnedByVault · PunkVaultreceivePunk ran before the Punk was actually transferred to the vault on the CryptoPunks market.
NotOwner · PCSwapContext
An owner-only function was called by an address other than owner.
NotOwner · PunkVaultrenounceOwnership was called by an address other than the current owner().
NotOwner · TokenAdminPoker
An owner-only function (setup, bindExtension, lockExtension, transferOwnership) was called by an address other than owner.
NotPatron · PermanentCollectionrecordAcquisition was called by an address other than the wired patron.
NotPatron · ReturnAuctionModulestartSale was called by an address other than Patron.
NotPoolManager · BuybackBurnerunlockCallback was called by any address other than the V4 PoolManager.
NotRecorded · PermanentCollection
The Punk has never been acquired.
NotReturnAuction · LiveBidAdapterpoolReplenish was called by an address other than the bound returnAuctionModule.
NotReturnAuction · PermanentCollectionmarkCustody was called by an address other than the wired returnAuctionModule.
NotReturnAuction · PunkVaultreceivePunk or mintProofs was called by an address other than the immutable returnAuctionModule.
NotReturnAuctionModule · VaultBurnPoolsweep was called by an address other than the immutable returnAuctionModule.
NotSetup · TokenAdminPoker
A forward was attempted before setup pinned its target: the extension and referral-cap setters check setupDone, the tax setter checks the pinned token.
NotTitleAuction · PunkVaultmintToAuction was called by an address other than the wired titleAuction contract.
OutOfBounds · BuybackBurner
A setter received a value outside its hard bounds.
OutOfBounds · LiveBidAdapter
A setter value fell outside its hard bounds.
ProceedsForwardFailed · ReturnAuctionEscrow
The ETH forward to the module at the end of sweepProceeds failed.
ProofAlreadyMinted · PunkVaultmintProofs was called for a trait whose Proof already exists.
ProofNotMinted · PermanentCollectionProofRenderertokenURI was called for an in-range Proof id (0..110) that hasn't been minted.
PunkAlreadyAcquired · Patron
The Punk's custody is InReturnAuction (a return auction is live) or Vaulted (terminal).
PunkNotInCustody · ReturnAuctionModulestartSale was called before the Punk was transferred to this module; the canonical market doesn't show this module as the owner of punkId.
PunkNotListedToHub · PatronacceptBid found no active listing for the Punk that is exclusive to Patron (onlySellTo == patron).
PunkNotPubliclyListed · PatronacceptListing found no active PUBLIC listing for the Punk (onlySellTo must be the zero address).
PunkOutOfRange · PermanentCollectionpunkId was 10,000 or higher.
PunkTransferFailed · Patron
Post-buyPunk ownership check failed: the 2017 market did not record Patron as the Punk's owner.
Reentrant · LiveBidAdapter
A nonReentrant function was re-entered within the same transaction (for example, by the keeper-reward recipient or a contribution referrer calling back in).
Reentrant · Patron
A nonReentrant entry point was re-entered within the same transaction, for example from a seller's receive() during a payout.
Reentrant · PunkVaultTitleAuction
A nonReentrant entry point was re-entered within the same transaction, typically from a refund or payout call.
Reentrant · ReturnAuctionModule
A nonReentrant entry point was re-entered within the same call.
RendererRegistryAlreadySet · PunkVault
Second call to the one-shot setRendererRegistry.
RendererRegistryNotSet · PunkVaulttokenURI or contractURI was called before the registry was wired.
ReserveOverflow · ReturnAuctionModule
The computed reserve exceeds uint128.
RotationTraitNotCacheable · TraitIconCachecacheTrait was called for one of the six per-block-rotating trait ids ({0, 1, 4, 5, 6, 15}).
SaleEnded · ReturnAuctionModule
A bid arrived at or after endsAt.
SaleExists · ReturnAuctionModulestartSale was called while a live, unsettled sale is already open for this punkId.
SaleLive · ReturnAuctionModulesettle was called before endsAt.
SaleMissing · ReturnAuctionModule
The punkId has no sale slot at all (never started).
SellerNotAllowed · Patron
The public listing's seller is not on the allowed-sellers allowlist.
SellerNotYetActive · Patron
The seller is allowlisted but still inside the 24-hour activation delay.
SoleCarrierMustTargetTrait · Patron
The acquisition targets Punk #8348 (the unique carrier of trait bit 23, "7 Attributes") with a target other than bit 23 while that trait is uncollected.
SoleCarrierMustTargetTrait · PermanentCollection
An acquisition of Punk #8348 targeted a trait other than bit 23 while bit 23 is uncollected.
StepTooEarly · BuybackBurnerexecuteStep was called before lastStepBlock + minBlocksBetweenSteps.
SurplusForwardFailed · Patron
The skimSurplus forward to LiveBidAdapter failed.
SweepTooEarly · LiveBidAdapter
A throttled sweep() was called before the cooldown elapsed.
TargetNotCanonical · PermanentCollection
The supplied targetTraitId did not equal canonicalTargetOf(punkId).
TargetTraitAlreadyCollected · Patron
The target trait's bit is already set in collectedMask.
TargetTraitAlreadyCollected · PermanentCollection
The target trait's bit is already set on collectedMask.
TargetTraitAlreadyPending · PermanentCollection
Another in-flight return auction already targets this trait.
TargetTraitNotInMask · PermanentCollection
The target trait bit is not set on the Punk's verified trait mask.
TargetTraitPending · Patron
A return auction is already in flight for the target trait.
ThresholdNotReached · PunkVaultTitleAuctionkickoff() was called with fewer than 22 traits collected.
TitleAlreadyMinted · PunkVault
Second call to mintToAuction.
TitleAuctionAlreadySet · PunkVault
Second call to the one-shot setTitleAuction.
TitleNotMinted · PunkVaulttokenURI(111) was queried before the Title exists.
TraitNotCollected · PermanentCollectionMosaicRenderercacheTrait was called for a trait with no first-vaulted Punk yet.
TransferFailed · PunkVaultTitleAuction
An outbound ETH send in withdrawRefund() or withdrawProceeds reverted.
TransferFailed · ReferralPayout
The payout send to the referrer reverted or exceeded the 35,000-gas budget.
TransferFailed · ReturnAuctionModule
An ETH send that must succeed failed: a settle-path transfer to a protocol contract, a withdrawRefund send to the caller, or ETH arriving at receive() from any sender other than the escrow.
Unauthorized · ReferralPayoutnotify was called by an address other than the bound hook.
UnexpectedDatasetHash · PunkSvgFragmentCache
Constructor-only: the supplied PunksData address reported a datasetHash() other than EXPECTED_DATASET_HASH.
UnexpectedDatasetHash · TraitIconCache
Constructor-only: the supplied PunksData address reported a datasetHash() other than EXPECTED_DATASET_HASH.
UnexpectedEtherSender · ReturnAuctionEscrowreceive() got ETH from an address other than the Punk market.
UnknownTokenId · PermanentCollectionMosaicRenderertokenURI(uint256) was called with an id of 112 or higher.
UnknownTokenId · PermanentCollectionProofRenderer
The id is outside the Proof range: tokenURI with id > 110 or svg with traitId >= 111.
UnknownTokenId · PunkVaulttokenURI(id) was queried for an unminted Proof id (0..110 with its proofsMintedMask bit unset) or any id at or above 112.
ZeroAddress · Patron
A zero address was supplied where a real one is required: constructor references, setWiring arguments, addAllowedSeller, or an unwired adapter in skimSurplus.
ZeroAddress · PCSwapContext
Raised by the constructor for a zero initial owner and by transferOwnership for a zero new owner.
ZeroAddress · PermanentCollection
A required address argument was zero: any of the four setWiring addresses, or originalSeller in recordAcquisition.
ZeroAddress · PermanentCollectionProofRenderer
Constructor-only: raised if any of the four immutable references (vault, PunksData, trait-icon cache, Punk SVG cache) is the zero address.
ZeroAddress · ProtocolFeePhaseAdapter
Constructor-only: raised when the adapter is deployed with a zero controller or escrow address.
ZeroAddress · PunkVault
A constructor argument or one-shot wiring target (setTitleAuction, setRendererRegistry) was address(0).
ZeroAddress · PunkVaultTitleAuction
Constructor guard: collection, vault, and payoutRecipient must all be non-zero at deploy time.
ZeroAddress · ReferralPayout
Constructor-only: raised when the contract is deployed with a zero hook address.
ZeroAddress · RendererRegistry
The zero address was passed where a contract is required: either constructor argument, or the newImpl argument of setImplementation.
ZeroAddress · ReturnAuctionModule
A constructor argument or wiring setter argument was address(0).
ZeroAddress · TokenAdminPoker
Raised by the constructor for a zero owner or admin-contract address, by setup for a zero token or hook, and by transferOwnership for a zero new owner.
ZeroAddress · VaultBurnPool
Raised by the constructor for a zero module or burner address, and by setup for a zero token address.
ZeroBid · PunkVaultTitleAuctionbid() was called with zero msg.value.
ZeroListingPrice · Patron
The listing's price is zero.
ZeroValue · LiveBidAdaptercontribute() was called with msg.value == 0.