Find Reusable Solana LUTs Before You Build the Transaction
Find and reuse indexed Solana address lookup tables for smaller transactions with Ridge DB RPC methods.
Reusing LUTs beats creating them from scratch
Solana Tracker RPC now includes four Ridge DB-powered methods for finding and reusing Solana address lookup tables. Instead of creating a new LUT, paying SOL, waiting for activation, and maintaining it yourself, you can search indexed LUTs that already contain the accounts your transaction needs.
Each lookup table method costs 1 credit per call.
Why LUT reuse matters for transaction builders
Address lookup tables are one of the cleanest ways to fit more accounts into Solana transactions, but creating your own LUT has operational overhead. You need to fund it, extend it, wait for it to become usable, and keep it maintained.
These methods make reuse practical. Find LUTs by authority, account, mint, or full account set, then build smaller versioned transactions with tables that already exist.
This is useful for swap routing, transaction compression, bots, wallets, and aggregators. Our Raptor DEX Aggregator uses LUTs for compact route execution, and the same pattern helps any app that needs to pack more accounts into one Solana transaction without spending SOL to create fresh tables for every route shape.
Four LUT methods cover discovery and compression
getLookupTablesByAuthority- returns LUTs owned by a wallet authoritygetLookupTablesByAccount- finds LUTs containing a specific accountgetLookupTablesByMint- finds LUTs containing a token mintgetLookupTablesByAccounts- finds LUTs containing every listed account, or a compact best set withbestSet: true
Responses include match metadata such as matchedAccounts, matchedAddressIndices, and estimatedBytesSaved where available.
Find Tables for a Mint
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLookupTablesByMint",
"params": [{
"mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"limit": 100
}]
}
Use this when your transaction touches a token mint and you want to find LUTs that already include it.
Find the Best LUT Set
For transaction builders, getLookupTablesByAccounts with bestSet: true is the most useful mode. Pass the accounts your transaction expects to use, and Ridge DB returns a greedy compact LUT set optimized for coverage and estimated byte savings.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLookupTablesByAccounts",
"params": [{
"accounts": [
"AccountApubkey11111111111111111111111111111",
"AccountBpubkey22222222222222222222222222222",
"AccountCpubkey33333333333333333333333333333"
],
"bestSet": true,
"maxLookupTables": 8,
"candidateLimit": 5000,
"perAccountLimit": 500
}]
}
Example response fields:
{
"result": {
"lookupTables": [{
"pubkey": "LUT1pubkey1111111111111111111111111111111111",
"matchedAccounts": [
"AccountApubkey11111111111111111111111111111",
"AccountBpubkey22222222222222222222222222222"
],
"matchedAddressIndices": [3, 17],
"estimatedBytesSaved": 62
}],
"coveredAccounts": [
"AccountApubkey11111111111111111111111111111",
"AccountBpubkey22222222222222222222222222222"
],
"uncoveredAccounts": [
"AccountCpubkey33333333333333333333333333333"
],
"estimatedBytesSaved": 62,
"count": 1
}
}
Use coveredAccounts and uncoveredAccounts to decide whether to use the returned set, add another table, or fall back to a normal account list.
Find Tables by Authority
If you already know which authority owns useful LUTs, query by authority and optionally filter to token mints only.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLookupTablesByAuthority",
"params": [{
"authority": "9aoUCn5J4sxhvYERCVwVnakPQxyXTHQVXe86CUJYxY8p",
"limit": 100,
"mintsOnly": false,
"includeDeactivated": false
}]
}
This is useful for inventorying your own LUTs, inspecting active tables, and finding addresses already indexed under a known authority.
Read the LUT RPC docs
- getLookupTablesByAuthority
- getLookupTablesByAccount
- getLookupTablesByMint
- getLookupTablesByAccounts
- Credits and rate limits
FAQ
How many credits does each LUT method cost?
Each method costs 1 credit per call.
Why reuse LUTs instead of creating new ones?
Reusing existing LUTs avoids funding and managing new lookup tables when the accounts you need are already indexed elsewhere.
What does bestSet: true do?
It returns a greedy minimal LUT set that covers as many requested accounts as possible, tuned for transaction size reduction rather than strict intersection.