@ -19,18 +19,20 @@ In this tutorial, you will create your own non-fungible token (NFT) on [Bitcoin]
NFTs have desirable [characteristics](/write-smart-contracts/tokens) like uniqueness, programmability, and permanent records ownership. Very simplfied, an NFT is a piece of information that is unique. A common example of an NFT might be a piece of digital art.
> To experience collecting and owning an NFT, try out [our SWAG NFT app]().
> To experience collecting and owning an NFT, try out the [SWAG NFT app](https://stacks-nft-onboarding.vercel.app/).
Clarity offers native support for token creation and management. On top of that, the Stacks ecosystem adopted a standard for NFTs (see [SIP009](https://github.com/stacksgov/sips/pull/3)). With these in place, it becomes very easy for anyone to create NFTs.
Clarity offers native support for token creation and management. On top of that, the Stacks ecosystem adopted a standard for NFTs (see [SIP009](https://github.com/stacksgov/sips/blob/main/sips/sip-009/sip-009-nft-standard.md)). With these in place, it becomes very easy for anyone to create NFTs.
By the end of this tutorial, you:
By the end of this tutorial, you will ...
- Have a working Clarity smart contract based on the SIP009 standard
- Deploy a contract to the Stacks 2.0 blockchain and call its public methods
- Can collect a very rare SWAG NFT - limited to only 100 pieces!
- Deploy a contract to the Stacks 2.0 testnet and call a public method
- Claim a very rare SWAG NFT - limited to only 100 pieces!
## Prerequisites
Install [Stacks Wallet for web](https://www.hiro.so/wallet/install-web) - a Firefox/Chrome extension that will allow you manage your wallet and confirm transactions from within your browser.
## Step 1: obtain STX for testing
Uploading and calling smart contracts requires you to pay network fees to process the transactions. You need to get some testnet tokens, so you can pay the fees in the next steps.
@ -39,7 +41,9 @@ The **STX faucet** allows you request testnet tokens. To run the faucet, open up

Once the faucet call was send, you will see a confirmation: "STX coming your way shortly!". You need to wait up to a minute for the transaction to complete.
Once the faucet call was send, you will see a confirmation: "STX coming your way shortly!". You need to wait up to 2 minutes for the transaction to complete.
-> You have to wait until the transaction is completed on the testnet. The testnet has a transaction processing time ("target block time") of 2 minutes. The waiting period on the mainnet is close to 10 minutes.
Once the transaction is successfully processed, you can see that your new balance on the right side of the Sandbox view.
@ -47,34 +51,36 @@ Once the transaction is successfully processed, you can see that your new balanc
Open up the [Sandbox deploy view](https://explorer.stacks.co/sandbox/deploy?chain=testnet). You should see a Clarity code editor with a "hello world" code snippet. Replace the entire code with the following:
!> Make sure to replace `MY-OWN-NFT` with your own token name!
!> Make sure to replace `<NFT_NAME>` with your own token name!
Next, set a name for your contract. The Sandbox creates a random name, but we should replace it for easier future reference. You can use the same name you used to replace `<NFT_NAME>`.
Next, set a name for your contract. The Sandbox creates a random name, but we should replace it for easier future reference. You can use the same name you used to replace `MY-OWN-NFT`.
With the contract code and name defined, you can hit the "Deploy" button. It will open the Stacks Web Wallet: