The claim
Check it yourself. Every read and simulation on this page runs against Monad, not against our server.
A possessor can never move, approve or list the Chog they control, and their control ends in the block the lease expires or the Chog changes hands.
The three checks
Move it as a possessor
Not runtransferFrom(holder, you, id) on Chog Genesis
- Expected
- Reverts
- Got
- —
Haunt after the lease
Not runhaunt(id, target, mark) from the last possessor
- Expected
- Reverted: LeaseExpired
- Got
- —
Claim as a non-holder
Not runclaim(id) from a wallet that doesn't hold it
- Expected
- Reverted: NotOwner
- Got
- —
Tests that prove it
- Proof.t.soltest_NoCallPathToApproveOrTransferThe contract's bytecode holds no approve or transfer selector, only ownerOf
- Proof.t.soltest_PossessorTransferFromRevertsA possessor's transferFrom on Chog Genesis reverts
- Proof.t.soltest_NoApprovalAfterAnyFlowisApprovedForAll(holder, Dybbo) stays false after every flow
- Haunt.t.soltest_HauntAtUntilRevertsLeaseExpiredA haunt in the second the lease ends reverts with LeaseExpired
- Haunt.t.soltest_SaleMidLeaseRevertsOwnerChangedAfter a transfer mid-lease, the next haunt reverts with OwnerChanged
- Claim.t.soltest_ClaimByNonOwnerRevertsNeither the possessor nor a stranger can claim the escrow
- Claim.t.soltest_EscrowFollowsTokenAfterSaleUnclaimed escrow goes to the buyer
- Lease.t.soltest_ContractHolderClosedByDefaultA Chog held by a contract starts closed and opens after setTerms
- Fork.t.soltest_ForkAgainstMainnetChogThe whole story against the real Chog Genesis on a Monad fork
The contract
Verified- Dybbo
- 0x908D…72e9
- Chog Genesis
- 0xc96d…3763
- Admin
- None
- Pause
- None
- Upgrade
- None
- Protocol fee
- 0%
Every call to Chog Genesis
- ownerOf(tokenId)read
- owner.code.lengthread
Nothing else. No approve, no transfer.
Approvals
- Holder
- —
- isApprovedForAll(holder, Dybbo)
- —
- getApproved(id)
- —
Dybbo never asks for an approval. If a page that looks like Dybbo asks you to approve anything, it is not Dybbo.