API Reference

WalletOrigin Lookup API

Query any blockchain address to see whether it has been cryptographically bound to a verified company domain. Supports Ethereum, Solana, Bitcoin, Cosmos, Sui, and Aptos addresses. Perfect for wallets, explorers, exchanges, and compliance tools.

Only checking an address? Use the public checker without an account or API key, then open the domain proof page for DNS records and signatures.

Authentication

Every request needs an API key. Create one in your dashboard. Pass it in the Authorization header as a bearer token, or in the x-api-key header.

API quotas

Free: 100 lookups/day. Pro: 10,000/month. Business: 100,000/month. Quotas are shared across your account’s keys and reset by UTC calendar day or month. Public browser checks are free and separate. Only active public proofs are returned; your own key may also see your active unlisted domains. Compare plans.

GET/api/public/lookup

Look up all verified domain bindings for a blockchain address across supported chains.

Query parameters

addressrequired · string · any supported chain format

The blockchain address to look up. Accepts Ethereum, Solana, Bitcoin, Cosmos, Sui, and Aptos addresses. EVM addresses are case-insensitive; other address formats are case-sensitive in this keyed API.

chainoptional · string · enum

One of ethereum, solana, bitcoin, cosmos, sui, aptos. When provided, the address is validated against that chain and only proofs for that chain are returned — recommended, since some address formats (Sui/Aptos/EVM) look alike. When omitted, the chain is inferred from the address format. Always pass a chain for ambiguous formats. The top-level chain is inferred; each proof has its own chain.

Example request

curl "https://walletorigin.com/api/public/lookup?address=0xAbC1234567890abcdef1234567890abcdef123456&chain=ethereum" \
  -H "Authorization: Bearer walletorigin_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Response — verified

{
  "address": "0xabc1234567890abcdef1234567890abcdef123456",
  "chain": "ethereum",
  "verified": true,
  "proofs": [
    {
      "domain": "company.com",
      "chain": "ethereum",
      "verified_at": "2026-07-05T10:20:30.000Z"
    }
  ]
}

Response — no proof

{
  "address": "0x0000000000000000000000000000000000000000",
  "chain": "ethereum",
  "verified": false,
  "proofs": []
}

Errors

StatusMeaning
400Invalid or missing address, unsupported chain, or address that doesn't match the given chain
401Missing or invalid API key
403API key scope does not permit lookups
429Account lookup quota or request rate limit reached

Supported blockchains & wallets

WalletOrigin verifies ownership by asking the user to sign a challenge with one of the supported wallets for each chain.

ChainAddress formatSupported wallets / extensions
Ethereum / EVM0x + 40 hex charsMetaMask, Rabby, Coinbase, Trust, Frame, Taho
SolanaBase58Phantom, Solflare, Backpack
Bitcoinbc1… / 1… / 3…Xverse, Unisat, Leather
Cosmosbech32 (e.g. cosmos1…)Keplr, Leap
Sui0x + 64 hex charsSuiet, Sui Wallet
Aptos0x + 64 hex charsPetra, Martian

Ready to integrate?

Generate an API key from your dashboard and start querying.

Create API key