# Implementation of sellable NFT

**URL:** <https://forum.openzeppelin.com/t/implementation-of-sellable-nft/5517>\
**Category:** Contracts\
**Created:** [January 22, 2021, 5:17pm UTC](https://forum.openzeppelin.com/t/implementation-of-sellable-nft/5517 "2021-01-22T17:17:23Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![abcoathup](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.openzeppelin.com/abcoathup/32/415_2.png) [@abcoathup](https://forum.openzeppelin.com/u/abcoathup)\
**Post date:** [January 25, 2021, 1:51am UTC](https://forum.openzeppelin.com/t/implementation-of-sellable-nft/5517/2 "2021-01-25T01:51:42Z")

</div>

Hi @Aizea,

Welcome to the community 👋

> [@Aizea](#):
>
> I am wondering if there are any immediate and obvious flaws / security risks in my code.

⚠ I am a Community Manager and not a Security Researcher. I would recommend appropriate testing and auditing.

Thoughts from my perspective as a Community Manager:

My preference is to only include functionality in a token that is required for the life of the token.  
I would separate the purchase functionality from the token, as you are only selling tokens up until a fixed cap.

The price of the token is fixed, which may be an issue depending on the expected life of the sale. The fiat value of 0.2 Ether could drastically change (up or down) over a longer period of time.

You are currently setting a token URI when you mint. This increases the cost of minting, when all you appear to be doing is using a URI combining the baseURI, the token ID and `metadata.json`, e.g. `https://baseURI.com/token/1/metadata.json`. I would look at changing the naming scheme on your server to reduce this cost. See the following example:

> <https://github.com/OpenZeppelin/openzeppelin-contracts/blob/6be5ffe54fc8982b7c1d0f45d4cb7bbd313107cd/contracts/presets/ERC721PresetMinterPauserAutoId.sol#L62>

Also look at the example in: [Create an NFT and deploy to a public testnet, using Truffle](https://forum.openzeppelin.com/t/create-an-nft-and-deploy-to-a-public-testnet-using-truffle/2961)

---

_[View the full topic](https://forum.openzeppelin.com/t/implementation-of-sellable-nft/5517)._
