Burning Assets
Burning BRC20 tokens
You can use endpoints available in our API to create PSBTs that can burn brc20 tokens and brc20prog contract deployment inscriptions.
POST
https://api.ordinalsbot.com/create-burn-psbt
Create a ready to sign PSBT that will burn a BRC20 transfer inscription (or BRC20PROG contract deploy inscription) and make the burned transfer amount unspendable.
Request Body
utxo*
String
Utxo that includes the inscription to be burned at the 0th sat location.
- For BRC20, this would be a transfer inscription
- For BRC20PROG, this would be a contract deploy
inscription
Transaction output should be in the following format
"507d20a8db517abff4a3558e15f392ac4a7774f7d25c02fe6ec5ff6ca9df4ad2:0"
asd
Note: Ensure utxo being burned has enough postage to cover the burn transaction fees + changeAmount. Recommended size: 10000 sats.
burnAmount*
Integer
Amount of sats being burned in the OP_RETURN output
min: 1, max: 10000
changeAmount*
Integer
Amount of sats being sent back to "paymentAddress" in the burn transaction.
min: 330
burnType*
Enum
"BRC20" or "BRC20PROG" based on what type of inscription is being burned.
paymentAddress*
String
Bitcoin payment address where changeAmount will be sent back to.
paymentPublicKey*
String
Bitcoin payment public key where changeAmount will be sent back to.
ordinalPublicKey*
String
Ordinals address of the wallet where the inscription being burned is sent from.
ordinalAddress*
String
Ordinals public key of the wallet where the inscription being burned is sent from.
{
// PSBT to be signed and published by user's wallet
"psbtBase64": "cHNi...AAAAA",
// same PSBT in hex format (for leather wallet)
"psbtHex": "70736274ff01...47dc200000000",
// input indices user will need to sign to create the transaction
"paymentInputIndices": [],
"ordinalInputIndices": [
0
]
}
Here are sample burned BRC20 tokens on signet:
Burn transaction: https://mempool.space/signet/tx/05ab98b45fbaf41b62d1c678f27f0d8acf6d64c65a0a09be1dedc37f31fa04b9#vin=0
Burned inscription: https://signet-explorer.ordinalsbot.com/inscription/507d20a8db517abff4a3558e15f392ac4a7774f7d25c02fe6ec5ff6ca9df4ad2i0
Burned supply as seen on BRC20 indexer OPI API
/v1/brc20/ticker_info?ticker=trio
{
"error": null,
"result": {
"id": "62",
"original_tick": "TRIO",
"tick": "trio",
"max_supply": "21000000000000000000000000",
"decimals": 18,
"limit_per_mint": "21000000000000000000000000",
"remaining_supply": "0",
"burned_supply": "30000000000000000000", <<<---
"is_self_mint": false,
"deploy_inscription_id": "a2c59a69a75e619000e95679eeda3e1f3a7a5cfb696ba4a6bf7e5c631ef2f332i0",
"block_height": 199892
}
}
Burning Inscriptions & Runes
You can use endpoints available in our Token Pay product to create PSBTs that can burn inscriptions and runes. It's also possible to add metadata while burning inscriptions and runes.
Here's a test transaction on signet that burns in the same tx:
1- 1000 tokens of rune: OB•CZTGOXTKHHHEE
2- Inscription id: 5b09700e89333d4a986281a6e8a1261c72039f3daedbc0399f6cd5aa9da88e5di0
3- Adds some metadata that does certain things as per the destination protocol.
Resulting inscription will look like this:

You can also use the Utils endpoints to finalize a psbt and broadcast with a higher than zero maxburnamount
, this is required for any protocol based on burning bitcoin digital assets.
Last updated