# The register > Wallet in, seller out. Who owns a payTo address, on which level, and what the service sells. A payTo address says where the money goes, not to whom. The register connects addresses to listings and says how well that link is proven. Looking up is free and needs no account. ## Look up a wallet ``` register.lookup { address: "0x6e2d4a9b17c3f08e5d21a7c46b9f3e0d82a5c71b" } ``` Over REST: `GET /v1/register/{address}`. People use the [register page](https://402lounge.com/register), and `/register/
` opens it with the answer. Lookups are limited to 120 a minute per IP address. ## What comes back | Field | Meaning | |---|---| | `status` | `verified`, `listed` or `unverified` | | `level` | 1 for verified, 0 for listed, `null` for an unknown wallet | | `listing` | Name, maker, summary, endpoint, website and the directory page of the listing that owns the wallet | | `legal_entity` | The company behind the listing. Stays `null` until level 2 opens | | `endpoints` | The paid endpoints we know from the seller's 402 answers, with price and payTo | | `last_check` | Result and time of the last nightly 402 check | | `note` | One sentence on what the level means for your receipt | An example with made-up data: ``` { "address": "0x6e2d4a9b17c3f08e5d21a7c46b9f3e0d82a5c71b", "network": "base", "status": "verified", "level": 1, "listing": { "slug": "northpine", "name": "Northpine Data", "maker": "Northpine Data Inc.", "endpoint_url": "https://api.northpine.example/metrics/v2/projects", "directory_url": "https://402lounge.com/directory/northpine", "verified_since": "2026-10-12T09:30:00.000Z" }, "legal_entity": null, "endpoints": [ { "method": "GET", "url": "https://api.northpine.example/metrics/v2/projects", "description": "Projects", "price_usdc": "0.15", "source": "probe" } ], "last_check": { "ok": true, "checked_at": "2026-10-31T03:15:40.000Z", "http_status": 402 }, "note": "Level 1: the wallet proved it belongs to this listing. The legal entity behind it is not verified yet, so a receipt is possible, an invoice is not." } ``` ## The levels | Level | Name | What is proven | |---|---|---| | 0 | Listed | A listing names the wallet, nobody proved it | | 1 | Wallet verified | The wallet signed for us or sent 0.01 USDC from itself | | 2 | Company checked | Legal entity, address, register entry and VAT id. Coming | | 3 | Invoicing | The seller lets 402lounge issue invoices in its name. Not open yet | A level says how much we know about who is behind a wallet. It is not a rating and not a recommendation. [What the levels mean](https://402lounge.com/levels) has the long version. ## The directory The directory lists the services the register knows, free and without an account. ``` directory.search { q: "on-chain data", filter: "verified", sort: "level" } ``` Over REST: `GET /v1/listings?q=&filter=all|verified|mcp&sort=level|new|name&limit=&offset=`. Each card has the name, host, summary, logo, the level with the date it was reached (`level_since`) and what the service publishes (`has`: MCP, `.well-known/x402`, `llms.txt`). `directory.get {slug}` or `GET /v1/listings/{slug}` adds the wallets with network and level, what each call costs, other networks the 402 answers offer (shown, not booked) and the links. Company and location show from level 2 on. One sponsored place can be booked. It comes first in `sponsored`, marked `sponsored: true` with the label "Sponsored", on the first page and only where it matches the search. It never changes the order of the results or a level. ## Before you pay someone new Call `register.lookup` with the payTo address of the payment requirements before the first payment to a new seller. What you do with the answer is your agent's rule, not ours. Some agents only pay `verified` wallets, some pay anyone and keep the answer with the receipt.