Skip to content

Creators Documentations

Key Terminologies

  • Bonding Tokens - The assets on the AssetMantle chain can be created in a permissionless environment. The nominal gas fees for on-chain transactions might create an attack vector to possibly unnecessarily mint transactions/spam the assets or related transactions on-chain. One such mechanism is to tackle the bonding fees for the purchases. Bonding is the process of locking the tokens till they are at the end of their lifecycle and burnt. The bonding fees per asset would be directly proportional to the number of on-chain metadata properties.

  • Burn - An NFT being stored on-chain can't be 'deleted', however it can be 'burned'. Due to the immutability nature of blockchain, the asset, once minted, will exist forever in transaction history. Thus, the Burn mechanism enables you to burn an NFT and will be deleted from the chain state. Utilizing the MantleModules, creators can also set up the burn block height as the parameter, which enables them to burn an asset once the particular height is reached. You can find more information about the usage of the same here

Types of NFTs and advanced capabilities using MantleModules

  • Fractionalization
  • Fractional NFTs(F-NFTs), in simple terms, divide the ownership of an NFT into smaller fractions. Thus, enabling the possibility for several users to own a fraction of the NFT/Collection
  • Use - Cases

    • Metaverse : Buy Virtual Land and similar digital assets within the virtual world
    • Real Estate : Multiple parties sharing the rights/ownership of the property.
  • Composable/Decomposable

  • Composable NFTs : Composable NFTs initially introduced in ERC998, allow the creation of a composed version of more than one asset and add more utilities on top of the existing assets.

  • Use-Cases
    • P2E & Gaming : Combine the rare traits of two different skins in the game to make your character stronger and rarer, and mint the composed assets as NFTs.
    • Metaverse :For all the in-app characters, you can buy a hat, boot, and jacket for your avatar and mint it as a unique asset.
  • Decomposable NFTs : Decompose the greatest assets or their associated properties into multiple individual assets.

  • 1/1s

  • 1/1, often framed as one-of-one, is an NFT that has been issued as a single, unique edition. One-of-ones are more scarce and provide a more valuable set of utilities due to the singular ownership of the asset
  • 1-of-many
  • Multiple copies of the single edition exist wherein the user can own a single collection piece with a fixed set of utilities/properties.

API List and Definition

The following API lists provides an high-level overview about the transactions possible utilizing the MantleModules. For more info, please refer to MantleModules

Transaction / Identity

APIs pertaining to manipulating the 'identity', a DID based entity used to represent identity of user.

defineIdentity.define

used to define an identity entity. Defines a classification(schema) of type identity and initiates the transaction.

Function Signature

define: (address: string, chain_id: string, mnemonic: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string) => Promise<any>;

---------------

defineIdentity.createIdentityDefineMsg

used to define an identity entity. Only defines and outputs a message object.

Function Signature

createIdentityDefineMsg: (address: string, chain_id: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, memo: string) => Promise<any>;

---------------

issueIdentity.issue

used to issue an identity entity. Defines a message and initiates the transaction.

Function Signature

issue: (address: string, chain_id: string, mnemonic: any, to: any, fromID: string, classificationID: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string) => Promise<any>;

---------------

issueIdentity.createIdentityIssueMsg

used to issue an identity entity. Only defines and outputs a message object.

Function Signature

createIdentityIssueMsg: (address: string, chain_id: string, to: any, fromID: string, classificationID: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, memo: string) => Promise<any>;

---------------

nubIdentity.nub

used to create a nub ID, which is the simplest but complete and valid unit of identification. Defines a message and initiates the transaction.

Function Signature

nub: (address: string, chain_id: string, mnemonic: any, nubID: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string) => Promise<any>;

---------------

nubIdentity.createIdentityNubMsg

used to create a nub ID, which is the simplest but complete and valid unit of identification. Only defines and outputs a message object.

Function Signature

createIdentityNubMsg: (address: string, chain_id: string, nubID: any, feesAmount: any, feesToken: any, gas: any, memo: string) => Promise<any>;

---------------

provisionIdentity.provision

used to add a address which is used to control / operate an identity. a nub ID, which is the simplest but complete and valid unit of identification. Defines a message and initiates the transaction.

Function Signature

provision: (address: string, chain_id: string, mnemonic: any, identityID: any, to: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string) => Promise<any>;

---------------

provisionIdentity.createIdentityProvisionMsg

used to create a provision address which is used to control / operate an identity. Only defines and outputs a message object

Function Signature

createIdentityProvisionMsg: (address: string, chain_id: string, identityID: any, to: any, feesAmount: any, feesToken: any, gas: any, memo: string) => Promise<any>;

---------------

queryIdentities.queryIdentity

used to query the list of all identities. Defines a message and initiates the transaction.

Function Signature

queryIdentity: () => Promise<any>;

---------------

queryIdentities.queryIdentityWithID

used to query the list of all identities pertaining to a certain ID argument passed. Defines a message and initiates the transaction.

Function Signature

queryIdentityWithID: (id: any) => Promise<any>;


transaction / assets

APIs pertaining to manipulating the 'assets', a DID based entity used to represent NFTs.

burnAsset.burn

used to burn an Asset. Defines a message and initiates the transaction.

Function Signature

burn: (address: string, chain_id: string, mnemonic: string, fromID: string, assetID: string, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

burnAsset.createAssetBurnMsg

used to burn an Asset. Only defines and outputs a message object

Function Signature

createAssetBurnMsg: ( address: string, chain_id: string, fromID: string, assetID: string, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

defineAsset.define

used to define the schema of an Asset. Defines a message and initiates the transaction.

Function Signature

define: ( address: string, chain_id: string, mnemonic: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

defineAsset.createAssetDefineMsg

used to define the schema of an Asset. Only defines and outputs a message object

Function Signature

createAssetDefineMsg: ( address: string, chain_id: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

mintAsset.mint

used to mint an asset using the defined schema. Defines a message and initiates the transaction.

Function Signature

mint: ( address: string, chain_id: string, mnemonic: any, toID: any, fromID: string, classificationID: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

mintAsset.createAssetMintMsg

used to mint an asset using the defined schema. Only defines and outputs a message object.

Function Signature

createAssetMintMsg: ( address: string, chain_id: string, toID: any, fromID: string, classificationID: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

mutateAsset.mutate

used to change the mutable properties of an Asset. These specific properties must be already defined as mutable in the classification of asset. Defines a message and initiates the transaction.

Function Signature

mutate: ( address: string, chain_id: string, mnemonic: any, fromID: string, assetID: any, mutableProperties: string, mutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

mutateAsset.createAssetMutateMsg

used to change the mutable properties of an Asset. These specific properties must be already defined as mutable in the schema of asset. Only defines and outputs a message object.

Function Signature

createAssetMutateMsg: ( address: string, chain_id: string, fromID: string, assetID: any, mutableProperties: string, mutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

queryAssets.queryAsset

queries asset perstating to specific assets of group assetID. These specific properties must be already defined as mutable in the schema of asset. Defines a message and initiates the transaction.

Function Signature

queryAsset: () => Promise<any>;

---------------

queryAssets.queryAssetWithID

used to query the mutable properties of an Asset with Id. These specific properties must be already defined as mutable in the schema of asset. Only defines and outputs a message object.

Function Signature

queryAssetWithID: (id: any) => Promise<any>;


transaction / classification

APIs pertaining to manipulating the Classifications or schemas of entities created

cls.queryClassification

used to query the details of all Classifications IDs.

Function Signature

queryClassification: () => Promise<any>;

---------------

cls.queryClassificationWithID

used to query the details of Classification IDs pertaining to the ID argument provided in the function

Function Signature

queryClassificationWithID: (id: any) => Promise<any>;

---------------


transaction / maintainer

APIs pertaining to managing the maintainers and access control lists of various entities

deputizeMaintainer.deputize

used to provide or revoke access controls to new maintainer roles. Defines a message and initiates the transaction.

Function Signature

deputize: ( address: string, chain_id: string, mnemonic: string, identityID: string, clsID: string, toID: string, maintainedTraits: string, addMaintainer: any, removeMaintainer: any, mutateMaintainer: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

deputizeMaintainer.createDeputizeMsg

used to provide or revoke access controls to new maintainer roles. Only defines and outputs a message object.

Function Signature

createDeputizeMsg: ( address: string, chain_id: string, identityID: string, clsID: string, toID: string, maintainedTraits: string, addMaintainer: any, removeMaintainer: any, mutateMaintainer: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

queryMaintainer.queryMaintainerWithID

used to query the details of maintianer pertaining to the ID argument provided in the function

Function Signature

queryMaintainerWithID: (id: any) => Promise<any>;


transaction / order

APIs pertaining to manipulating the 'order', a DID based entity used to represent orders created to perform a transfer of value between splites of 'assets' or 'wrapped coins'.

defineOrder.define

used to define a schema for an order type. Defines a message and initiates the transaction.

Function Signature

define: ( address: string, chain_id: string, mnemonic: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

defineOrder.createOrderDefineMsg

used to define a schema for an order type. Only defines and outputs a message object.

Function Signature

createOrderDefineMsg: ( address: string, chain_id: string, fromID: string, mutableTraits: string, immutableTraits: any, mutableMetaTraits: any, immutableMetaTraits: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

makeOrder.make

used to issue an order pertaining to a specific schema. Defines a message and initiates the transaction.

Function Signature

make: ( address: string, chain_id: string, mnemonic: any, fromID: string, classificationID: any, makerOwnableID: string, takerOwnableID: string, expiresIn: any, makerOwnableSplit: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

makeOrder.createOrderMakeMsg

used to issue an order pertaining to a specific schema. Only defines and outputs a message object.

Function Signature

createOrderMakeMsg: ( address: string, chain_id: string, fromID: string, classificationID: any, makerOwnableID: string, takerOwnableID: string, expiresIn: any, makerOwnableSplit: any, mutableProperties: string, immutableProperties: any, mutableMetaProperties: any, immutableMetaProperties: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

takeOrder.take

used to put an take order on order book pertaining to a specific order ID. Defines a message and initiates the transaction.

Function Signature

take: ( address: string, chain_id: string, mnemonic: any, fromID: string, takerOwnableSplit: any, orderID: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

takeOrder.createOrderTakeMsg

used to accept an issued order pertaining to a specific order ID. Only defines and outputs a message object.

Function Signature

createOrderTakeMsg: ( address: string, chain_id: string, fromID: string, takerOwnableSplit: any, orderID: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

cancelOrder.cancel

used to cancel an issued order pertaining to a specific order ID. Defines a message and initiates the transaction.

Function Signature

cancel: ( address: string, chain_id: string, mnemonic: string, fromID: string, orderID: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

cancelOrder.createOrderCancelMsg

used to cancel an issued order pertaining to a specific order ID. Only defines and outputs a message object.

Function Signature

createOrderCancelMsg: ( address: string, chain_id: string, fromID: string, orderID: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

queryOrders.queryOrder

used to query for the list of all orders available

Function Signature

queryOrder: () => Promise<any>;

---------------

queryOrders.queryOrderWithID

used to query for a specifc order pertaining to an order ID

Function Signature

queryOrderWithID: (id: any) => Promise<any>;


transaction / meta

APIs pertaining to querying a certain meta property across the entities

queryMeta.queryMetaWithID

used to query metaProperty with assetId

Function Signature

queryMetaWithID: (id: any) => Promise<any>;

---------------

revealMeta.reveal

used to reveal the metaProperties for the asset. Defines a message and initiates the transaction.

Function Signature

reveal: ( address: string, chain_id: string, mnemonic: any, metaFact: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

revealMeta.createMetaRevealMsg

used to reveal the hashed mataProperties. Only defines and outputs a message object.

Function Signature

createMetaRevealMsg: ( address: string, chain_id: string, metaFact: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;


transaction / splits

APIs pertaining to creating and manipulating fractionalizing of NFTs and their correlation with FTs

querySplits.querySplitsWithID

used to query a split (fractional NFT) using a specific ID

Function Signature

querySplitsWithID: (id: any) => Promise<any>;

---------------

sendSplits.send

used to send a split from one identity to another. Defines a message and initiates the transaction.

Function Signature

send: ( address: string, chain_id: string, mnemonic: string, fromID: string, toID: string, ownableID: string, split: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

sendSplits.createSplitsSendMsg

used to send a split from one identity to another. Only defines and outputs a message object.

Function Signature

createSplitsSendMsg: ( address: string, chain_id: string, fromID: string, toID: string, ownableID: string, split: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

wrapSplits.wrap

used to wrap a coin into a split, which is then used for transacting (transfer of value) in AssetMantle's NFT Economy. Defines a message and initiates the transaction.

Function Signature

wrap: ( address: string, chain_id: string, mnemonic: string, fromID: string, coins: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

wrapSplits.createSplitsWrapMsg

used to wrap a coin into a split, which is then used for transacting (transfer of value) in AssetMantle's NFT Economy. Only defines and outputs a message object.

Function Signature

createSplitsWrapMsg: ( address: string, chain_id: string, fromID: string, coins: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------

unwrapsplits.unwrap

used to unwrap a split back into a coin, which is then used for transacting (transfer of value) in Cosmos Economy and beyond. Defines a message and initiates the transaction.

Function Signature

unwrap: ( address: string, chain_id: string, mnemonic: string, fromID: string, ownableID: string, split: any, feesAmount: any, feesToken: any, gas: any, mode: any, memo: string, ) => Promise<any>;

---------------

unwrapsplits.createSplitsUnwrapMsg

used to unwrap a split back into a coin, which is then used for transacting (transfer of value) in Cosmos Economy and beyond. Only defines and outputs a message object.

Function Signature

createSplitsUnwrapMsg: ( address: string, chain_id: string, fromID: string, ownableID: string, split: any, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------


Transaction / accounts

APIs pertaining to creating an account in AssetMantle chain for storing and transacting on coins

createAccount.create

used to create and initiate an account in the AssetMantle chain

Function Signature

create: ( address: string, chain_id: string, mnemonic: string, name: string, denom: string, amount: any, gas: any, memo: string, ) => Promise<any>;

---------------

recoverAccount.recover

used to recover an existing account using a mnemonic

Function Signature

recover: (mnemonic: string, name: string) => Promise<any>;


transaction / bank

APIs pertaining to transfer of value of coins in the AssetMantle chain and beyond.

bank.sendCoin

APIs pertaining to transfer of value of coins in the AssetMantle chain and beyond.

Function Signature

create: ( address: string, chain_id: string, mnemonic: string, name: string, denom: string, amount: any, gas: any, memo: string, ) => Promise<any>;

---------------

bank.createSendCoinMsg

APIs pertaining to transfer of value of coins in the AssetMantle chain and beyond. Only defines and outputs a message object.

Function Signature

createSendCoinMsg: ( from_address: string, chain_id: string, to_address: string, denom: string, amount: string, feesAmount: any, feesToken: any, gas: any, memo: string, ) => Promise<any>;

---------------


utilities / keys

APIs pertaining to creation of wallets and keystores in the AssetMantle chain.

createWallet

used to create a wallet using a mnemonic and a bip39 passphrase.

Function Signature

createWallet: ( mnemonic: string, bip39Passphrase: string, ) => Promise<{ address: string; mnemonic: string; }>;

---------------

createRandomWallet

used to create a wallet using a bip39 passphrase, while the mnemonic is generated automatically.

Function Signature

createRandomWallet: (bip39Passphrase: string) => Promise<{ address: string; mnemonic: string; }>;

---------------

getWallet

used to get the object pertaining to already created wallet, pertaining to a certain mnemonic and bip39 passphrase

Function Signature

getWallet: (mnemonic: string, bip39Passphrase: string) => Promise<any>;

---------------

createStore

used to create a encrypted keystore using a specified mnemonic and password

Function Signature

createStore: ( mnemonic: string, password: string, ) => { Response: any; error: any; };

---------------

decryptStore

used to decrypt / open and encrypted keystore file, by specifying the file path and a password to decrypt.

Function Signature

decryptStore: ( fileData: any, password: string, ) => { mnemonic: any; };

---------------