# Implementing NCT in an NFT Project
**Technical Details**
* NCT is a standard ERC20 token with minting functionality
* NCT is the native naming token used by Hashmasks.
* Verified Contract Address: https://etherscan.io/address/0x8a9c4dfe8b9d8962b31e4e16f8321c44d48e246e
## Smart Contract Implementation
**Parameters:**
1. Cost of name change: **N** amount of NCT
2. Your NFT contract: **Z**
**Implementation Overview:**
* In the name change function of your NFT contract **Z**, transferFrom function on the NCT contract needs to be called with **msg.sender** as ***from***, **Z** address as ***to*** and **N** as ***amount***.
* (If you decide to burn the NCT) In the next step, call the **ERC20 burn function** on the NCT contract with **N** as the ***amount***.
* Write the remaining logic for naming the NFT. You may need to write additional logic before calling the **transferFrom**, depending on your requirements.
* Check https://etherscan.io/address/0xc2c747e0f7004f9e8817db2ca4997657a7746928#code#F7#L311 for reference on how Hashmasks does it.
## UX Implementation
Frontend implementation is also pretty straight forward. Here's the flow in a nutshell.
* User calls approve function with **Z** as ***spender*** and **N** as ***amount***
* User calls the change name function on **Z** with the new name and tokenId (Their NFT index) as parameters.