Skip to main content
The mergeTokenAccounts() function consolidates multiple compressed accounts of the same mint into a single compressed account. The function
  1. consumes multiple compressed token accounts (up to 8 accounts), and
  2. creates a single output compressed token account with combined balance for the owner.
State trees where compressed account’s are stored, are append only. mergeTokenAccounts() reduces account fragmentation to simplify balance calculations from getCompressedTokenAccountsByOwner.

Full Code Example

1

Prerequisites

Make sure you have dependencies and developer environment set up!
Dependencies
Developer Environment
By default, all guides use Localnet.
2

Merging Compressed Accounts

Run this script to merge multiple compressed token accounts into one!
merge-compressed-accounts.ts
Before we merge compressed accounts, we need
  • Multiple compressed token accounts of the same mint owned by the same wallet, and
  • an SPL mint with a token pool for compression. This token pool can be created for new SPL mints via createMint() or added to existing SPL mints via createTokenPool().

Troubleshooting

The owner has no compressed token accounts for the specified mint:

Advanced Configuration

Next Steps

Learn how to approve and revoke delegate authority for compressed token accounts.