Skip to content

Create Collection

🚧
This section is under construction.

Here you can find all needed data to create a collection on Bcode using APIs.

In order to create a collection you need to have an active subscription with us and you have to use the API key you generated on Bcode (under profile section) or through /generateJWT endpoint

⚠️
Some API may require a subscription to the Bcode - Databox software!

Usage

The api services are running on:

  • Production
  • Dev

In order to create an authenticated request, you have to add this in your request header:

    {
        "Authorization": <YOUR-API-KEY>
    }

Endpoint

The endpoint to be called is:

/createContract

and it must be a POST request.

Params

Our collections try to satisfy every needed, so there are a lot of params to be setted. But we tryed to set some of them as default in order to let you send a pretty small JSON with only basic infos.

The JSON below represents all params we accept and, for each, you will be notified if it is required or not. Not required have, as Typescript annotation, a ? before their type.

Every eventual value restriction or explaination is listed below.

{
  description: string;
  expiration?: number;
  expirationFrom?: 'mint' | 'contract';
  image?: string;
  maxTokensPerUser: number;
  name: string; // specials not accepted and can't start with number
  owner?: string;
  qrCodeDrop: 0 | 1 | 2;
  tag?: string[];
  tokenBurn: boolean;
  transfer: 'creator' | 'none' | 'owners' | 'creator&owner';
  transferOwnership: boolean;
  update: 'creator' | 'none';
}

description

Your collection description. It should explain what your collection is used for.

expiration

If you want to your NFTs "expire" after a specified number of days, you should set this param. expiration doesn't mean they will be burnt, but it means ownership verification will fail. You can imagine this NFT expiration as a Bank Card expiration.

It must be an integer value which represents the number of days for expiration.

expirationFrom

We let you specify if expiration is from mint or collection creation.

  • mint: after X days from NFT mint, the token will expire. It is usefull if you use them as a subscription card.
  • contract: NFT will expire and will not be mintable after X days from contract creation.

It is usefull if you use them as an event ticket.

image

This field is usefull if you want to assign an image to your collection. It should be a link to the image

maxTokensPerUser: number;

At the moment we set a max cap for NFTs owned by every user. This let companies prevent users from having more tickets for the same event. If you don't want to limit users, you can type a big number (i.e. the sum of all the nfts quantity you are creating)

name: string; // specials not accepted and can't start with number

This is the name of your collection. It must be a string and it can't:

  • contain specials
  • start with a number

owner?: string;

It represents the address of the owner of the contract. It is not required since as not specified the tool will insert the address of the user sending the request.

qrCodeDrop: 0 | 1 | 2;

Bcode supports 3 NFTs' distribution:

  • 0: the company will mint every NFT directly to the users' accounts
  • 1: we generate a QRcode for each NFT (1:1 association). It is usefull if you want to send

the QRcodes by email to users. 1:1 association let the company be sure that every QRcode will be used once

  • 2: we generate one QRcode for all the NFTs. If you create many categories, when the user redeems

he will receive the first available NFT.

tag?: string[];

In order to better trace collections on Bcode, we let our users write up to 3 tags for each collections.

tokenBurn: boolean;

You can choose if your NFTs may be burnt or not

transfer: 'creator' | 'none' | 'owners' | 'creator&owner';

You can choose who can transfer the NFTs:

  • creator: only the collection creator (address specified as owner) can transfer the NFTs, even if he is not the owner of the NFT
  • none: transfer is disabled
  • owners: only who owns the NFT can transfer it
  • creator&owner: the owner of the contract AND the owner of the NFT can transfer one NFT

transferOwnership: boolean;

You can choose if the collection owner may transfer his ownership to another address

update: 'creator' | 'none';

You can choose who can update the NFTs:

  • creator: only the collection creator (address specified as owner) can update the NFTs, even if he is not the owner of the NFT
  • none: update is disabled