Skip to main content

Standards

Besides ERC721/NEP171 standard there are other standards available as base contracts. Toolblox is using OpenZeppelin version 4.9.3 contracts.

Overview of each standard

Here is a brief overview of each standard and a link to more reference material.

  • Toolblox Workflow (mandatory) - adds convenience methods like paged results or key based finders to workflow.
  • Ownable (mandatory) - makes the user who deploys the contract the owner of the contract. Owner is able to pause the contract (in case contract is OwnerPausable or ERC721Pausable), configure global variables or add members to roles (if there exists any 'restricted user' type attributes). Owner is able to transfer away the ownership to another user or to no user, making the smart-contract not ownable anymore.
  • OpenZeppelin Erc721 - adds support for workflow item to be treated as NFTs.
  • OpenZeppelin Erc721Enumerable - makes it possible to list all tokens owned by any user.
  • OpenZeppelin Erc721EPausable - makes it possible for the smart-contract owner (Ownable) to pause NFT transfers.
  • OpenZeppelin ReentrancyGuard - makes it impossible to have reentrancy attacks. It is strongly advisable to add this base standard if the smart-contract calls any external smart contract or performs any payments.
  • Toolblox OwnerPausable - adds pausability to all smart-contract methods. Great in case you want to as the owner temporarly stop all activity to resolve some outstanding issue.
  • Toolblox Non-Transferrable SBT - makes the ERC721 token (NFT) as soul-bound token (SBT). This means that tokens cannot be transferred - as soon as an item is created it belongs to one user, the holder. A standard suitable for issuing diplomas, certificates and the like.