Skip to main content

Getting started building Tokens & NFTs

The LUKSO ecosystem offers smart contract developers a lot of new standards and tools to build powerful, modular, and standardized blockchain applications.

This page will guide you in setting up your development environment to build and deploy tokens and NFTs on LUKSO.


For more low level information about the Tokens Contracts (LSP7 and LSP8), see the dedicated contracts section.

Playground Repository​

In the following guides, we will use the lukso-playground repository with a full Hardhat setup, including ready-to-go network configurations, sample contracts, and scripts to deploy and verify LSP-based contracts on LUKSO.

LUKSO Playground Hardhat

This repository uses the bun toolkit to manage packages and run scripts. Make sure to install it first.

Clone the Playground Repository​

First, clone the playground repository and navigate into the smart-contracts-hardhat folder:

git clone
cd lukso-playground/smart-contracts-hardhat

To install all the dependencies, run the below command:

bun install

You can then go ahead to create a .env file within the root folder of the Hardhat repository and the following contents:


The private key will be used to deploy the smart contracts to the network and can either be a standalone Externally Owned Account or a controller of a Universal Profile. If you want to deploy the smart contracts as a Universal Profile, you also have to provide the related address of the Universal Profile.


Never share your private key that you will put into the .env file!


To pay for the gas deployment fees, you will need LYXt. You can request LYXt from the LUKSO Testnet faucet.

We now have a base Hardhat setup that we can use to develop and deploy our smart contracts.

Run locally​

Run the TypeScript code of one file within the terminal using bun.

bun file-path/script.ts