All Resources
Resolve .sol Wallet Identity in One Solana RPC Call
UpdatesJSON-RPCJune 4, 20264 min read

Resolve .sol Wallet Identity in One Solana RPC Call

Resolve primary .sol domains, batch wallet identity, list owned domains and resolve names with Ridge DB RPC methods.

updatessolana-rpcsnsdomainsridge-db

Wallet identity should not require SNS account parsing

Solana Tracker RPC now includes four Ridge DB-powered methods for Solana Name Service identity. Resolve wallet labels and .sol ownership directly through JSON-RPC instead of chaining getAccountInfo, getMultipleAccounts, and custom SNS account parsing.

Each SNS method costs 1 credit per call and is live on the Solana Tracker RPC docs.

Four SNS methods cover the common identity paths

  • getPrimaryDomain - returns the primary .sol domain for one wallet
  • getMultiplePrimaryDomains - resolves primary domains for up to 100 wallets in one call
  • getAllDomains - returns every .sol name owned by a wallet, including tokenized NFT domains
  • resolveSolDomain - forward resolution from name.sol to the owner wallet and name registry account

This is built for wallet-heavy products: leaderboards, trader profiles, token holder tables, copy-trading UIs, and dashboards that need human-readable wallet identity without running an SNS indexer.

Resolve One Wallet

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getPrimaryDomain",
  "params": ["9aoUCn5J4sxhvYERCVwVnakPQxyXTHQVXe86CUJYxY8p"]
}

Example response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "context": {
      "slot": 423867852,
      "apiVersion": "3.0.0"
    },
    "value": {
      "wallet": "9aoUCn5J4sxhvYERCVwVnakPQxyXTHQVXe86CUJYxY8p",
      "domain": "solanatracker.sol"
    }
  }
}

If no primary domain is set, domain is null.

Batch Wallet Identity

Use getMultiplePrimaryDomains when rendering many wallets at once. Results stay in the same order as the input wallets, which makes it simple to enrich tables without extra joins.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getMultiplePrimaryDomains",
  "params": [[
    "9aoUCn5J4sxhvYERCVwVnakPQxyXTHQVXe86CUJYxY8p",
    "FMmaHPDL47V1gXsfh9WjgAT7Er3dfDvarQubTU1Jxc1r"
  ]]
}

Use this for PnL tables, holder enrichment, trader leaderboards, watchlists, and any UI that turns raw wallet addresses into names users can recognize.

Forward Resolution

When a user types a .sol name, resolveSolDomain returns the current owner and name registry account.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "resolveSolDomain",
  "params": ["solanatracker.sol"]
}

The method supports root domains and one-level subdomains. It returns null when the domain is not found.

PnL V2 Identity Enrichment

PnL V2 also exposes SNS identity directly. Wallet identity can now include an optional sns tag and identity.sns.domain. If the wallet has no higher-priority curated label, the primary .sol domain becomes identity.name and identity.type is sns.

This appears anywhere PnL V2 returns wallet identity, including wallet summaries, token traders, leaderboards, batch endpoints, and GET /tokens/:tokenAddress/holders?enrich=identity.

Read the SNS RPC docs

FAQ

How many credits does each method cost?

Each SNS RPC method costs 1 credit per call.

Can I resolve more than one wallet at once?

Yes. getMultiplePrimaryDomains supports up to 100 wallets per request.

Does this replace SNS account parsing?

For primary domains, owned domains, and forward .sol resolution, yes. The RPC methods return the indexed result directly from Ridge DB.