# How to burn nft

**URL:** <https://forum.fuel.network/t/how-to-burn-nft/5937>\
**Category:** Rust SDK\
**Created:** [June 20, 2024, 4:32am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937 "2024-06-20T04:32:19Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 20, 2024, 4:32am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/1 "2024-06-20T04:32:19Z")

</div>

my code is here

```auto
let balances = wallet.get_balances().await.unwrap();
     println!("balances: {:?}", balances);
    let asset_id = contract_instance.methods().asset_id(sub_id).call().await.unwrap();
    let asset = asset_id.value;
    println!("asset {:?}",asset);
    let burn = contract_instance.methods().burn(sub_id,1).with_variable_output_policy(VariableOutputPolicy::EstimateMinimum).with_tx_policies(TxPolicies::default()).call().await;
    dbg!(&burn);

```

response is here

```auto
asset e38ca8877350a706e45d1b7905f0167529914f6955bc2f1fb2c9242101956d56
balances: {"603b0679e65e6bb3a0fdc6ab370fc2f692978c62f8f4a9ac9a240ecfe5b297b5": 1, "e38ca8877350a706e45d1b7905f0167529914f6955bc2f1fb2c9242101956d56": 1, "4925923ac3f80e8bc180c5d2a470238cbb532af91919e10257c971717f80f170": 9000000000, "f8f8b6283d7fa5b672b530cbb84fcccb4ff8dc40f8176ef4544ddb1f1952ad07": 5181897}
asset e38ca8877350a706e45d1b7905f0167529914f6955bc2f1fb2c9242101956d56
[examples/contract.rs:64:5] &burn = Err(
    Transaction(
        Reverted {
            reason: "NotEnoughCoins",
            revert_id: 18446744073709486080,
            receipts: [
                Call {
                    id: 0x0000000000000000000000000000000000000000000000000000000000000000,
                    to: 0x20667443791e287f39703462e179904ba106063fd7c16c5188e9a5ba9e6faa78,
                    amount: 0,
                    asset_id: 0xf8f8b6283d7fa5b672b530cbb84fcccb4ff8dc40f8176ef4544ddb1f1952ad07,
                    gas: 9158,
                    param1: 10480,
                    param2: 10492,
                    pc: 11712,
                    is: 11712,
                },
                LogData {
                    id: 0x20667443791e287f39703462e179904ba106063fd7c16c5188e9a5ba9e6faa78,
                    ra: 0,
                    rb: 4237256875605624201,
                    ptr: 67107328,
                    len: 8,
                    digest: 0xaf5570f5a1810b7af78caf4bc70a660f0df51e42baf91d4de5b2328de0e83dfc,
                    pc: 28916,
                    is: 11712,
                    data: Some(0000000000000000),
                },
                Revert {
                    id: 0x20667443791e287f39703462e179904ba106063fd7c16c5188e9a5ba9e6faa78,
                    ra: 18446744073709486080,
                    pc: 28924,
                    is: 11712,
                },
                ScriptResult {
                    result: Revert,
                    gas_used: 33237,
                },
            ],
        },
    ),
)

```

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [June 21, 2024, 4:35pm UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/2 "2024-06-21T16:35:47Z")

</div>

just want to confirm are you on the latest version of rust SDK ie `0.64.0`?

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 24, 2024, 6:20am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/3 "2024-06-24T06:20:09Z")

</div>

yes，its‘s rust sdk 0.64.0

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 25, 2024, 6:57am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/4 "2024-06-25T06:57:36Z")

</div>

Has anyone ever encountered this?

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [June 25, 2024, 9:03am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/5 "2024-06-25T09:03:20Z")

</div>

Can you please share your codebase, so that I can directly run it and reproduce it locally?

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 26, 2024, 3:46pm UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/6 "2024-06-26T15:46:52Z")

</div>

my test

```auto

#[warn(unused_imports)]
use fuels::{crypto::SecretKey, prelude::*, types::{Bits256,Bytes32, ContractId, Identity}};
use std::str::FromStr;

#[tokio::main]
async fn main() {
    abigen!(Contract(
        name = "MyContract",
        abi = "out/debug/src7_token-abi.json"
    ));
    let provider = Provider::connect("https://testnet.fuel.network/v1/graphql").await.unwrap();
    let secret =
        SecretKey::from_str("cc74e38f91112c34aa913592888e3a582850bfeaaa04cbb6914a746a9eb564e1")
            .unwrap();

    // Create the wallet
    let wallet = WalletUnlocked::new_from_private_key(secret, Some(provider.clone()));

    let contract_id: ContractId =
        "0x20667443791e287f39703462e179904ba106063fd7c16c5188e9a5ba9e6faa78"
            .parse()
            .expect("Invalid ID");

    let hex_str = format!("{:064x}", 1);

    // 添加 '0x' 前缀
    let hex_str_with_prefix = format!("0x{}", hex_str);
    println!("hex_str_with_prefix {}",hex_str_with_prefix);
    let sub_id = Bits256::from_hex_str(&hex_str_with_prefix).unwrap();

    let contract_instance = MyContract::new(contract_id, wallet.clone());
    let asset_id = contract_instance.methods().asset_id(sub_id).call().await.unwrap();
    let asset = asset_id.value;
    println!("asset {:?}",asset);
    let form = Identity::Address(wallet.address().into());
    let init = contract_instance.methods().constructor(form).call().await.unwrap();
    // 将数字转换为十六进制字符串
    let burn = contract_instance.methods().burn(sub_id,1).with_variable_output_policy(VariableOutputPolicy::EstimateMinimum).with_tx_policies(TxPolicies::default()).call().await;

    dbg!(&burn);

}

```

[src7\_token-abi.json](https://github.com/lopo1/fuel_test/blob/main/out/debug/src7_token-abi.json)

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 27, 2024, 2:23am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/7 "2024-06-27T02:23:35Z")

</div>

code

> <https://github.com/lopo1/fuel_test/blob/main/examples/nft_burn.rs>

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 28, 2024, 2:28am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/8 "2024-06-28T02:28:05Z")

</div>

Is there a solution to my problem?

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [June 28, 2024, 5:01am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/9 "2024-06-28T05:01:02Z")

</div>

Hey @lopo1, tests are passing for me [Warp](https://app.warp.dev/block/SOhhgy8xUlf8V6Hep2M8C4)

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [June 28, 2024, 6:14am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/10 "2024-06-28T06:14:11Z")

</div>

> [@naz3eh](#):
>
> Warp

You should use cargo run-- example nft\_burn

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [July 1, 2024, 7:08am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/11 "2024-07-01T07:08:18Z")

</div>

What is the cause of this, can you help me to see

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [July 2, 2024, 10:10am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/12 "2024-07-02T10:10:11Z")

</div>

Hey @lopo1, i have asked the team and will keep you posted

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [July 3, 2024, 11:32am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/13 "2024-07-03T11:32:50Z")

</div>

You need to include the asset that is burned in the call pararmeters:

```auto
let call_params = CallParameters::new(amount, asset_id, 1_000_000);
    let burn = contract_instance
.methods()
.burn(sub_id,1)
.with_variable_output_policy(VariableOutputPolicy::EstimateMinimum)
.with_tx_policies(TxPolicies::default())
.call_params(call_params)
.call()
.await;

```

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [July 5, 2024, 10:30am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/14 "2024-07-05T10:30:05Z")

</div>

Can this be an asset that can only be burned at your own address? If you have contractual authority, can’t you burn nft at other addresses?

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [July 8, 2024, 5:44pm UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/15 "2024-07-08T17:44:02Z")

</div>

Only the minting contract has the ability to burn as the `AssetId` is the hash of the `ContractId` and `SubId`

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [July 9, 2024, 10:08am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/16 "2024-07-09T10:08:57Z")

</div>

If there is an nft AssetId on address A, address B has contract burn authority, can address B burn off A’s AssetId?

---

<div class="post-metadata">

**Author:** ![naz3eh](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/naz3eh/32/2025_2.png) [@naz3eh](https://forum.fuel.network/u/naz3eh)\
**Post date:** [July 10, 2024, 7:13am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/17 "2024-07-10T07:13:47Z")

</div>

For any asset to be burned, it must be sent to or owned by the contract that minted it.

---

<div class="post-metadata">

**Author:** ![lopo1](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.fuel.network/lopo1/32/1038_2.png) [@lopo1](https://forum.fuel.network/u/lopo1)\
**Post date:** [July 10, 2024, 8:26am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/18 "2024-07-10T08:26:47Z")

</div>

That is, if address A does not have this nft asset, it cannot burn the asset at address B, unless address B transfers the asset back to address A, or the contract, address A has the right to burn this asset

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex022/uploads/fuel/original/2X/5/57d5a345cc15a64b636e0d56e042857f8a0e80b1.png) [@system](https://forum.fuel.network/u/system)\
**Post date:** [July 31, 2024, 4:27am UTC](https://forum.fuel.network/t/how-to-burn-nft/5937/19 "2024-07-31T04:27:18Z")

</div>

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.
