Install

Run

./run.sh

and follow the prompts. See ./run.sh for details on how to create users, etc.

REST API

Start the rest server with:

nftcli rest-server --chain-id NFTChain --trust-node

Create Token

curl -s -XPOST http://localhost:1317/nftapp/nft --data-binary '{"base_req":{"from":"cosmos1mfgzjrd5klx3saahfy0rgf7ec9utdjx56y6smy","chain_id":"NFTChain", "account_number": "0", "sequence": "1" },"token_name":"alpha","description":"beta","image":"gamma","token_uri":"kappa","owner":"cosmos1mfgzjrd5klx3saahfy0rgf7ec9utdjx56y6smy", "name": "validator1", "password": "Committed"}'

Output:

{
  "height": "207",
  "txhash": "B237D9692E0CC00C0A1FB96DF41A19BF12F7DC4F78DE27EFF8280D34AF1A7DCE",
  "raw_log": "[{\"msg_index\":0,\"success\":true,\"log\":\"\"}]",
  "logs": [
    {
      "msg_index": 0,
      "success": true,
      "log": ""
    }
  ],
  "gas_wanted": "200000",
  "gas_used": "14219",
  "tags": [
    {
      "key": "action",
      "value": "create_nft"
    }
  ]
}

Show tokens for some address

curl -s http://localhost:1317/nftapp/nft/list/cosmos1np0wt2u949r3k6r5km023c6w5vp5dedyrglld9/

Output:

{
  "81bc9d76-5a1d-44d3-bdd5-c8a4bba155b1": {
    "id": "81bc9d76-5a1d-44d3-bdd5-c8a4bba155b1",
    "owner": "cosmos1np0wt2u949r3k6r5km023c6w5vp5dedyrglld9",
    "name": "\"alpha\"",
    "description": "\"beta\"",
    "image": "\"gamma\"",
    "token_uri": "\"kappa\""
  }
}

Show Token Info

curl -s http://localhost:1317/nftapp/nft/81bc9d76-5a1d-44d3-bdd5-c8a4bba155b1

Output:

{
  "type": "nftapp/BaseNFT",
  "value": {
    "id": "81bc9d76-5a1d-44d3-bdd5-c8a4bba155b1",
    "owner": "cosmos1np0wt2u949r3k6r5km023c6w5vp5dedyrglld9",
    "name": "alpha",
    "description": "beta",
    "image": "gamma",
    "token_uri": "kappa"
  }
}

Transfer Token

curl -s -XPOST http://localhost:1317/nftapp/nft/transfer --data-binary '{"base_req":{"from":"cosmos1mfgzjrd5klx3saahfy0rgf7ec9utdjx56y6smy","chain_id":"NFTChain", "account_number": "0", "sequence": "4" },"token_id":"81bc9d76-5a1d-44d3-bdd5-c8a4bba155b1","price":"100","owner":"cosmos1mfgzjrd5klx3saahfy0rgf7ec9utdjx56y6smy", "name": "validator1", "password": "Committed","price":"10token"}'

Output:

{
  "height": "219",
  "txhash": "263CC0B2B49A382168EB1B5E5888630FD89FEE577D07FFD9C49076B7B2486786",
  "raw_log": "[{\"msg_index\":0,\"success\":true,\"log\":\"\"}]",
  "logs": [
    {
      "msg_index": 0,
      "success": true,
      "log": ""
    }
  ],
  "gas_wanted": "200000",
  "gas_used": "11872",
  "tags": [
    {
      "key": "action",
      "value": "transfer_token_to_hub"
    }
  ]
}

CLI

  • Create NFT with a name, description, image and token_uri for Jack's account
nftcli tx nftapp createNFT NAME DESCRIPTION IMAGE TOKEN_URI --from validator1
Output
{
  "chain_id": "lol",
  "account_number": "0",
  "sequence": "3",
  "fee": {
    "amount": [],
    "gas": "200000"
  },
  "msgs": [
    {
      "type": "nftapp/CreateNFT",
      "value": {
        "Owner": "cosmos1xm697yarpz6lhh265ngaxwgrvygpkpkxvce7vs",
        "TokenURI": "TOKEN_URI",
        "Description": "DESCRIPTION",
        "Image": "IMAGE",
        "Name": "NAME"
      }
    }
  ],
  "memo": ""
}

confirm transaction before signing and broadcasting [Y/n]: y
Password to sign with 'jack':
{
  "height": "0",
  "txhash": "14B72D74A4670B1B880B835063F3C9B3844773C48214D6F733A1026E8A2A70A5"
}
  • Get a list of NFTs for Jack's account
nftcli query nftapp getNFTList $(nftcli keys show validator1 -a)
Output
{
    "7724138b-40ab-4401-b4e8-3afcbd9adb8b": {
        "id": "7724138b-40ab-4401-b4e8-3afcbd9adb8b",
        "owner": "cosmos1xm697yarpz6lhh265ngaxwgrvygpkpkxvce7vs",
        "name": "\"TOKEN_URI\"",
        "description": "\"DESCRIPTION\"",
        "image": "\"IMAGE\"",
        "token_uri": "\"NAME\""
      }
}
  • Get NFT data by ID
nftcli query nftapp getNFTData 443a901b-5738-475c-91a2-11cc24af9e01
Output
{
  "type": "nftapp/BaseNFT",
  "value": {
    "id": "7724138b-40ab-4401-b4e8-3afcbd9adb8b",
    "owner": "cosmos1xm697yarpz6lhh265ngaxwgrvygpkpkxvce7vs",
    "name": "TOKEN_URI",
    "description": "DESCRIPTION",
    "image": "IMAGE",
    "token_uri": "NAME"
  }
}

nftcli tx nftapp transfer 7cd2ea3b-1283-4b30-b028-c840803e39d7 10token --from validator1