All Resources
Find Reusable Solana LUTs Before You Build the Transaction
UpdatesJSON-RPCJune 4, 20265 min read

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.

updatessolana-rpcaddress-lookup-tablesraptorridge-db

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 authority
  • getLookupTablesByAccount - finds LUTs containing a specific account
  • getLookupTablesByMint - finds LUTs containing a token mint
  • getLookupTablesByAccounts - finds LUTs containing every listed account, or a compact best set with bestSet: 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

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.