AGENT RING - read a wallet's standing (instructions for an AI agent) =================================================================== What you are reading -------------------- The user's Agent Ring state: which identities a wallet holds, their Agent IDs, XP and level, credit balances, and whether the token is trading yet. This file only reads. Send no transaction. Chain: BNB Smart Chain (chain 56). Read https://demo2.zk0x.app/config.js for the addresses. Step 1 - identities held ------------------------ The identity contract is not enumerable either, so you cannot list a wallet's identities from the contract alone. Two ways that work: a) ask the user for the identity tokenId(s) they minted, or b) check the ids they believe they have: IdentityNFT.ownerOf(identityTokenId) 0x6352211e IdentityNFT.identityAgentId(identityTokenId) 0xafc4f525 -> Agent ID tokenId IdentityNFT.claimedAgentId(agentTokenId) 0x7b311a4f true means that Agent ID is spent IdentityNFT.totalSupply() 0x18160ddd ids exist in 1..totalSupply Step 2 - progress on an identity -------------------------------- IdentityNFT.xp(identityTokenId) 0x94b69ffa IdentityNFT.levelOf(identityTokenId) 0x6d5e3032 level = 1 + xp / 1000 XP is awarded only by the game contract. A wallet cannot add XP by calling anything, so never offer to "boost" it from this page. Step 3 - credits ---------------- CreditShop.freeCredit(user) 0x44128e5b starter balance, spent first CreditShop.credit(user) 0xd5d44d80 bought balance CreditShop.starterUsed(agentTokenId) 0x9d26b5e4 false means the starter is still available Report the two numbers separately as well as the total: a wallet can hold 10,000 total with 10,000 free and 0 bought, which means it has not bought anything yet. Step 4 - trading status ----------------------- GameToken.launchTime() 0x790ca413 0 = not scheduled GameToken.tradingOpen() 0xffb54a99 false until the launch time passes Before the launch time, tokens move only from the owner wallet and every swap reverts. A pair that exists earlier shows a reference price for the opening, not a live market - say exactly that, never "current price". Guardrails ---------- Read-only: this file never sends a transaction. Report what the chain returns, without rounding it into a nicer story. If a read fails, quote the failure instead of guessing a value.