improving the solana open-source tooling brick by brick as we ship our game
@CryptaraConq to mainnet on seeker mobile
shipped my 3rd pr to the
@solana unity sdk since april (merged to prod)
latest update:
native .skr name resolution in the connected wallet
@solanamobile seeker users now get human-readable way to send & receive SOL
unwrapped domains are easy,
@alldomains_ has a direct reverse lookup. wrapped domains (nfts) are not
thereβs no onchain mapping from holder wallet β name, so youβd normally have to scan every nft in the wallet client-side
s/o to the project maintainer
@Kuldotha solved this with an onchain reverse-lookup program that used binary search on a magicblock ephemeral rollup
the unity client just simulates a tx against it and reads the resolved name from the logs. no backend, no NFT enumeration
link:
github.com/magicblock-labs/Sβ¦
more on the lookup process:
standard
@alldomains_ reverse lookup (wallet β .skr name) is a getProgramAccounts call with a memcmp filter on the domain account owner field, asking for every domain where owner == myWallet
works fine for normally held domains
when a domain gets wrapped into an nft so it can be traded or transferred as an SPL token, the domain account owner field no longer points to the holder wallet. it points to an nft record pda owned by the name house program
the wallet actually holding the nft becomes invisible to the memcmp filter, so the query returns zero results even though the user still owns the name
the brute force alternative would be an unfiltered getProgramAccounts on the entire alldomains program (100k accounts), then deriving the wrapper nft mint for every entry and checking who holds it
that approach is basically unusable:
it gets rate limited or rejected on most public rpcs, it is slow enough to hang the receive screen, and it scans the entire namespace just to answer one wallet lookup
@Kuldotha solved this with an onchain reverse lookup program that maintains a reverse lookup table keyed by wallet pubkey prefix
the unity client derives the lookup table pda from the users wallet, simulates the instruction against the magicblock er rpc, and reads the resolved reverseLookupAccount directly from the program return log
no tx sent, no fees, no NFT enumeration, no backend
running it on a
@magicblock ephemeral rollup keeps the simulation fast and cheap enough to execute every time the receive screen opens
big shoutout to
@PiccoGabriele and the magicblock team for their support