Get all domain names

You can retrieve all the registered domain names using a getProgramAccounts request with the following RPC filter

const filters = [ { memcmp: { offset: 0, bytes: ROOT_DOMAIN_ACCOUNT.toBase58(), }, }, ];

If you are using @bonfida/spl-name-service you can use the following code:

import { getAllRegisteredDomains } from "@bonfida/spl-name-service"; // ... const registeredDomains = await getAllRegisteredDomains(connection);

To avoid enormous payload response, getAllRegisteredDomains slices the data to only return the owner of the domain (i.e dataSlice = { offset: 32, length: 32 })

/** * This function can be used to retrieve all the registered `.sol` domains. * The account data is sliced to avoid enormous payload and only the owner is returned * @param connection The Solana RPC connection object * @returns */ export const getAllRegisteredDomains = async (connection: Connection) => { const filters = [ { memcmp: { offset: 0, bytes: ROOT_DOMAIN_ACCOUNT.toBase58(), }, }, ]; const dataSlice = { offset: 32, length: 32 }; const accounts = await connection.getProgramAccounts(NAME_PROGRAM_ID, { dataSlice, filters, }); return accounts; };