TEP-62
NFT Item
Transfer message layout
| Field | Type | Description |
|---|---|---|
transfer | uint32 | tag equal to 0x5fcc3d14 |
query_id | uint64 | arbitrary request number |
new_owner | MsgAddress | address of the new owner of the NFT item |
response_destination | MsgAddress | optional address to receive excess Toncoin, usually the sender’s address |
custom_payload | Maybe ^Cell | optional custom data |
forward_amount | VarUInteger 16 | the amount of Toncoin to be sent to the new owner |
forward_payload | Either Cell ^Cell | optional data that should be forwarded to the new owner |
Forward payload formats
To send a simple comment in theforward_payload, the forward_payload must start with 0x00000000 (32-bit unsigned integer equal to zero); the remainder of the forward_payload contains the comment.
If the comment does not begin with the byte 0xff, the comment is a text one; it can be displayed “as is” to the end user of a wallet (after filtering invalid and control characters and checking that it is a valid UTF-8 string). For instance, users may indicate the purpose (“for coffee”) of a simple transfer from their wallet to the wallet of another user in this text field.
On the other hand, if the comment begins with the byte 0xff, the remainder is a “binary comment”, which should not be displayed to the end user as text (only as a hex dump if necessary). The intended use of “binary comments” is, e.g., to contain a purchase identifier for payments in a store, to be automatically generated and processed by the store’s software.
If the forward_payload contains a binary message for interacting with the destination smart contract (for example, with DEX), then there are no prefixes.
Ownership assigned message layout
| Field | Type | Description |
|---|---|---|
ownership_assigned | uint32 | tag equal to 0x05138d91 |
query_id | uint64 | should be equal to request’s query_id |
prev_owner | MsgAddress | address of the previous owner of this NFT item |
forward_payload | Either Cell ^Cell | should be equal to request’s forward_payload |
Excesses message layout
| Field | Type | Description |
|---|---|---|
excesses | uint32 | tag equal to 0xd53276db |
query_id | uint64 | should be equal to request’s query_id |
Get static data message layout
| Field | Type | Description |
|---|---|---|
get_static_data | uint32 | tag equal to 0x2fcb26a2 |
query_id | uint64 | arbitrary request number |
Report static data message layout
| Field | Type | Description |
|---|---|---|
report_static_data | uint32 | tag equal to 0x8b771735 |
query_id | uint64 | should be equal to request’s query_id |
index | uint256 | numerical index of this NFT in the collection |
collection | MsgAddress | address of the smart contract of the collection to which this NFT belongs |
get_nft_data()
No arguments. Outputs:| Field | Type | Description |
|---|---|---|
init? | int | if not zero, then this NFT is fully initialized and ready for interaction |
index | int | numerical index of this NFT in the collection |
collection_address | MsgAddress | address of the smart contract of the collection to which this NFT belongs |
owner_address | MsgAddress | address of the current owner of this NFT |
individual_content | Cell | individual NFT content in any format |
NFT Collection
get_collection_data()
No arguments. Outputs:| Field | Type | Description |
|---|---|---|
next_item_index | int | the count of currently deployed NFT items in collection |
collection_content | Cell | collection content in a format that complies with TEP-64 |
owner_address | MsgAddress | collection owner address, zero address if no owner |
get_nft_address_by_index()
Argument:index as int.
Output: address as MsgAddress.
get_nft_content()
Arguments:indexasintindividual_contentasCell
full_content as Cell.
TEP-66
Get royalty params message layout
| Field | Type | Description |
|---|---|---|
get_royalty_params | uint32 | tag equal to 0x693d3950 |
query_id | uint64 | arbitrary request number |
Report royalty params message layout
| Field | Type | Description |
|---|---|---|
report_royalty_params | uint32 | tag equal to 0xa8cb00ad |
query_id | uint64 | should be equal to request’s query_id |
numerator | uint16 | royalty numerator |
denominator | uint16 | royalty denominator |
destination | MsgAddress | address to send royalty |
royalty_params()
No arguments. Outputs:| Field | Type | Description |
|---|---|---|
numerator | int | royalty numerator (e.g., 11) |
denominator | int | royalty denominator (e.g., 1000) |
destination | MsgAddress | address to send royalty |
numerator / denominator. For example, if numerator = 11 and denominator = 1000, then royalty share is 11 / 1000 * 100% = 1.1%.
TEP-85
SBT Item
Prove ownership message layout
| Field | Type | Description |
|---|---|---|
prove_ownership | uint32 | tag equal to 0x04ded148 |
query_id | uint64 | arbitrary request number |
destination | MsgAddress | address of the contract to which the ownership should be proven |
forward_payload | ^Cell | any data for sending to the destination address from SBT |
with_content | Bool | if true, SBT’s individual content cell will be included in the message |
Request owner message layout
| Field | Type | Description |
|---|---|---|
request_owner | uint32 | tag equal to 0xd0c3bfea |
query_id | uint64 | arbitrary request number |
destination | MsgAddress | address of the contract to which the ownership should be proven |
forward_payload | ^Cell | any data for sending to the destination address from SBT |
with_content | Bool | if true, SBT’s individual content cell will be included in the message |
Destroy message layout
| Field | Type | Description |
|---|---|---|
destroy | uint32 | tag equal to 0x1f04537a |
query_id | uint64 | arbitrary request number |
Revoke message layout
| Field | Type | Description |
|---|---|---|
revoke | uint32 | tag equal to 0x6f89f5e3 |
query_id | uint64 | arbitrary request number |
Ownership proof message layout
| Field | Type | Description |
|---|---|---|
ownership_proof | uint32 | tag equal to 0x0524c7ae |
query_id | uint64 | should be equal to request’s query_id |
item_id | uint256 | ID of an SBT |
owner | MsgAddress | SBT owner’s address |
data | ^Cell | data cell passed in prove_ownership |
revoked_at | uint64 | unix time when SBT was revoked, 0 if it was not |
individual_content | Maybe ^Cell | SBT’s individual content if with_content was true, null if not |
Owner info message layout
| Field | Type | Description |
|---|---|---|
owner_info | uint32 | tag equal to 0x0dd607e3 |
query_id | uint64 | should be equal to request’s query_id |
item_id | uint256 | ID of an SBT |
initiator | MsgAddress | address of request initiator |
owner | MsgAddress | SBT owner’s address |
data | ^Cell | data cell equal to request’s forward_payload |
revoked_at | uint64 | unix time when SBT was revoked, 0 if it was not |
content | Maybe ^Cell | SBT’s content if with_content was true, null if not |
get_nft_data()
Same as NFT standard. No arguments. Outputs:| Field | Type | Description |
|---|---|---|
init? | int | if not zero, then this SBT is fully initialized and ready for interaction |
index | int | numerical index of this SBT in the collection |
collection_address | MsgAddress | address of the smart contract of the collection to which this SBT belongs |
owner_address | MsgAddress | SBT owner’s address |
individual_content | Cell | individual SBT content in any format |
get_authority_address()
No arguments. Outputs:| Field | Type | Description |
|---|---|---|
authority | slice | authority’s address that can revoke SBT, returns addr_none (2 zero bits) if no authority |
get_revoked_time()
No arguments. Outputs:| Field | Type | Description |
|---|---|---|
revoked_at | int | unix time of when SBT was revoked, 0 when not revoked |