Token

O tokens são a base do programa de benefícios

Resumo

Tokens são a representação de um ativo na rede blockchain, eles podem ser de diferentes tipos como Tokens Fungíveis (ERC20), Tokens Não Fungíveis (ERC721) e Tokens Semi Fungíveis (ERC1155)

Tokens estão diretamente relacionados a Coleções, e podem ser operados em massa pelos endpoint da coleção a qual pertencem ou individualmente através dessa seção.

  • Tokens Fungíveis são geralmente utilizados como moeda, ele é representado nessa API como um token único com Total Supply maior que zero.

  • Tokens Não Fungíveis são popularmente conhecidos como NFTs, eles representam ativos únicos na rede blockchain e são representados nessa API como tokens únicos e com Total Supply igual a 1

  • Tokens Semi Fungíveis representam ativos raros na rede blockchain, um Tokens Semi Fungível possui Total Supply maior que zero.

Diferentes tipos de tokens podem estar associados a diferentes tipos de benefícios, tokens fungíveis podem trazer benefícios de acordo com as configurações da empresa emissora, como por exemplo, oferecer benefícios para usuários que fizerem hold do token, ou podem ser usados como meio de precificação e pagamento de NFTs, que por sua vez podem ser combinados de diferentes formas e entregar beneficios diferentes dependendo da classificação de cada token.

Gestão de tokens web3

Os métodos web3 disponíveis nessa seção são os métodos mais comuns relacionados a um único token, se o métodos buscado não estiver disponível nessa seção ele poderá ser utilizados diretamente na Coleção.

Todas as operações Web3 são enviadas para uma fila e executadas de forma assíncrona.

Objeto Token

Exemplo de Objeto de Token
{
      "id": "j48arwr2q8wdsf",
      "tokenId": "1",
      "collectionId": "321",
      "name": "My Token",
      "supply": "10",
      "displayMediaUrl": "http://url.com/token.png",
      "displayMediaType": "image" | "video" | "gif",
      "metadata": {
        "en": {
          "mediaDescription": "Good Morning"
        },
        "pt": {
          "mediaDescription": "Bom dia"
        }
      },
      "owners": [
        {
          "userId": "rwet87fds15",
          "quantity": "3"
        },
        {
          "userId": "kyu871dtaw8s",
          "quantity": "1"
        },
      ],
      "tags": ["ambiental", "arte", "empreeendedorismo"],
      "transactionType": "sale" | "auction" | "airdrop",
      "sale": {
        "price": "12",
        "decimals": "2"
        "currency": "eth",
      },
      "auction": {
        "initialPrice": "100",
        "minIncreasePrice": "10",
        "decimals": "2",
        "currency": "eth"
      },
      "status": "private" | "public",
      "statusWeb3": "private" | "deployed"
}

Endpoints

  • Tokens

    • GET /v1/tokens/

    • GET /v1/tokens/:tokenId

  • Gestão de Tokens

    • GET /v1/tokens/owned

    • GET /v1/tokens/manage

    • GET /v1/tokens/:tokenId/manage

    • PATCH /v1/tokens/:tokenId/manage

  • Gestão do token na web3

    • GET /v1/tokend/:tokenId/manage/web3/ownerOf

    • GET /v1/tokend/:tokenId/manage/web3/ballanceOf/:address

    • POST /v1/tokend/:tokenId/manage/web3/mint

    • POST /v1/tokend/:tokenId/manage/web3/burn

    • POST /v1/tokend/:tokenId/manage/web3/transfer

    • POST /v1/tokend/:tokenId/manage/web3/transferFrom

Tokens

Lista os tokens públicos da plataforma

GET https://goblockchain.io/gotokens-api/v1/tokens

Nível de permissionamento necessário: qualquer

Query Parameters

[
    {
      "id":"1"
      "tokenId": "123",
      "collectionId": "321",
      "transactionType": "sale",
      "name": "My E-sports Token 1",
      "sale": {
        "price": "12",
        "decimals": "2",
        "currency": "ETH"
      },
      "supply": "100",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "0242ac120002"
        }
      ],
    },
    {
      "id":"2"
      "tokenId": "456",
      "collectionId": "654",
      "transactionType": "airdrop",
      "name": "My E-sports Token 2",
      "supply": "500",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "bfb46d00-5ae3-11ed-9b6a-0242ac120002"
        }
      ],
   }
]

Exibe detalhes de tokens públicos

GET https://goblockchain.io/gotokens-api/v1/tokens/:tokenId

Nível de permissionamento necessário: qualquer

Path Parameters

{
    "id":"1"
    "tokenId": "123",
    "collectionId": "321",
    "transactionType": "sale",
    "name": "My E-sports Token 1",
    "sale": {
      "price": "12",
      "decimals": "2",
      "currency": "ETH"
    },
    "supply": "100",
    "tags": ["esportes"],
    "displayMediaType": "image",
    "displayMediaUrl": "https://placehold.it/300x300",
    "owners": [
      {
        "quantity": "2",
        "userId": "0242ac120002"
      }
  ],
}

Gestão de Tokens

(JWT) Lista os tokens que o usuário logado possui

GET https://goblockchain.io/gotokens-api/v1/tokens/owned

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator, member

Query Parameters

Headers

[
    {
      "id":"1"
      "tokenId": "123",
      "collectionId": "321",
      "transactionType": "sale",
      "name": "My E-sports Token 1",
      "sale": {
        "price": "12",
        "decimals": "2",
        "currency": "ETH"
      },
      "supply": "100",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "0242ac120002"
        }
      ],
    },
    {
      "id":"2"
      "tokenId": "456",
      "collectionId": "654",
      "transactionType": "airdrop",
      "name": "My E-sports Token 2",
      "supply": "500",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "bfb46d00-5ae3-11ed-9b6a-0242ac120002"
        }
      ],
   }
]

(JWT) Lista os tokens públicos e privados da plataforma

GET https://goblockchain.io/gotokens-api/v1/tokens/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator

Query Parameters

Headers

[
    {
      "id":"1"
      "tokenId": "123",
      "collectionId": "321",
      "transactionType": "sale",
      "name": "My E-sports Token 1",
      "sale": {
        "price": "12",
        "decimals": "2",
        "currency": "ETH"
      },
      "supply": "100",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "0242ac120002"
        }
      ],
    },
    {
      "id":"2"
      "tokenId": "456",
      "collectionId": "654",
      "transactionType": "airdrop",
      "name": "My E-sports Token 2",
      "supply": "500",
      "tags": ["esportes"],
      "displayMediaType": "image",
      "displayMediaUrl": "https://placehold.it/300x300",
      "owners": [
        {
          "quantity": "2",
          "userId": "bfb46d00-5ae3-11ed-9b6a-0242ac120002"
        }
      ],
   }
]

(JWT) Exibe detalhes de tokens públicos e privados

GET https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage

Nível de permissionamento necessário: company_admin, company_moderator, community_admin, community_moderator

Path Parameters

Headers

{
    "id":"1"
    "tokenId": "123",
    "collectionId": "321",
    "transactionType": "sale",
    "name": "My E-sports Token 1",
    "sale": {
      "price": "12",
      "decimals": "2",
      "currency": "ETH"
    },
    "supply": "100",
    "tags": ["esportes"],
    "displayMediaType": "image",
    "displayMediaUrl": "https://placehold.it/300x300",
    "owners": [
      {
        "quantity": "2",
        "userId": "0242ac120002"
      }
  ],
}

(JWT) Altera informações de um token

PATCH https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage

Nível de permissionamento necessário: company_admin

Path Parameters

Headers

Request Body

{
    "id":"1"
    "tokenId": "123",
    "collectionId": "321",
    "transactionType": "sale",
    "name": "My E-sports Token 1",
    "sale": {
      "price": "12",
      "decimals": "2",
      "currency": "ETH"
    },
    "supply": "100",
    "tags": ["esportes"],
    "displayMediaType": "image",
    "displayMediaUrl": "https://placehold.it/300x300",
    "owners": [
      {
        "quantity": "2",
        "userId": "0242ac120002"
      }
  ],
}

Gestão de Tokens na web3

(JWT) Consulta o proprietário do token na web3

GET https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/ownerOf

Nível de autorização necessário: member

Path Parameters

Headers

"ownerAddress": "0x89s7das87d87as7d9a8s7da7sd98a7sd98a8d79as8d7sa8d"

(JWT) Consulta o saldo de tokens para a carteira informada na web3

GET https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/balanceOf/:address

Nível de autorização necessário: member

Path Parameters

Headers

"balanceOf": "1000"

(JWT/Wallet) Mint de Tokens na Web3

POST https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/mint

Nível de autorização necessário: company_admin É necessário um carteira com saldo vinculada ao usuário e a carteira precisa ter permissão de execução do método no contrato.

Diferentes tokens possuem diferentes possibilidades de mint. ex: tokens ERC20 e ERC1155 possuem supply e é possível, faz o mint inicial para criar o token na blockchain, e posteriormente novos mints podem ser usados para aumentar o supply, caso o contrato permita, já tokens ERC721 só podem ser mintados a primeira vez, novos mints do mesmo tokenId não produzem qualquer efeito.

Path Parameters

Headers

Request Body

(JWT/Wallet) Mint de Tokens na Web3

POST https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/burn

Nível de autorização necessário: member É necessário um carteira com saldo vinculada ao usuário e a carteira precisa ter permissão de execução do método no contrato.

O método precisa existir no contrato e as regras relativas a quem pode queimar cada token também estão definidas dentro do contrato.

Path Parameters

Headers

Request Body

(JWT/Wallet) Transfer de Tokens na Web3

POST https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/transfer

Nível de autorização necessário: member É necessário um carteira com saldo vinculada ao usuário e a carteira precisa ter permissão de execução do método no contrato.

O método precisa existir no contrato e as regras relativas a quem pode transferir cada token também estão definidas dentro do contrato.

Path Parameters

Headers

Request Body

(JWT/Wallet) Transfer de Tokens na Web3

POST https://goblockchain.io/gotokens-api/v1/tokens/:tokenId/manage/web3/transferFrom

Nível de autorização necessário: member É necessário um carteira com saldo vinculada ao usuário e a carteira precisa ter permissão de execução do método no contrato.

O método precisa existir no contrato e as regras relativas a quem pode transferir cada token também estão definidas dentro do contrato.

Path Parameters

Headers

Request Body

Last updated