Burn Instruction
Permanently destroys tokens by removing them from circulation. This reduces the total supply of the token.
Before we can burn any token, we'll need to already have:
- Initialized a
Mint
account. - A
Token
account orAssociated Token
account that already has at least the amount we want to burn.
This is how the CPI to the burn()
instruction looks like:
burn(
CpiContext::new(
ctx.accounts.token_program.to_account_info(),
Burn {
mint: ctx.accounts.mint.to_account_info(),
from: ctx.accounts.token_account.to_account_info(),
authority: ctx.accounts.authority.to_account_info(),
},
),
&1_000_000,
)?;