> For the complete documentation index, see [llms.txt](https://docs.ordinalsbot.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ordinalsbot.com/api/burning-assets.md).

# 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.

<mark style="color:green;">`POST`</mark> `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

| Name                                               | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| -------------------------------------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| utxo<mark style="color:red;">\*</mark>             | String  | <p>Utxo that includes the inscription to be burned at the 0th sat location. <br>- For BRC20, this would be a <code>transfer inscription</code> </p><p>- For BRC20PROG, this would be a <code>contract deploy</code> inscription</p><p>Transaction output should be in the following format<br><code>"507d20a8db517abff4a3558e15f392ac4a7774f7d25c02fe6ec5ff6ca9df4ad2:0"</code><br><code>asd</code><br><strong>Note</strong>: Ensure utxo being burned has enough postage to cover the burn transaction fees + changeAmount. Recommended size: 10000 sats.</p> |
| burnAmount<mark style="color:red;">\*</mark>       | Integer | <p>Amount of sats being burned in the OP\_RETURN output<br><code>min: 1, max: 10000</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| changeAmount<mark style="color:red;">\*</mark>     | Integer | <p>Amount of sats being sent back to "paymentAddress" in the burn transaction.<br><code>min: 330</code></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| burnType<mark style="color:red;">\*</mark>         | Enum    | "BRC20" or "BRC20PROG" based on what type of inscription is being burned.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| paymentAddress<mark style="color:red;">\*</mark>   | String  | Bitcoin payment address where changeAmount will be sent back to.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| paymentPublicKey<mark style="color:red;">\*</mark> | String  | Bitcoin payment public key where changeAmount will be sent back to.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ordinalPublicKey<mark style="color:red;">\*</mark> | String  | Ordinals address of the wallet where the inscription being burned is sent from.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ordinalAddress<mark style="color:red;">\*</mark>   | String  | Ordinals public key of the wallet where the inscription being burned is sent from.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

{% tabs %}
{% tab title="200: OK Normal Response" %}

```json
{
    // 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
    ]
}
```

{% endtab %}

{% tab title="200: OK Error Response with Cause" %}

```
{
    status: 'error', 
    error: 'error reason'
}
```

{% endtab %}

{% tab title="500: Internal Server Error Server side error" %}

```
{
    status: 'error',
    reason: 'unable to check data'
}
```

{% endtab %}
{% endtabs %}

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](/brc20-brc2.0prog/opi-api.md)

```
/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](/token-pay/what-is-tokenpay.md) product to create PSBTs that can [burn inscriptions](/token-pay/api-docs/api-reference/create-burn-inscription-psbt.md) and [runes](/token-pay/api-docs/api-reference/create-burn-rune-psbt.md). It's also possible to add metadata while burning inscriptions and runes.

Here's [a test transaction on signet](https://mempool.space/signet/tx/826b3604b21cd00f7b5daddb7a94868038afb620b5a0fc50da444f1cab3313ec#vin=0) that burns in the same tx:

**1-** 1000 tokens of rune: [OB•CZTGOXTKHHHEE](https://signet-explorer.ordinalsbot.com/rune/OB%E2%80%A2CZTGOXTKHHHEE)

**2-** Inscription id: [5b09700e89333d4a986281a6e8a1261c72039f3daedbc0399f6cd5aa9da88e5di0](https://signet-explorer.ordinalsbot.com/inscription/5b09700e89333d4a986281a6e8a1261c72039f3daedbc0399f6cd5aa9da88e5di0)&#x20;

**3-** Adds some metadata that does certain things as [per the destination protocol](https://ordinalsbot.gitbook.io/bitcoin-meta-protocol-bridge).

Resulting inscription will look like this:

<figure><img src="/files/wPnEQBrQ0crMSmhDdpUl" alt=""><figcaption><p>Burned Rune and Inscription with Metadata</p></figcaption></figure>

{% embed url="<https://signet-explorer.ordinalsbot.com/inscription/5b09700e89333d4a986281a6e8a1261c72039f3daedbc0399f6cd5aa9da88e5di0>" %}

You can also use the [Utils](/token-pay/api-docs/api-reference/utils.md) 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.

{% hint style="info" %}
By default, you can not use a standard node to broadcast an OP\_RETURN output that has bitcoin in it. Our nodes have maxburnamount=0.01 (1 million satoshis) pre-configured.

Developers should save signed psbt, finalize and submit via tokenpay endpoints.
{% endhint %}

{% hint style="info" %}
Get in touch for any feedback regarding this service in **#developers** channel on our discord: [https://discord.ordinalsbot.com](https://discord.ordinalsbot.com/)
{% endhint %}
