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

NameTypeDescription

limit

String

Limite de resultados da busca

offset

String

Quantidade de resultados para avançar da busca

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

collectionId

String

ID da Coleção

currency

String

Tipo de moeda utilizada

tags

Array

Tags do Token

[
    {
      "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

NameTypeDescription

tokenId*

String

ID do token

{
    "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

NameTypeDescription

limit

String

Limite de resultados da busca

offset

String

Quantidade de resultados para avançar da busca

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

collectionId

String

ID da Coleção

tags

Array

Tags do Token

Headers

NameTypeDescription

authorization*

Bearer

JWT

[
    {
      "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

NameTypeDescription

limit

String

Limite de resultados da busca

offset

String

Quantidade de resultados para avançar da busca

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

collectionId

String

ID da Coleção

currency

String

Tipo de moeda utilizada

tags

Array

Tags do Token

Headers

NameTypeDescription

authorization*

Bearer

JWT

[
    {
      "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

NameTypeDescription

tokenId*

String

ID do token

Headers

NameTypeDescription

authorization*

Bearer

JWT

{
    "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

NameTypeDescription

tokenId*

String

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

tokenId

String

collectionId

String

transactionType

String

owners

String

displayMediaUrl

String

displayMediaType

String

supply

String

tags

Array

{
    "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

NameTypeDescription

tokenId*

String

ID da Coleção

address

String

Headers

NameTypeDescription

authorization*

Bearer

JWT

"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

NameTypeDescription

tokenId*

String

ID da Coleção

address

String

Headers

NameTypeDescription

authorization*

Bearer

JWT

"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

NameTypeDescription

tokenId*

String

ID da Coleção

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

amount*

String

Quantidade de tokens

(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

NameTypeDescription

tokenId*

String

ID da Coleção

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

amount*

String

Quantidade de tokens

(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

NameTypeDescription

tokenId*

String

ID da Coleção

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

amount*

String

Quantidade de tokens

toAddress*

String

(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

NameTypeDescription

tokenId*

String

ID da Coleção

Headers

NameTypeDescription

authorization*

Bearer

JWT

Request Body

NameTypeDescription

amount*

String

Quantidade de tokens

toAddress*

String

fromAddress

String

Last updated