Custom Program Error 0x1 is one of the most common error codes encountered when interacting with SPL tokens or decentralized applications on Solana. It appears in wallet popups (like Phantom, Solflare, or Backpack) and Solscan program logs during token minting, pool creation, authority revocations, or token transfers.
While the error message Program log: Error: custom program error: 0x1 sounds cryptic, its root cause is straightforward: Insufficient Funds (0x1 translates to 0x1: InsufficientFunds in the official Solana SPL Token Program specification).
Understanding why your wallet lacks sufficient funds despite showing a positive SOL balance will help you fix the error and complete your transaction.
The Technical Meaning of Error 0x1
In the Solana System Program and SPL Token Program, error code 0x1 is thrown whenever an instruction attempts to debit an account that does not hold enough native SOL to complete the requested operation.
Crucially, on Solana, a transaction requires native SOL for two separate purposes:
- Transaction Processing Fees: Small network fees (typically 0.000005 SOL) paid to validator leaders for processing instructions.
- Account Rent Exemption Deposits: A required one-time deposit (usually ~0.002 to 0.005 SOL per account) needed to initialize new accounts (such as Associated Token Accounts, Metadata accounts, or Pool Vault accounts) in validator memory.
If your wallet holds 0.001 SOL, you have enough SOL for the transaction fee, but the transaction fails with 0x1 because your balance cannot cover the rent-exemption deposit required to open the new token account.
The official error code mapping is documented in the Solana Program Error Specification.
Common Scenarios Where Error 0x1 Occurs
Scenario 1: Creating an SPL Token or Liquidity Pool
When creating a token or launching a liquidity pool, the transaction initializes multiple new accounts simultaneously (Mint Account, Metadata Account, OpenBook Market, Vault Accounts). If your wallet lacks sufficient SOL to fund rent for all accounts, the entire atomic transaction reverts with 0x1.
Scenario 2: Transferring Tokens to a New Wallet
If the recipient wallet does not already have an initialized Associated Token Account (ATA) for the token being sent, the transfer transaction must create the ATA first. If your wallet lacks the ~0.002 SOL rent fee to open the recipient’s ATA, the transaction fails with 0x1.
Scenario 3: Revoking Authorities or Locking Liquidity
Even though revoking an authority or locking LP tokens is a state update, network priority fees, compute budget fees, and temporary vault allocations require a minimal SOL buffer.
Step-by-Step Fix for Custom Program Error 0x1
Follow these simple steps to resolve Error 0x1:
Step 1: Check Your Native SOL Balance
Open your wallet extension. Verify your native SOL balance (not wrapped SOL or SPL tokens). Ensure you are looking at your main SOL balance.
Step 2: Add a SOL Balance Buffer
Top up your wallet with native SOL. We recommend maintaining the following minimum SOL buffers based on your intended operation:
- Token Creation: Keep at least 0.02 SOL to 0.05 SOL in your wallet.
- Liquidity Pool Creation: Keep at least 0.5 SOL plus your intended seed SOL amount.
- Authority Revocations: Keep at least 0.01 SOL in your wallet.
- Simple Token Transfers: Keep at least 0.005 SOL in your wallet.
Step 3: Retry the Transaction
Once your SOL balance is topped up, refresh the dApp web page to obtain a fresh blockhash, reconnect your wallet, and execute the transaction again.
Error 0x1 Troubleshooting Summary Table
| Operation Being Attempted |
Root Cause of Error 0x1 |
Required Fix |
| Minting a Token |
Missing SOL for Metadata & Mint account rent |
Add 0.02 SOL to wallet balance |
| Creating Liquidity Pool |
Missing SOL for Pool Vaults & DEX Market fees |
Top up SOL to cover fee + seed amount |
| Transferring Tokens |
Missing SOL for recipient ATA creation |
Add 0.005 SOL to sender wallet |
| Revoking Authority |
Missing SOL for network transaction & priority fees |
Add 0.01 SOL to wallet balance |
Maintaining a modest native SOL buffer in your wallet prevents 0x1 errors and ensures smooth, uninterrupted token operations on Solana.