# Build a realbits NFT

By [realbits-lab](https://paragraph.com/@realbits-lab) · 2023-01-07

---

Realbits is developing NFT for renting and prompting images. This time, we will describe the normal NFT building process.

Realbits relies on OpenZeppelin open source for building NFT. OpenZeppelin provides a complete solution for NFT smart contracts, as well as a wizard for making them. Realbits uses Mintable with Auto Increment Ids, Burnable, Pausable, Enumerable, and Roles option. Realbits has three special functions.

First function is Roles of access control. Realbits uses DEFAULT\_ADMIN\_ROLE, PAUSER\_ROLE, MINTER\_ROLE, and SETTER\_ROLE. MINTER\_ROLE gives an account the ability to mint NFT contracts. If an account has DEFAULT\_ADMIN\_ROLE, it can grant or revoke the role to other accounts.

![Each role constant variables](https://storage.googleapis.com/papyrus_images/d85c79c558d21d36a54299cc4ea0ce5a726a1e83d4260e2f02c6e6ea1e012f91.png)

Each role constant variables

The second function is safeMintAmount. Miners can use this function to mint NFT by amount at a time.

![Mint by amount function](https://storage.googleapis.com/papyrus_images/8c84d53e558514708101ae30e3a2b64f53673443e721bd60ebe86e871f25e7e2.png)

Mint by amount function

Third one is setBaseURI. Setter who has SETTER\_ROLE can set base uri of token.

![](https://storage.googleapis.com/papyrus_images/307b5ef12dce41f8b5052fbbc4bade6b50badc7208516a35e18fc9630447b146.png)

Realbits will soon release this NFT source code on GitHub and start to release NFT with this smart contract.

[https://realbits-lab.github.io/](https://realbits-lab.github.io/)

---

*Originally published on [realbits-lab](https://paragraph.com/@realbits-lab/build-a-realbits-nft)*
