#solana
To understand `custom program error 0x1` and the like, `0x1` hex to decimal is `1`, so it’s the 2nd error (0 based index) in [SPL](https://github.com/solana-labs/solana-program-library/blob/master/token/program/src/error.rs#L14-L80)
Therefore `0x1 = InsufficentFunds`, `0x5 = FixedSupply`, `0xa = NativeNotSupported` and so on …
These can be simplified as:
```
0x0 = "Lamport balance below rent-exempt threshold"
0x1 = "Insufficient funds"
0x2 = "Invalid Mint"
0x3 = "Account not associated with this Mint"
0x4 = "Owner does not match"
0x5 = "Fixed supply"
0x6 = "Already in use"
0x7 = "Invalid number of provided signers"
0x8 = "Invalid number of required signers"
0x9 = "State is uninitialized"
0xa = "Instruction does not support native tokens"
0xb = "Non-native account can only be closed if its balance is zero"
0xc = "Invalid instruction"
0xd = "State is invalid for requested operation"
0xe = "Operation overflowed"
0xf = "Account does not support specified authority type"
0x10 = "This token mint cannot freeze accounts"
0x11= "Account is frozen"
0x12 = "The provided decimals value different from the Mint decimals"
0x13 = "Instruction does not support non-native tokens"
```