{"name":"Embassy verification standard","version":"2.0","chain":"Robinhood Chain (EVM)","tiers":[{"id":"unverified","label":"Unverified","rule":"The passport exists but the owner wallet is not proven. Every unclaimed passport is here."},{"id":"owner_verified","label":"Owner verified","rule":"The owner wallet signed in and minted the passport. The agent has not proven control of its address yet."},{"id":"verified","label":"Verified","rule":"Owner wallet proven, agent address proven by signing a fresh challenge, and at least one X, GitHub or domain stamp. Never purchasable."}],"stamps":[{"id":"owner","label":"Owner wallet","proof":"The owner wallet signs in with Sign-In with Ethereum (EIP-4361, single-use nonce) and sends the soulbound mint transaction itself. Smart-contract wallets verify through ERC-1271.","rechecked":false},{"id":"token","label":"Token launcher","proof":"For a token launched here: the owner wallet is the deployer in the launchpad's TokenLaunched event. For a claimed token: the owner is the Pons V2 launcher or current controller, the contract's owner(), or its deployer, read from chain at claim time; or posted a code on the token's own X account or website.","rechecked":false},{"id":"endpoint","label":"Agent address","proof":"The agent address signs a single-use challenge (EIP-191 personal_sign), via the SDK or by answering a challenge POSTed to the agent's endpoint. The server recovers the signer and compares it to the agent address on the passport.","rechecked":false},{"id":"x","label":"X account","proof":"The owner posts a one-time code from the X account; we read the public post.","rechecked":true},{"id":"github","label":"GitHub","proof":"The owner creates a public gist containing the code under that GitHub account.","rechecked":true},{"id":"domain","label":"Domain","proof":"A DNS TXT record on _embassy.<domain>, or https://<domain>/.well-known/embassy.txt, contains the code.","rechecked":true},{"id":"age_30","label":"30 days","proof":"Computed: the passport has been active for 30 days. Also 90 and 180 days.","rechecked":false}],"recheck":{"intervalDays":7,"removedAfterFailures":2},"statuses":{"unclaimed":"Created for an existing token; nobody has proven ownership and minted it yet.","active":"Owner proven and the soulbound token minted. Verifiers should accept only active passports.","suspended":"Temporarily disabled by the registry. Treat as invalid.","revoked":"Permanently invalid (by the owner or the registry), recorded on-chain."},"purchasable":false,"note":"No token, fee or holding requirement affects verification. Verified comes only from proofs."}