Account Name or Address / Txn Hash or Version / Block Height or Version

Account

0.995993 APT

Balance

burn(0x1::object::Object<0xe6eba0c086998fbd5ad141e4b30942e38bc77e2d5696bf6b1786f7a7722415c8::nft::NFTToken>)

To run you need to connect wallet first

How to use:

Option arguments can be submitted with no value, which would be Option::none

Nested vectors must be provided in JSON

Vector arguments can be provided in JSON or as a comma separated list e.g. 0x1, 0x2 or ["0x1", "0x2"]

Numbers and booleans must be inputted without quotes if providing JSON


Code

The source code is plain text uploaded by the deployer, which can be different from the actual bytecode.

1module contract::nft {
2    use aptos_token_objects::collection;
3    use std::option::Self;
4    use std::string;
5    use aptos_token_objects::token;
6    use aptos_framework::object::{Self, Object};
7
8    #[resource_group_member(group = aptos_framework::object::ObjectGroup)]
9    /// The ambassador token
10    struct NFTToken has key {
11        /// Used to mutate the token uri
12        mutator_ref: token::MutatorRef,
13        /// Used to burn.
14        burn_ref: token::BurnRef
15    }
16
17    public entry fun create_collection(creator: &signer) {
18        let max_supply = 1000;
19        let royalty = option::none();
20
21        // Maximum supply cannot be changed after collection creation
22        collection::create_fixed_collection(
23            creator,
24            string::utf8(b"My Collection Description"),
25            max_supply,
26            string::utf8(b"Qiao Collection"),
27            royalty,
28            string::utf8(
29                b"https://learnblockchain.cn/image/avatar/18602_middle.jpg?GjIyGZqa"
30            )
31        );
32    }
33
34    public entry fun mint_token(creator: &signer) {
35        let royalty = option::none();
36        let token_constructor_ref =
37            token::create(
38                creator,
39                string::utf8(b"Qiao Collection"),
40                string::utf8(b"My NFT Description"),
41                string::utf8(b"QiaoToken"),
42                royalty,
43                string::utf8(
44                    b"https://img.learnblockchain.cn/space/banner/18602/h7ljMtGq668b998356db8.jpg"
45                )
46            );
47
48        let object_signer = object::generate_signer(&token_constructor_ref);
49
50        let burn_ref = token::generate_burn_ref(&token_constructor_ref);
51
52        let mutator_ref = token::generate_mutator_ref(&token_constructor_ref);
53
54        let nft_token = NFTToken { mutator_ref, burn_ref };
55        move_to(&object_signer, nft_token);
56    }
57
58    public entry fun burn(token: Object<NFTToken>) acquires NFTToken {
59        let ambassador_token = move_from<NFTToken>(object::object_address(&token));
60        let NFTToken { mutator_ref: _, burn_ref } = ambassador_token;
61
62        token::burn(burn_ref);
63    }
64}
65

© 2025 Aptos Labs