0xMowgli.

/ Writing · · 6 min read

How many compute units does a Solana token transfer use? 76 on SPL Token, about 1,900 on Token-2022

By Oussama Allamou · Solana · Compute Units · Token-2022 · Priority Fees · Trading Bots

An SPL Token transfer now uses 76 compute units on Solana mainnet. That is the optimized token program, p-token, which replaced the classic program's code in May 2026 and cut a transfer from 4,645 units. Token-2022 did not get that rewrite. In 30 mainnet blocks I read on October 17, 2026, a Token-2022 transfer used 1,879 compute units, about 25 times as much, and opening a Token-2022 account cost about ten times what it costs on SPL Token.

Every number below comes from mainnet: the transaction logs of 27,830 successful transactions in 30 blocks, read through a public RPC node. Switch between instructions to compare.

Transfer

SPL Token
76
Token-2022
1,879

TransferChecked

SPL Token
112
Token-2022
2,562

CloseAccount

SPL Token
118
Token-2022
1,464

Open an account

SPL Token
445
Token-2022
4,412

SPL Token (p-token) Token-2022

Explainer · Compute units per instruction, median on mainnet
  1. Case 01Transfer

    76 compute units on SPL Token, 1,879 on Token-2022, from 1,038 and 243 calls. Medians from 30 mainnet blocks, slots 458,049,831 to 458,050,011, read on October 17, 2026. Bars are drawn to scale.

  2. Case 02TransferChecked

    The transfer that also checks the mint and its decimals, and the one most programs call. 112 against 2,562, from 4,997 and 3,234 calls.

  3. Case 03CloseAccount

    Closing an empty token account and getting its deposit back. 118 against 1,464.

  4. Case 04Open an account

    Creating an associated token account calls the token program three times: GetAccountDataSize, InitializeImmutableOwner and InitializeAccount3. Together 445 on SPL Token and 4,412 on Token-2022. The associated token program's own work comes on top.

How many compute units does an SPL Token transfer use?

76 is the median I measured for Transfer, and 112 for TransferChecked. The Solana upgrade page for p-token lists the same 76, against 4,645 before it. p-token keeps the program id and the instruction set, so wallets and programs did not have to change anything, and the page says the change freed about 10% of total block space.

It went live at an epoch boundary. The program data of TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA was last written at slot 419,472,000, the first slot of epoch 971, on May 13, 2026. I read that while checking which mainnet programs are already sBPFv3.

InstructionSPL Token before May 2026SPL Token nowToken-2022 now
Transfer4,645761,879
TransferChecked6,2001122,562
CloseAccount2,9161181,464
InitializeAccount32292,153

The "before" column is from the Solana upgrade page. The other two are my medians. The page lists 105 for TransferChecked on p-token; I saw 105 to 112, and 112 was the median.

Why does Token-2022 cost so much more?

Because p-token rewrote the classic Token program, not Token-2022. Token-2022 also has more to do on every call: an account or a mint can carry extensions, such as transfer fees, transfer hooks or metadata, and the program has to read past them. The gap is between a program that was rewritten for compute and one that was not.

It is still cheaper than classic SPL Token was before May. A Token-2022 transfer at 1,879 units costs less than the 4,645 an SPL Token transfer cost then. It just did not move when the classic program did.

Which tokens use Token-2022?

You cannot tell from the coin. You can tell from the mint's owner: a mint owned by TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb is Token-2022. A lot of new coins are. Pump's docs say coins created with create_v2 use Token-2022, and older coins use SPL Token. In my sample, Token-2022 was 39% of all TransferChecked calls.

If your bot trades new Pump coins, most of its token work is the expensive kind. That changes how a Pump buy should be budgeted.

How should I set my compute unit limit?

SPL Token · compute units
557
Token-2022 · compute units
6,974
Extra priority fee at 100,000 micro-lamports per unit
642 lamports
Try it · Token work in one transaction
12.5× the compute

1 transfer, 1 account opened and 0 closed cost 557 compute units in the token program for an SPL Token coin and 6,974 for a Token-2022 coin.

Medians I measured on mainnet on October 17, 2026. Only the token program's own share is counted, not the program that calls it. The price is an example; the fee is charged on the limit you set, not on what you use.

Transfers · 1
Token accounts opened · 1
Token accounts closed · 0

The priority fee is the price per compute unit times the limit you request, not what you use. A limit sized for Token-2022 overpays on every SPL Token trade. A limit sized for SPL Token fails on Token-2022 when the transaction runs out of compute.

  1. Look up the mint's owner before you build the transaction, and keep a limit per token program.
  2. Simulate, then add a margin. The numbers here are the token program's share only. The program that calls it, a DEX or a router, adds its own.
  3. In a v1 transaction the limit defaults to zero. Set it in the message config, as I described in v1 transactions.
  4. Count account opens. Creating a Token-2022 account is the most expensive step in my table. A bot that opens a new account for every coin pays it every time.

How did I measure this?

I read 30 finalized blocks, every sixth slot from 458,049,831 to 458,050,011, with getBlock and full transaction details. For every successful transaction I matched each invoke line in the logs to its instruction, including calls made by other programs, and took the consumed line of each call to the two token programs. I skipped transactions with truncated logs or signature precompiles, so the lines matched one to one.

That counts the token program's own work, which is what changes between the two programs. It is a snapshot of one moment on October 17, 2026, so read the medians as typical values, not constants.

What do the terms mean?

  • Compute unit: the unit the runtime meters a program's work in. A transaction declares a limit and pays its priority fee on it.
  • SPL Token: the original token program, TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA. Since May 2026 it runs the p-token code.
  • p-token: the optimized token program that replaced SPL Token's code, with the same program id and instructions (SIMD-0266).
  • Token-2022: the token program with extensions, TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb.
  • TransferChecked: a transfer that also passes the mint and its decimals, so the program can check them.
  • Associated token account: the default token account for a wallet and a mint, at an address derived from both.

FAQ

How many compute units does a Solana token transfer use?

On SPL Token, 76 for Transfer and about 112 for TransferChecked, the medians I measured on mainnet in October 2026. On Token-2022, 1,879 for Transfer and 2,562 for TransferChecked.

What is p-token?

The optimized token program that replaced the code of SPL Token in May 2026, under SIMD-0266. It keeps the same program id and instructions and uses about 95 to 98% fewer compute units.

Is Token-2022 more expensive than SPL Token?

In compute, yes. In my sample a Token-2022 transfer used about 25 times the compute units of an SPL Token transfer, and opening an account about ten times as much. The transaction fee per signature is the same.

How do I know if a token uses Token-2022?

Check the owner of its mint account. Token-2022 mints are owned by TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb, SPL Token mints by TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA.

What compute unit limit should I set for a token swap?

Simulate the transaction and add a margin, with a separate budget for SPL Token and Token-2022 mints. The token program's share is small on SPL Token and about ten to twenty times larger on Token-2022, and the DEX or router adds its own on top.

Further reading