Launch a QRC20 token from your wallet
Updated 6 min read
Launching a token normally means writing a smart contract, setting up a compiler toolchain, and deploying by hand. On QRL 2.0 you can skip all of that. MyQRLWallet includes a built in token creator that deploys a QRC20 token for you through an on-chain factory contract. You fill in a form, confirm one transaction, and walk away with the contract address of your own token.
This tutorial covers the whole path: what a QRC20 token is, what to prepare before you start, every field in the creation form, and how to find your new token on ZondScan afterward, complete with its holder list and transfer history.
Everything here runs on the QRL 2.0 public testnet, which makes it the ideal place to practice. Testnet coins have no monetary value, so a mistake costs nothing. The same flow will apply on mainnet once the migration from the legacy chain completes.
What is a QRC20 token?
The QRL 2.0 execution layer is EVM compatible, so it uses the same smart contract token model as other EVM chains. A QRC20 token implements the ERC20 interface: functions like balanceOf, transfer, approve, and totalSupply, plus a Transfer event emitted on every movement. On QRL the standard is called QRC20, and ZondScan labels these contracts QRC-20.
A QRC20 token is itself a smart contract. Your balance is an entry in that contract's storage, and every transfer emits an event that explorers index. That shared interface is why any wallet or explorer that understands the standard can display your token's name, symbol, decimals, and balances without special support.
Smart contracts on QRL 2.0 are written in Hyperion, a close relative of Solidity. If you want to write and deploy contracts yourself, the deploy and verify guide covers that route. This tutorial takes the shortcut: a factory contract that is already deployed writes the token for you.
Before you start
You need three things:
- A wallet account with an imported seed. Token creation signs a contract call directly, so the wallet needs access to your signing seed. Accounts connected through the browser extension or a paired mobile signer cannot create tokens yet; the form tells you so and keeps the submit button disabled. If you are new to MyQRLWallet, follow Create a QRL wallet first.
- Testnet Quanta for gas. Deployment is a normal transaction and burns gas like any other. The ZondScan faucet funds a fresh address in under a minute; see Get testnet Quanta for the walkthrough. The factory itself charges no fee, so gas is the entire cost.
- A name and symbol.Something like "My Test Token" with the symbol "MTT". Both fields are required, and the wallet screens them for offensive language.
Create the token step by step
Open the token creator
Sign in at qrlwallet.com, open the Tokens panel, click the plus button, and choose Create New Token. A form titled "Create New QRC20 Token" appears.
Enter the name and symbol
The name is the full label wallets and explorers display. The symbol is the short ticker shown next to amounts. Both are fixed at deployment, so check the spelling before you continue.
Set the initial supply and decimals
Enter the initial supply in whole tokens; the wallet converts it to base units using your decimals setting. Decimals default to 18, matching the convention on most EVM chains, and the factory caps them at 18. Unless you have a specific reason to change this, leave it at 18.
Choose the optional controls
Four checkboxes reveal extra fields:
- Mintable. Reveals a Max Supply field. Leave it unchecked and the maximum supply equals your initial supply, which fixes the supply forever. Check it and set a higher max, and you, as the token owner, can mint the difference later. The maximum supply is immutable once deployed.
- Change Initial recipient. Mints the initial supply to a different Q-prefixed address. By default it goes to your own account.
- Max Wallet Amount. A cap on how many tokens a single address can hold, checked on every transfer.
- Max Transaction Limit. A cap on how many tokens can move in one transfer. Both caps are optional, a value of zero disables them, and the owner can adjust them after deployment. The token owner and the initial supply recipient are exempt from both caps, and the owner can exempt further addresses after deployment.
Confirm with your PIN
Enter your transaction PIN (4 to 6 digits) and press Create Token. On the desktop wallet there is no PIN step: the isolated signer authorizes the transaction. The wallet switches to a status page while your token deploys to the chain.
Save the result
When the transaction confirms, the success card shows the transaction hash, the new token's contract address, its name, symbol, and decimals, the block number, and the gas used, denominated in Quanta. The wallet adds the token to your token list automatically. Copy the contract address: it is the one permanent, unambiguous identifier of your token.
Under the hood the wallet calls createToken on the factory contract. The factory deploys a fresh token contract with your parameters, makes your account its owner, and emits a TokenCreated event carrying the new address. The wallet reads that event from the transaction receipt to show you the result.
Find your token on ZondScan
ZondScan indexes new contract deployments and token transfer events as it syncs, so your token appears without any registration step. Open the contracts page and select the Tokens (QRC-20)tab. You can search by token name or contract address. Each row shows the token's name and symbol, contract address, decimals, total supply, creator, and the block it was created at.
Click through to the token's own page. The header shows the name, symbol, and contract address with copy and QR buttons, alongside stats for total supply, decimals, and creator. Two tabs matter most: Holders lists every address with a balance, and Transfers lists every movement of the token. Right after creation you will see one holder, the initial recipient, holding the full supply.
Individual transfers also show up on the transaction pages themselves, decoded with the token's name and amount. The guide on reading a transaction explains every field, including how token transfers differ from plain Quanta transfers.
FAQ
What does it cost to create a token?
Gas for the deployment transaction is the entire cost. The factory contract charges no fee and the call sends no coins. On the testnet that gas is paid in testnet Quanta, which the faucet hands out for free.
Can I mint more tokens later?
Only if you checked Mintable and set a max supply above the initial supply when you created the token. Minting is restricted to the owner and can never push the total past the max supply, which is fixed permanently at deployment.
Why is the create button disabled for my connected account?
Token creation currently requires an account imported with its seed phrase, because the wallet signs the deployment call locally. The wallet marks accounts paired through the browser extension or a mobile signer as unsupported for now. Import a seed account to create tokens today.
Will my token show up on ZondScan automatically?
Yes. The explorer's synchronizer indexes contract deployments and token transfer events as blocks arrive. Your token appears under the Tokens (QRC-20) tab on the contracts page shortly after the creation transaction confirms.
Are the wallet and transaction limits permanent?
The owner can change the max wallet amount and max transaction limit at any time after deployment, and setting either to zero disables it. The max supply is the exception: it is locked in at creation.
