Types
Yours Protocol supports both non-fungible and semi-fungible tokens. The difference is simply how many tokens you create under the same project and collection.
Non-Fungible Tokens
Tokens that are non-fungible are unique per token, this means that under each token, there should maxiumum exist 1 token_balance.
function mint_non_fungible_token(name, to_account_id: byte_array) {
val spec = yours.token_info(
project = "Cat Dapp",
collection = "Cats Collection",
name,
modules = [rell.meta(mint_non_fungible_token).module_name]
);
val token = yours.create_token(spec);
val account = accounts.account @ { .id == to_account_id };
yours.mint(token, yours.balance_info(account, 1L));
}With the function above, each time we mint, it will create a new token under the same collection.
Assuming that we call this function three times.
mint_non_fungible_token("Bengal", x"DEADBEEF");
mint_non_fungible_token("Maine Coon", x"DEADBEEF");
mint_non_fungible_token("Ragdoll", x"DEADBEEF");The tokens that would get created are the following.
Cat Dapp
Cats Collection
0
Bengal
Cat Dapp
Cats Collection
1
Maine Coon
Cat Dapp
Cats Collection
2
Ragdoll
Semi-Fungible Tokens
Semi-Fungible Tokens can be shared among multiple users, and each user can own multiple of them. This means that we will end up with multiple token_balance under the same token.
With the functions above, we will mint new balances of the provided token.
The tokens that would get created are the following.
Cat Dapp
Cats Collection
0
Bengal
Cat Dapp
Cats Collection
1
Maine Coon
Cat Dapp
Cats Collection
2
Ragdoll
Last updated
Was this helpful?