Legacy
Historical referenceLegacy passes
Historical NFT contracts and their retained rights.
Historical membership
Legacy NFT
Bound to its wallet
Legacy
Historical referenceHistorical NFT contracts and their retained rights.
Historical membership
Legacy NFT
Bound to its wallet
Retained rights
Original weight + grants
Legacy claims
Existing entitlements
This page describes the historical NFT product. Minting has been replaced by Topups. New topups issue no NFT, create no reward weight, and grant non-expiring credit. The rules below apply only to historical contracts and grants.
The historical pass is a soulbound ERC-721 membership for one wallet with a .ai Agent ID. Testnet NFT minting was paused on 5 November 2026. The app's former /mint route now redirects to /topup; the rules below describe the retired mint implementation.
| Pass | Total supply | Price per mint | AI credit per mint | Added reward weight |
|---|---|---|---|---|
| AgentPass | 5,000 | $5 | $5 | 10,000 (1x) |
The membership implementation allowed repeated mints by the same eligible wallet. Each mint added 1x weight to that wallet's total. Pre-upgrade passes retain their original 1x or 2.5x weight and credit grants. Current topups do not change any of these weights.
If you lose access to the wallet, the pass and its rewards are lost. There is no recovery.
Minting calls handleOf(msg.sender) on the Agent ID registry. An empty handle reverts with NoAgentId.
The handle is stored at mint time. If the registry handle changes later, the pass metadata keeps the original handle.
On testnet, the registry is a mock contract. The team sets handles manually.
The contract reads Chainlink BNB/USD, adds a 1% buffer, and compares the result with maxPayment.
maxPayment is the most BNB you are willing to spend.msg.value must be at least the required BNB.maxPayment must be at least the price.msg.value must be zero.transferFrom.USDT is not a fee-on-transfer token on BSC.
The contract enforces:
totalMinted <= 5,000The last mint emits SoldOutReached.
Locked.RewardDistributor.onWeightChanged with the old aggregate weight and old weight plus 10,000. Already earned rewards are preserved.PassMinted.If any step reverts, the whole mint reverts.
tokenURI is generated on-chain by PassRenderer.
The metadata includes:
The renderer sanitizes the handle to lowercase letters, digits, dots, and hyphens. Uppercase letters are dropped. The Agent ID registry is expected to return lowercase handles.
AgentPassSingle upgrades the existing proxy. New mint calldata is mint(address paymentToken, uint256 maxPayment). The old three-argument mint reverts with LegacyMintDisabled.
tokensOfOwner returns every owned token, including the pre-upgrade NFT. tokenOfOwner returns the latest token. balanceOf returns the count, and weightOfAccount returns aggregate weight. The existing PassMinted event retains its tier field; new mints emit edition 2.
The testnet pass uses:
The testnet pass is not a real asset. Do not pay real funds for a testnet pass.