goTokens
  • 🚀Comunidade goBlockchain
  • goTokens
    • 🤯Sobre a goTokens
    • 😎Casos de uso com a goTokens?
      • 👊Mão na massa!
        • 🎟️Caso 01 - Cartelinha de selos de Fidelidade
          • 💡Outras ideias...
    • 🌐Módulos goTokens
    • 😎Como começar - Usuário
      • Validação de Benefício
      • Resgate de colecionáveis
    • 🤓 Como começar - Admin
      • Customizando Whitelabel Web
      • Visão Geral
      • Dashboard
      • Criar uma comunidade
      • Criar coleção de Venda
      • Criar coleção de Airdrop
      • Criar coleção de POAP
      • Criar coleção de Membership
      • Moedas de Utilidade
      • Membership
      • Criar Colecionável de (Venda)
      • Criar NFT (POAP ou Airdrop)
      • Ativar uma coleção ou colecionável
      • Editar Whitelabel
      • Token Gating
      • Configurar Mercado Pago
      • Como visualizar meu saldo
      • Criar benefício
      • Criando um desafio
      • Vouchers de resgate
      • Validação de Benefício
      • Transferir NFT para Metamask
      • Integração Sympla
    • ⚙️API Fidelidade
      • Autenticação
      • Autorização
      • Usuário
      • Empresa
      • Comunidade
      • Coleções
      • Token
      • Benefícios
      • Vouchers
      • Transações
      • Marketplace
      • White Label
      • Token Gating
    • ⚙️API Garantias
      • Autenticação
      • Garantias
    • 📖FAQ
    • 🔥Suporte
  • 💰Modelo comercial
  • 🗒️Changelog
  • Aprender
    • ⛓️Artigos goBlockchain
  • Legal
    • 📔Termos e condições
    • 🔐Política de privacidade
  • Contatos
    • Instagram
    • Meetup
    • Youtube
    • Github
    • Linkedin
    • Medium
    • Email
Powered by GitBook
On this page
  • Resumo
  • Objeto Collection
  • Endpoints
  • Coleções
  • Lista as coleções públicas
  • Lista as informações de uma coleção pública
  • Lista os tokens públicos associadas à uma coleção
  • Gestão de Coleções
  • (JWT) Lista as coleções que o usuário tem direito de edição
  • (JWT) Cria coleção para a qual tem a devida autorização
  • (JWT) Lista as informações de uma coleção
  • (JWT) Altera coleção para a qual tem a devida autorização
  • Gestão em Massa de Tokens da Coleção
  • Lista todos os tokens associadas à uma coleção
  • (JWT) Cadastro de tokens em massa para uma coleção
  • Gestão do contrato Web3
  • (JWT/Wallet) Deploy de Contrato na Web3
  • (JWT/Wallet) Mint em lote de Tokens na Web3
  • (JWT/Wallet) Pausar um contrato na Web3
  • (JWT/Wallet) Libera um contrato pausado na Web3
  • (JWT) Lista de métodos web3 disponíveis no contrato
  • (JWT) Executa qualquer método de leitura do contrato diretamente na Web3
  • (JWT/Wallet) Executa qualquer método de escrita do contrato diretamente na Web3

Was this helpful?

  1. goTokens
  2. API Fidelidade

Coleções

Resumo

As coleções estão diretamente ligadas às Comunidades e as Empresas, elas representam os Smart Contracts, que podem ser contratos pré existentes ou contratos que serão criados na Blockchain a partir desta API.

É aqui que vamos definir as informações da Coleção como o tipo de contrato ex: ERC1155, ERC721, ERC20. Rede Blockchain usada, e as informações relativas ao contrato, no caso de um contrato de Venda de NFT's por exemplo, dados como Descrição, BaseURI das Imagem, Preço de Venda, Split de Pagamento e Distribuição de Royalties (caso haja).

Exemplo de alguns tipos de Coleções:

  • Token de Pagamento

  • Leilão de NFTs

  • Leilão de NFTs reverso

  • Vendas de NFTs

  • Airdrop de NFTs e/ou Tokens de Pagamento

  • POAP

  • Outros

É na coleção também que vamos associar os benefícios que os membros terão acesso.

Como funciona

Um usuário com a devida autorização poderá criar Coleções atreladas a uma Comunidade. Caso o contrato dessa coleção ainda não exista na Blockchain, será necessário executar o Deploy do contrato pela API. Para tal o usuário em questão precisa ter saldo em carteira pois essa operação irá criar transações na Blockchain.

Gestão em Massa de Tokens da Coleção

Com o objetivo de facilitar as operações relativas aos tokens, alguns endpoints permitem a manipulação de tokens em lote, assim como a execução do Mint dos tokens criados pode ser feita em lote através de uma única chamada em API.

Gestão do contrato Web3

Todas as operações web3 são enviadas para uma fila e processadas de forma assincrona. Comandos de deploy criam o contrato uma única vez na rede definida no cadastro. O comando de mint-batch de tokens executa o mint da diferença de tokens entre o cadastro e a blockchain.

Objeto Collection

Exemplo de Objeto de Coleção
{
    "id": "8798wdefs",
    "communityId": "8798wdefs",
    "companyId": "sd21fs5",
    "name": "Airdrop NFT",
    "description": "Distribuição de tokens não fungíveis",
    "symbol":"Um símbolo para o contrato",
    "image":"URL de uma imagem para ficar como capa da coleção",
    "type": "airdrop" | "sale" | "auction" | <others>,
    "startDate": "2021-01-01T00:00:00Z",
    "expirationDate": "2021-12-31T23:59:59Z",
    "mainCurrency": "USD" | "BRL" | "ETH" | "MATIC" | <others>,
    "tags": ["ambiental", "arte", "empreeendedorismo"]
    "contract": {
        "address": "0x1234567890abcdef12345678sssbcdef12345678",
        "network": "ethereum_mainnet" | "polygon_mainnet" | <others>,
        "pattern": "ERC20" | "ERC721" | "ERC1155" | <others>,
        "ownerAddress": "0x1234567890abcdef12345678sssbcdef12345678",
        "bytecode": /*Bytecode do contrato usada no deploy, apenas para contratos customizados*/,
        "abi": [/*ABI completa do contrato usada no deploy*/],
        "metadataCID": {
            "en": "ipfs://efauiyose.pinata.cloud",
            "pt": "ipfs://rgwqpmkiura.pinata.cloud"
        },
        "methods": {
            "deploy": {
                "args": [/* argumentos do construtor do contrato em ordem e com tipo compatível */],
            },
            "balanceOf": {
                "methodABI": {/* ABI do método balanceOf */},            
            }        
        },
        "royalties": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
            }
        ],
        "split": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
            }
        ],
    }
    "status": "active",
    "statusWeb3": "active"
}

Endpoints

  • Coleções

    • GET /v1/collections

    • GET /v1/collections/:collectionId

    • GET /v1/collections/:collectionId/tokens

  • Gestão de Coleções

    • GET /v1/collections/manage

    • POST /v1/collections/manage

    • GET /v1/collections/:collectionId/manage

    • PATCH /v1/collections/:collectionId/manage

  • Gestão em Massa de Tokens da Coleção

    • GET /v1/collections/:collectionId/tokens/manage

    • POST /v1/collections/:collectionId/tokens/manage

  • Gestão do contrato Web3

    • POST /v1/collections/:collectionId/manage/web3/deploy

    • POST /v1/collections/:collectionId/manage/web3/stop

    • POST /v1/collections/:collectionId/manage/web3/start

    • GET /v1/collections/:collectionId/manage/web3/methods

    • GET /v1/collections/:collectionId/manage/web3/:method-name

    • POST /v1/collections/:collectionId/manage/web3/:method-name

Coleções

Lista as coleções públicas

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

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

Query Parameters

Name
Type
Description

name

String

Nome da Coleção

limit

String

Limite de resultados na busca

offset

String

Posição inicial da busca

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

tags

Array

Tags da Coleção

{
    "collections": [
        {
            "id": "8798wdefs",
            "communityId": "8798wdefs",
            "companyId": "sd21fs5",
            "name": "Airdrop NFT",
            "description": "Distribuição de tokens não fungíveis",
            "startDate": "2021-01-01T00:00:00Z",
            "expirationDate": "2021-12-31T23:59:59Z",
            "type": "airdrop" | "sale" | "auction" | <others>,
            "mainCurrency": "USD | BRL | ETH | MATIC | <others>",
            "tags": ["ambiental", "arte", "empreeendedorismo"]
        }
    ]
  • collections - Array of Objects

    Armazena as informações de cada coleção com a qual o usuário logado tem vínculo.

    • id - String

      Identificador próprio da coleção.

    • name - String

      Nome da coleção.

    • description - String

      Descrição da coleçao

    • communityId - String

      ID da Comunidade

    • companyId - String

      ID da Empresa

    • type - String

      Enumerador de identificação do tipo da coleção ex: airdrop

    • mainCurrency - String

      Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

    • tags - Array

      Conjunto de tags da coleção.

Lista as informações de uma coleção pública

GET https://goblockchain.io/gotokens-api/v1/collections/:collectionId

Nível de permissionamento necessário: qualquer

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

{
    "id": "8798wdefs",
    "communityId": "8798wdefs",
    "companyId": "sd21fs5",
    "name": "Airdrop NFT",
    "description": "Distribuição de tokens não fungíveis",
    "startDate": "2021-01-01T00:00:00Z",
    "expirationDate": "2021-12-31T23:59:59Z",
    "type": "airdrop" | "sale" | "auction" | <others>,
    "mainCurrency": "USD | BRL | ETH | MATIC | <others>",
    "tags": ["ambiental", "arte", "empreeendedorismo"]
}
  • id - String

    Identificador próprio da coleção.

  • name - String

    Nome da coleção.

  • description - String

    Descrição da coleçao

  • communityId - String

    ID da Comunidade

  • companyId - String

    ID da Empresa

  • type - String

    Enumerador de identificação do tipo da coleção ex: airdrop

  • mainCurrency - String

    Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

  • tags - Array

    Conjunto de tags da coleção.

Lista os tokens públicos associadas à uma coleção

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

Nível de permissionamento necessário: qualquer

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Query Parameters

Name
Type
Description

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

tags

Array

Tags do Token

[
    {
      "id":"5hws4eb18t0q",
      "tokenId": "1",
      "collectionId": "321",
      "supply": "10",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "image",
      "owners": [
        {
          "address": "0xer7s89gf4ger987tes978f",
          "quantity": "3"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"]
    },
    {
      "id":"a8rt9red1vb",
      "tokenId": "2",
      "collectionId": "321",
      "supply": "5",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "gif",
      "owners": [
        {
          "address": "0x73w49f8we1fwe849f8fea",
          "quantity": "1"
        },
        {
          "address": "0x36lutsmerkug87fsQ4R",
          "quantity": "2"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"]
    },
]
  • tokens

    Armazena a lista de Tokens de uma coleção.

    • id - String Identificador único de um Token no Banco de Dados.

    • name - String Nome do Token.

    • tokenId - String

      Identificador que guarda a referência ao ID do Token relativo ao seu contrato.

    • collectionId - String

      Identificador que guarda a referência do ID da Coleção de Tokens em nosso Banco de Dados.

    • transactionType - String

      Tipo de transação utilizada na negociação do Token.

    • sale - Object

      Quando um Token é listado como do tipo sale, ele armazena seus dados de preço e moeda principal em um objeto específico.

      • price - String

        Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra ou venda.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação ao campo price.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • auction - Object

      Quando um Token é listado como do tipo auction, ele armazena seus dados de preço inicial e moeda principal em um objeto específico.

      • initialPrice - String

        Valor relativo ao preço inicial de leilão agregado à transação do Token.

      • minIncreasePrice - String

        Valor relativo ao incremento mínimo de cada oferta de leilão de um Token.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação aos campos anteriores.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • supply - String

      Quantidade existente do Token.

    • displayMediaType - String

      Tipo de mídia associada ao Token.

    • displayMediaUrl - String

      Endereço da mídia relacionada ao Token.

    • owners - Array

      Armazena uma lista de proprietários de determinado Token

      • address - String

        Endereço blockchain de um proprietário do Token.

      • quantity - String

        Quantidade de Tokens que determinado proprietário possui.

    • metadata - Object

      Lista de metadados do Token, se houver

    • tags - Array

      Conjunto de tags do Token.

Gestão de Coleções

(JWT) Lista as coleções que o usuário tem direito de edição

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

Nível de autorização necessário: company_admin, company_moderator, community_admin, community_moderator

Caso queira, você pode realizar a pesquisa apenas com o JWT no Header.

Query Parameters

Name
Type
Description

name

String

Nome da Coleção

id

String

ID da Coleção

limit

String

Limite de resultados na busca

offset

String

Posição inicial da busca

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

tags

Array

Tags da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

[
    {
        "id": "8798wdefs",
        "communityId": "8798wdefs",
        "companyId": "sd21fs5",
        "name": "Airdrop NFT",
        "description": "Distribuição de tokens não fungíveis",
        "type": "airdrop" | "sale" | "auction" | <others>,
        "contract": {
            "address": "0x1234567890abcdef12345678sssbcdef12345678",
            "network": "ethereum_mainnet | polygon_mainnet | <others>",
            "pattern" : "ERC20" | "ERC721" | "ERC1155" | <others>,
            "ownerAddress": "0x1234567890abcdef12345678sssbcdef12345678",
            "methods": {
                "deploy": {
                    "args": [/* argumentos do construtor do contrato em ordem e com tipo compatível */],
                },
                "balanceOf": {
                    "methodABI": {/* ABI do método balanceOf */},            
                }        
            },
            "royalties": [
                {
                    "id": "2343d23d234",
                    "address": "0x1234567890abcdef1....78sssbcdef12345678",
                    "percent": 20
                },
                {
                    "id": "2343ds3d234",
                    "address": "0x1234567890abcdef1....78sssbcdef12345678",
                    "percent": 80
                }
            ],
            "split": [
                {
                    "id": "2343d23d234",
                    "address": "0x1234567890abcdef1....78sssbcdef12345678",
                    "percent": 20
                },
                {
                    "id": "2343ds3d234",
                    "address": "0x1234567890abcdef1....78sssbcdef12345678",
                    "percent": 80
                }
            ],
        }    
        "expirationDate": "2021-12-31T23:59:59Z",
        "startDate": "2021-01-01T00:00:00Z",
        "mainCurrency": "USD | BRL | ETH | MATIC | <others>",
        "tags": ["ambiental", "arte", "empreeendedorismo"],
        "status": "private",
        "statusWeb3": "private"
    }
]
  • collections - Array of Objects

    Armazena as informações de cada coleção com a qual o usuário logado tem vínculo.

    • id - String

      Identificador próprio da coleção.

    • communityId - String

      ID da Comunidade

    • companyId - String

      ID da Empresa

    • name - String

      Nome da coleção.

    • description - String

      Descrição da coleçao

    • type - String

      Enumerador de identificação do tipo da coleção ex: airdrop

    • contract

      • network - String

        Enumerador de identificação da rede ex: ethereum_mainnet

      • address - String

        Endereço do contrato na rede blockchain

      • pattern - String

        Tipo base de contrato utilizado ex: ERC721A

      • methods - Map<string, object>

        Lida de métodos Web3 Disponíveis no contrato

      • royalties - Array<object>

        Lista de distribuição de royalties

      • split - Array<string>

        Lista de split de pagamentos

      • ownerAddress - String

        Endereço do dono do contrato.

    • expirationDate - Date

      Data limite de operação do contrato, utilizado quando data limite nao for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Encerramento de um Leilão ou Airdrop

    • startDate - Date

      Data de inicio das operação do contrato, utilizado quando data de inicio não for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Inicio de um Leilão ou Airdrop

    • mainCurrency - String

      Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

    • tags - Array

      Conjunto de tags da coleção.

    • status - String

      Status utilizado para ativar/desativar todas as operaçoes do contrato, não reflete o status da web3

    • statusWeb3 - String

      Status do contrato na blockchain, diferentes tipos de contrato podem apresentar diferentes status, alguns contratos não possuem status web3 e são exibidos como 'active'. ex: active, paused, closed, destroyed.

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT) Cria coleção para a qual tem a devida autorização

POST https://goblockchain.io/gotokens-api/v1/collections/manage

Nível de autorização necessário: company_admin, company_moderator, community_admin

Headers

Name
Type
Description

authorization*

Bearer

JWT

Request Body

Name
Type
Description

name*

String

Nome da Coleção

description*

String

Descrição da Coleção

communityId*

String

ID da Comunidade

companyId*

String

ID da Empresa

contract*

Object

Dados relativos ao contrato

type*

String

Tipo de distribuição dos Tokens da Coleção

expirationDate

DateTime

Data de fim da distribuição de Tokens da Coleção

startDate

DateTime

Data de inicio da distribuição de Tokens da Coleção

mainCurrency

String

Moeda principal da Coleção

status*

String

Status de publicação da Coleção

statusWeb3*

String

Status de publicação da Coleção na blockchain

tags

Array

Tags da Coleção

image*

String

URL para a imagem de capa da Coleção

symbol*

String

Símbolo da Coleção

{
    "id": "8798wdefs",
    "communityId": "8798wdefs",
    "companyId": "sd21fs5",
    "name": "Airdrop NFT",
    "description": "Distribuição de tokens não fungíveis",
    "symbol":"Um símbolo para o contrato",
    "image":"URL de uma imagem para ficar como capa da coleção",
    "type": "airdrop" | "sale" | "auction" | <others>,
    "contract": {
        "address": "0x1234567890abcdef12345678sssbcdef12345678",
        "network": "ethereum_mainnet" | "polygon_mainnet" | <others>,
        "pattern" : "ERC20" | "ERC721" | "ERC1155" | <others>,
        "ownerAddress": "0x1234567890abcdef12345678sssbcdef12345678",
        "methods": {
            "deploy": {
                "args": [/* argumentos do construtor do contrato em ordem e com tipo compatível */],
            },
            "balanceOf": {
                "methodABI": {/* ABI do método balanceOf */},            
            }        
        },
        "royalties": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
        "split": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
    }    
    "expirationDate": "2021-12-31T23:59:59Z",
    "startDate": "2021-01-01T00:00:00Z",
    "mainCurrency": "USD" | "BRL" | "ETH" | "MATIC" | <others>,
    "tags": ["ambiental", "arte", "empreeendedorismo"],
    "status": "private",
    "statusWeb3": "private"
    }
}
  • id - String

    Identificador próprio da coleção.

  • communityId - String

    ID da Comunidade

  • companyId - String

    ID da Empresa

  • name - String

    Nome da coleção.

  • description - String

    Descrição da coleçao

  • symbol - String

    Símbolo da coleçao

  • image - String

    URL da imagem de capa da coleção

  • type - String

    Enumerador de identificação do tipo da coleção ex: airdrop

  • contract

    • network - String

      Enumerador de identificação da rede ex: ethereum_mainnet

    • address - String

      Endereço do contrato na rede blockchain

    • pattern - String

      Tipo base de contrato utilizado ex: ERC721A

    • methods - Map<string, object>

      Lida de métodos Web3 Disponíveis no contrato

    • royalties - Array<object>

      Lista de distribuição de royalties

    • split - Array<string>

      Lista de split de pagamentos

    • ownerAddress - String

      Endereço do dono do contrato.

  • expirationDate - Date

    Data limite de operação do contrato, utilizado quando data limite nao for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Encerramento de um Leilão ou Airdrop

  • startDate - Date

    Data de inicio das operação do contrato, utilizado quando data de inicio não for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Inicio de um Leilão ou Airdrop

  • mainCurrency - String

    Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

  • tags - Array

    Conjunto de tags da coleção.

  • status - String

    Status utilizado para ativar/desativar todas as operaçoes do contrato, não reflete o status da web3

  • statusWeb3 - String

    Status do contrato na blockchain, diferentes tipos de contrato podem apresentar diferentes status, alguns contratos não possuem status web3 e são exibidos como 'active'. ex: active, paused, closed, destroyed.

{
    // Response
}
{
    // Response
}

(JWT) Lista as informações de uma coleção

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

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

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

{
    "id": "8798wdefs",
    "communityId": "8798wdefs",
    "companyId": "sd21fs5",
    "name": "Airdrop NFT",
    "description": "Distribuição de tokens não fungíveis",
    "type": "airdrop" | "sale" | "auction" | <others>,
    "contract": {
        "address": "0x1234567890abcdef12345678sssbcdef12345678",
        "network": "ethereum_mainnet" | "polygon_mainnet" | <others>,
        "pattern" : "ERC20" | "ERC721" | "ERC1155" | <others>,
        "ownerAddress": "0x1234567890abcdef12345678sssbcdef12345678",
        "methods": {
            "deploy": {
                "args": [/* argumentos do construtor do contrato em ordem e com tipo compatível */],
            },
            "balanceOf": {
                "methodABI": {/* ABI do método balanceOf */},            
            }        
        },
        "royalties": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
        "split": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
    }    
    "expirationDate": "2021-12-31T23:59:59Z",
    "startDate": "2021-01-01T00:00:00Z",
    "mainCurrency": "USD" | "BRL" | "ETH" | "MATIC" | <others>,
    "tags": ["ambiental", "arte", "empreeendedorismo"],
    "status": "private",
    "statusWeb3": "private"
    }
}
  • id - String

    Identificador próprio da coleção.

  • communityId - String

    ID da Comunidade

  • companyId - String

    ID da Empresa

  • name - String

    Nome da coleção.

  • description - String

    Descrição da coleçao

  • type - String

    Enumerador de identificação do tipo da coleção ex: airdrop

  • contract

    • network - String

      Enumerador de identificação da rede ex: ethereum_mainnet

    • address - String

      Endereço do contrato na rede blockchain

    • pattern - String

      Tipo base de contrato utilizado ex: ERC721A

    • methods - Map<string, object>

      Lida de métodos Web3 Disponíveis no contrato

    • royalties - Array<object>

      Lista de distribuição de royalties

    • split - Array<string>

      Lista de split de pagamentos

    • ownerAddress - String

      Endereço do dono do contrato.

  • expirationDate - Date

    Data limite de operação do contrato, utilizado quando data limite nao for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Encerramento de um Leilão ou Airdrop

  • startDate - Date

    Data de inicio das operação do contrato, utilizado quando data de inicio não for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Inicio de um Leilão ou Airdrop

  • mainCurrency - String

    Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

  • tags - Array

    Conjunto de tags da coleção.

  • status - String

    Status utilizado para ativar/desativar todas as operaçoes do contrato, não reflete o status da web3

  • statusWeb3 - String

    Status do contrato na blockchain, diferentes tipos de contrato podem apresentar diferentes status, alguns contratos não possuem status web3 e são exibidos como 'active'. ex: active, paused, closed, destroyed.

Código
Descrição

1

Acesso restrito ao recurso.

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

(JWT) Altera coleção para a qual tem a devida autorização

PATCH https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage

Nível de autorização necessário: company_admin, company_moderator, community_admin, community_moderator

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Request Body

Name
Type
Description

name

String

Nome da Coleção

description

String

Descrição da Coleção

communityId

String

ID da Comunidade

companyId

String

ID da Empresa

contract

Object

Dados relativos ao contrato

type

String

Tipo de distribuição dos Tokens da Coleção

expirationDate

DateTime

Data de fim da distribuição de Tokens da Coleção

startDate

DateTime

Data de inicio da distribuição de Tokens da Coleção

mainCurrency

String

Moeda principal da Coleção

status

String

Status de publicação da Coleção

statusWeb3

String

Status de publicação da Coleção na blockchain

tags

Array

Tags da Coleção

{
    "id": "8798wdefs",
    "communityId": "8798wdefs",
    "companyId": "sd21fs5",
    "name": "Airdrop NFT",
    "description": "Distribuição de tokens não fungíveis",
    "type": "airdrop" | "sale" | "auction" | <others>,
    "contract": {
        "address": "0x1234567890abcdef12345678sssbcdef12345678",
        "network": "ethereum_mainnet" | "polygon_mainnet" | <others>,
        "pattern" : "ERC20" | "ERC721" | "ERC1155" | <others>,
        "ownerAddress": "0x1234567890abcdef12345678sssbcdef12345678",
        "methods": {
            "deploy": {
                "args": [/* argumentos do construtor do contrato em ordem e com tipo compatível */],
            },
            "balanceOf": {
                "methodABI": {/* ABI do método balanceOf */},            
            }        
        },
        "royalties": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
        "split": [
            {
                "id": "2343d23d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 20
            },
            {
                "id": "2343ds3d234",
                "address": "0x1234567890abcdef1....78sssbcdef12345678",
                "percent": 80
             }
        ],
    }    
    "expirationDate": "2021-12-31T23:59:59Z",
    "startDate": "2021-01-01T00:00:00Z",
    "mainCurrency": "USD" | "BRL" | "ETH" | "MATIC" | <others>,
    "tags": ["ambiental", "arte", "empreeendedorismo"],
    "status": "private",
    "statusWeb3": "private"
    }
}
  • id - String

    Identificador próprio da coleção.

  • communityId - String

    ID da Comunidade

  • companyId - String

    ID da Empresa

  • name - String

    Nome da coleção.

  • description - String

    Descrição da coleçao

  • type - String

    Enumerador de identificação do tipo da coleção ex: airdrop

  • contract

    • network - String

      Enumerador de identificação da rede ex: ethereum_mainnet

    • address - String

      Endereço do contrato na rede blockchain

    • pattern - String

      Tipo base de contrato utilizado ex: ERC721A

    • methods - Map<string, object>

      Lida de métodos Web3 Disponíveis no contrato

    • royalties - Array<object>

      Lista de distribuição de royalties

    • split - Array<string>

      Lista de split de pagamentos

    • ownerAddress - String

      Endereço do dono do contrato.

  • expirationDate - Date

    Data limite de operação do contrato, utilizado quando data limite nao for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Encerramento de um Leilão ou Airdrop

  • startDate - Date

    Data de inicio das operação do contrato, utilizado quando data de inicio não for definida no token, diferentes contratos podem utilziar diferentes estratégias com essa propriedade ex: Inicio de um Leilão ou Airdrop

  • mainCurrency - String

    Moeda aceita pelo contrato, todos os métodos de pagamento devem considerar a cotação dessa moeda para conversão do valor.

  • tags - Array

    Conjunto de tags da coleção.

  • status - String

    Status utilizado para ativar/desativar todas as operaçoes do contrato, não reflete o status da web3

  • statusWeb3 - String

    Status do contrato na blockchain, diferentes tipos de contrato podem apresentar diferentes status, alguns contratos não possuem status web3 e são exibidos como 'active'. ex: active, paused, closed, destroyed.

{
    // Response
}
{
    // Response
}

Gestão em Massa de Tokens da Coleção

Lista todos os tokens associadas à uma coleção

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

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

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Query Parameters

Name
Type
Description

limit

String

Limite de resultados na busca

offset

String

Quantidade de resultados para avançar da busca

tags

Array

Tags do Token

[
    {
      "id":"5hws4eb18t0q",
      "tokenId": "1",
      "collectionId": "321",
      "supply": "10",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "image",
      "owners": [
        {
          "address": "0xer7s89gf4ger987tes978f",
          "quantity": "3"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
      "status": "public",
      "statusWeb3": "deployed"
    },
    {
      "id":"a8rt9red1vb",
      "tokenId": "2",
      "collectionId": "321",
      "supply": "5",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "gif",
      "owners": [
        {
          "address": "0x73w49f8we1fwe849f8fea",
          "quantity": "1"
        },
        {
          "address": "0x36lutsmerkug87fsQ4R",
          "quantity": "2"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
      "status": "private",
      "statusWeb3": "private"
    },
]
  • tokens

    Armazena a lista de Tokens de uma coleção.

    • id - String Identificador único de um Token no Banco de Dados.

    • name - String Nome do Token.

    • tokenId - String

      Identificador que guarda a referência ao ID do Token relativo ao seu contrato.

    • collectionId - String

      Identificador que guarda a referência do ID da Coleção de Tokens em nosso Banco de Dados.

    • transactionType - String

      Tipo de transação utilizada na negociação do Token.

    • sale - Object

      Quando um Token é listado como do tipo sale, ele armazena seus dados de preço e moeda principal em um objeto específico.

      • price - String

        Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra ou venda.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação ao campo price.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • auction - Object

      Quando um Token é listado como do tipo auction, ele armazena seus dados de preço inicial e moeda principal em um objeto específico.

      • initialPrice - String

        Valor relativo ao preço inicial de leilão agregado à transação do Token.

      • minIncreasePrice - String

        Valor relativo ao incremento mínimo de cada oferta de leilão de um Token.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação aos campos anteriores.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • supply - String

      Quantidade existente do Token.

    • displayMediaType - String

      Tipo de mídia associada ao Token.

    • displayMediaUrl - String

      Endereço da mídia relacionada ao Token.

    • owners - Array

      Armazena uma lista de proprietários de determinado Token

      • address - String

        Endereço blockchain de um proprietário do Token.

      • quantity - String

        Quantidade de Tokens que determinado proprietário possui.

    • metadata - Object

      Lista de metadados do Token, se houver

    • tags - Array

      Conjunto de tags do Token.

    • status - String

      Armazena o status da publicação do Token. Pode ser public ou private.

    • statusWeb3 - String

      Armazena o status da publicação do Token na blockchain. Pode ser deployed ou private.

(JWT) Cadastro de tokens em massa para uma coleção

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/tokens/manage

Nível de autorização necessário: company_admin, company_moderator, community_admin

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Request Body

Name
Type
Description

tokens*

Array

Lista com tokens a serem cadastrados

[
    {
      "id":"5hws4eb18t0q",
      "tokenId": "1",
      "collectionId": "321",
      "supply": "10",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "image",
      "owners": [
        {
          "address": "0xer7s89gf4ger987tes978f",
          "quantity": "3"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
      "status": "private",
      "statusWeb3": "private"
    },
    {
      "id":"a8rt9red1vb",
      "tokenId": "2",
      "collectionId": "321",
      "supply": "5",
      "displayMediaUrl": "http://url.com/token",
      "displayMediaType": "gif",
      "owners": [
        {
          "address": "0x73w49f8we1fwe849f8fea",
          "quantity": "1"
        },
        {
          "address": "0x36lutsmerkug87fsQ4R",
          "quantity": "2"
        }
      ],
      "transactionType": "airdrop",
      "tags": ["ambiental", "arte", "empreeendedorismo"],
      "status": "private",
      "statusWeb3": "private"
    },
]
  • tokens

    Armazena a lista de Tokens adicionados à uma coleção.

    • id - String Identificador único de um Token no Banco de Dados.

    • name - String Nome do Token.

    • tokenId - String

      Identificador que guarda a referência ao ID do Token relativo ao seu contrato.

    • collectionId - String

      Identificador que guarda a referência do ID da Coleção de Tokens em nosso Banco de Dados.

    • transactionType - String

      Tipo de transação utilizada na negociação do Token.

    • sale - Object

      Quando um Token é listado como do tipo sale, ele armazena seus dados de preço e moeda principal em um objeto específico.

      • price - String

        Valor relativo ao preço agregado à transação do Token, seja para uma operação de compra ou venda.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação ao campo price.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • auction - Object

      Quando um Token é listado como do tipo auction, ele armazena seus dados de preço inicial e moeda principal em um objeto específico.

      • initialPrice - String

        Valor relativo ao preço inicial de leilão agregado à transação do Token.

      • minIncreasePrice - String

        Valor relativo ao incremento mínimo de cada oferta de leilão de um Token.

      • decimals - String

        Número de casas decimais que deve ser considerado em relação aos campos anteriores.

      • currency - String

        Nome da moeda utilizada para o pagamento da transação, podendo ser relativo à moedas tradicionais ou criptomoedas.

    • supply - String

      Quantidade existente do Token.

    • displayMediaType - String

      Tipo de mídia associada ao Token.

    • displayMediaUrl - String

      Endereço da mídia relacionada ao Token.

    • owners - Array

      Armazena uma lista de proprietários de determinado Token

      • address - String

        Endereço blockchain de um proprietário do Token.

      • quantity - String

        Quantidade de Tokens que determinado proprietário possui.

    • metadata - Object

      Lista de metadados do Token, se houver

    • tags - Array

      Conjunto de tags do Token.

    • status - String

      Armazena o status da publicação do Token. Pode ser public ou private.

    • statusWeb3 - String

      Armazena o status da publicação do Token na blockchain. Pode ser deployed ou private.

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

Gestão do contrato Web3

(JWT/Wallet) Deploy de Contrato na Web3

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/deploy

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. Caso o contrato não possua campos próprios para owner no construtor, essa carteira será o primeiro owner do contrato.

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT/Wallet) Mint em lote de Tokens na Web3

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/mint-batch

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. Caso o método não possua campos próprios para owner dos tokens recém criados, eles serão propriedade do contrato e será gerenciado pela carteira do owner do contrato.

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT/Wallet) Pausar um contrato na Web3

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/stop

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

É necessário um carteira com saldo vinculada ao usuário. É necessário que o contrato possua esse método e a carteira precisa ter permissão de execução do método no contrato

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT/Wallet) Libera um contrato pausado na Web3

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/start

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

É necessário um carteira com saldo vinculada ao usuário, é necessário que o contrato possua esse método e a carteira precisa ter permissão de execução do método no contrato.

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT) Lista de métodos web3 disponíveis no contrato

GET https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/methods

Nível de autorização necessário: company_admin, community_admin

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

{
    "methods": {
        "balanceOf": {
            "methodABI": {/* ABI do método balanceOf */},
            "args": {
                "name": "walletAddress",
                "type": "string" 
        }        
    },
}
  • methods - Array of Objects

    Armazena as informações de cada método web3 disponível no contrato, com exceção do construtor

    • :methodName - String (Nome do médoto web3)

      • methodAbi - Array of Objects ABI do método web3

      • args - Array of Objects

        Lista de argumentos do método

        • name Nome do parâetro

        • type Tipo do parâmetro

Código
Descrição

1

Acesso restrito ao recurso.

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

(JWT) Executa qualquer método de leitura do contrato diretamente na Web3

GET https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/:method-name

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

Diferentes métodos possuem diferentes parâmetros de entrada.

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

(JWT/Wallet) Executa qualquer método de escrita do contrato diretamente na Web3

POST https://goblockchain.io/gotokens-api/v1/collections/:collectionId/manage/web3/:method-name

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

É necessário um carteira com saldo vinculada ao usuário, é necessário que o contrato possua esse método, e a carteira precisa ter permissão de execução do método no contrato.

Diferentes métodos possuem diferentes parâmetros de entrada.

Path Parameters

Name
Type
Description

collectionId*

String

ID da Coleção

Headers

Name
Type
Description

authorization*

Bearer

JWT

Código
Descrição

1

Credenciais de acesso necessárias. Por favor, execute sua autenticação na plataforma.

Código
Descrição

10

Credenciais de acesso expiradas. Por favor, execute novamente sua autenticação na plataforma.

PreviousComunidadeNextToken

Last updated 2 years ago

Was this helpful?

⚙️