No IPFS. No server. No re-upload that quietly changes later. Every avatar is an SVG the contract
assembles on demand, and every piece of metadata is built inside
tokenURI(). Once the contract is deployed and the provenance hash is
locked, the art cannot move.
node buy.js --quote then PRIVATE_KEY=0x… node buy.js --qty 1
These 12 are the real #1–12, computed in your browser from keccak256(PROVENANCE, tokenId) — not mock-ups. What you mint is the one you see. The frame around the avatar is drawn by the contract too: the higher the tier, the more of it appears.
The three ways NFT projects die most often: the art sits on IPFS and the pinning lapses, the metadata server goes down, the royalties never arrive. None of those three exist in this contract.
keccak256(PROVENANCE, tokenId) is the only input to the traits; svgOf() assembles them into an SVG and base64-embeds it straight into tokenURI(). No external dependency — while the chain runs, the art exists.
Listing, cancelling and filling all happen in the same contract. A 3% fee goes to the treasury and the seller receives 97% instantly. There is no third-party marketplace to approve, so there is no "marketplace vanished, royalties went to zero".
PRICE_START and PRICE_STEP are constant and compiled in. There is no setPrice to call, for us either. The owner can flip the mint switch and change where fees go — never the price, never the supply.
The price depends only on tokenId and lives in contract constants: PRICE_START + tier × PRICE_STEP, where tier = (tokenId − 201) / 50 for paid tokens (1–200 are free). Sell through a tier and the next one starts — no discretion, no last-minute price change (the function to change it does not exist).
| Tier | tokenId range | Unit price | Tier size | Frame | Status |
|---|---|---|---|---|---|
| Loading… | |||||
A full sellout is 3.5964 BNB of mint revenue (74 × 0.0486). Prices are denominated in BNB, so the dollar figure drifts with the BNB price. The contract promises no buyback, no dividends and no floor.
Every trait comes from keccak256(PROVENANCE, tokenId), evenly distributed. With 666 tokens and 768,000 possible combinations, no two should collide — and if two do, that is the hash, not a bug.
| Trait | Values | Count |
|---|---|---|
| Head | Block / Rounded / Wide | 3 |
| Eyes | Single / Double / Void / Visor | 4 |
| Mouth | Line / Dot / Smile / Silent | 4 |
| Antenna | None / Stalk / Twin / Ears | 4 |
| Palette | Crimson · Amber · Teal · Azure · Lime · Rose · Violet · Gold · Mint · Coral | 10 |
| Accent | One of the same 10 tones, laid over the palette | 10 |
| Glow | One of the same 10 tones, for the lit details | 10 |
| Background | Four dark grounds | 4 |
No randomness oracle, no reveal phase, no blind boxes. PROVENANCE is passed into the constructor at deployment, so anyone can recompute what #617 looks like as soon as the contract exists.
That also means the team cannot reshuffle rarity after launch to keep the rare ones for itself.
No. Version 4 of this contract has no eligibility check at all. Connect any wallet on BNB Chain, call mint(), pay the current price. That is the whole flow. The previous version required a .ai Agent ID; that gate is gone and there is no way for anyone to re-add it.
Verify it yourself on BscScan: read hasAgentId(anyAddress) on 0x908e…3925 and it returns true for every address, including the zero address. The constant is compiled in.
Three things. One: the first 200 are free again — but soulbound, so they cannot be resold and therefore cannot be farmed. Two: a referrer address can be passed to mint(), and that address receives 20% of the price. Three: the paid curve now covers 466 tokens in 10 steps of 50, from 0.002 to 0.0065 BNB. The art, the metadata, the 666 supply and the 3% market fee are unchanged.
An earlier version gave its first tier away for free and it was gone overnight: 896 tokens to 87 wallets, almost all of them professional airdrop farms running scripts. The tokens were transferable, so the farms could sell them. That is the detail that mattered.
This time the free tier is back — 200 Founder tokens, one per wallet — but a Founder token cannot be transferred to another address, ever. There is nothing to farm and nothing to resell, so the free tier reaches people who actually want the avatar.
666 is small enough that the whole curve fits in thirteen full steps of 50 plus a 16-token tail (666 = 50 × 13 + 16), and small enough that "sold out" is a reachable state rather than a year-long maybe.
No. PRICE_START and PRICE_STEP are constant and compiled into the bytecode; there is no setPrice to call. The owner can flip the mint switch (setMintOpen) and change the fee recipient (setFeeRecipient), but not the price or the supply.
None, and there are no plans. Split the entire 1.904 BNB paid-tier revenue across 666 holders and it is about 0.0054 BNB each, while the contract inherits a reentrancy surface and extra gas. That is self-harm dressed up as generosity.
What this Pass has is that it is fully on-chain, hard-capped, and held by people who had to prove they run an agent. That is the whole pitch. If you are looking for yield, this is not it.
The tier. Tokens in tiers 1–3 have no frame, 4–6 get lit corners, 7–8 add the top and bottom edges, and tier 9 gets the full border. It is the one place where "you paid more" is visible in the picture itself.
A bytes32 written into the constructor at deployment. Every trait is hashed out of it together with the tokenId. It is not a random seed — it is the receipt that says the rules were nailed down in advance. The same PROVENANCE reproduces exactly the same images on any machine, and this contract reuses the hash from the first version, so the same tokenId draws the same face it always did.
Only fills on the built-in market are charged 3% (MARKET_FEE_BPS = 300); the seller takes 97% immediately. Royalty is 5% via ERC2981 for external marketplaces that honour it. Plain wallet-to-wallet transfers, including sending one to a friend, cost nothing.