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!


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>


The endpoint to be called is:


and it must be a POST request.


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';


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


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.


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.


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