# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ordinalsbot.com/api/burning-assets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
