Configure one shared reader
Install Lookup 0.11.0 with Stellar SDK 17:CONFIG.
Read the whole payment instruction
Start with a live testnet name. Read its address and memo together:none, id, text, or hash. Keep the returned pair together; an address alone can leave out required routing information.
Display both fields for review. Near the user’s confirmation, recheck that the instruction has not changed:
id, text or hash, include its exact type and value. Refuse to send if your payment flow cannot carry it. Memo IDs are decimal strings; never convert them to JavaScript numbers.
A Soran memo of
none does not override an account’s memo-required setting. A classic transaction has only one memo, so split payments that need different memos. Never strip an M address to G or turn its embedded ID into a transaction memo. See payment destination examples.
A successful read is a point-in-time answer. Rechecking catches stale client data; it cannot prevent a later record change before a separate payment settles.
Read ownership and display names separately
nameMetadata can return null. When a record exists, holder identifies its owner and builtinAddress is its Registrar target. Either can differ from the effective payment address. Primary and reverse names identify an account; they do not identify an individual customer memo on a pooled exchange account.
Use namespace assurance to assess Resolver provenance. It does not freeze holder records or remove Lookup governance and RPC trust.
Choose your next step
Read profiles
Load the avatar, description, and links a name’s holder publishes.
Resolve other networks
Request the address for an explicitly selected network.
Work with subnames
Read child names and understand their parent-bound ownership.
Offer usernames
Integrate eligible username claims into your own application.