#
Tutorial: Launch Your First Token on Verus
Create your own cryptocurrency token on testnet — step by step, from scratch.
Estimated time: 30–45 minutes
Difficulty: Beginner–Intermediate
What you'll learn: What tokens are, why you'd create one, and exactly how to launch and mint your own.
#
What Is a Token?
A token on Verus is a custom currency that lives on the Verus blockchain. Unlike starting a whole new blockchain, a token runs on top of Verus — lightweight and instant.
Why would you create a token?
- 🎮 In-game currency for a project
- 🏢 Organization membership tokens
- 💰 Loyalty or reward points
- 🤖 Platform credits (like API usage tokens)
- 🧪 Experimentation and learning
On Verus, tokens are real DeFi primitives — they can be part of liquidity baskets, converted via on-chain AMMs, and bridged to other chains.
#
What You Need
- Verus CLI installed and synced to testnet
- A registered VerusID (this becomes your token name) — see Your First VerusID tutorial
- ~200 VRSCTEST in your wallet (currency definition fee)
- The VerusID must NOT already have a currency defined on it
#
Step 1: Verify Your Setup
#
Check daemon is running and synced
./verus -testnet getinfo
Confirm blocks ≈ headers and connections > 0.
#
Check your VerusID exists
./verus -testnet getidentity "YOUR_TOKEN_NAME@"
What you should see: Your identity details. If Identity not found, create one first.
#
Check no currency exists yet
./verus -testnet getcurrency "YOUR_TOKEN_NAME"
What you should see: Cannot find currency. If it returns data, this identity already has a currency — use a different one.
#
Check your balance
./verus -testnet getbalance
You need ~200 VRSCTEST for the definition fee.
#
Step 2: Understand Your Options
Before defining, decide on two key settings:
#
Proof Protocol: Who Controls Supply?
For this tutorial, we'll use 2 (centralized) so you can mint tokens.
#
Options: What Type of Currency?
For this tutorial, we'll use 32 (simple token).
#
Step 3: Define Your Token
Here's the command. Replace YOUR_TOKEN_NAME with your VerusID name:
./verus -testnet definecurrency '{
"name": "YOUR_TOKEN_NAME",
"options": 32,
"proofprotocol": 2,
"idregistrationfees": 0.01,
"idreferrallevels": 0,
"preallocations": [{"YOUR_TOKEN_NAME@": 1000}]
}'
#
What each field means:
#
Concrete example:
Let's say your VerusID is mytoken@:
./verus -testnet definecurrency '{
"name": "mytoken",
"options": 32,
"proofprotocol": 2,
"idregistrationfees": 0.01,
"idreferrallevels": 0,
"preallocations": [{"mytoken@": 1000}]
}'
What you should see:
{
"txid": "abc123def456789...",
"tx": {
...
},
"hex": "0400008085..."
}
📝 Save the txid — you'll use it to check confirmation.
#
Step 4: Wait for Confirmation and Launch
./verus -testnet gettransaction "YOUR_DEFINITION_TXID"
Wait until "confirmations" is at least 1 (~1 minute) for the tx to be mined. Then wait a minimum of 20 blocks (~20 minutes) for the currency to become active. During this launch period, preconversions can occur for basket currencies.
💡 Note: In some versions,
definecurrencymay return a hex that needs to be broadcast separately viasendrawtransaction. Ifdefinecurrencyreturns atxiddirectly, it auto-broadcast. If it only returnshex, run:./verus -testnet sendrawtransaction "THE_HEX"
#
Step 5: Verify Your Token Exists
./verus -testnet getcurrency "YOUR_TOKEN_NAME"
What you should see:
{
"name": "mytoken",
"version": 1,
"options": 32,
"proofprotocol": 2,
"idregistrationfees": 0.01000000,
"currencyid": "iABC123...",
"supply": 1000.00000000,
...
}
🎉 Your token exists! Notice supply: 1000 from the preallocation.
#
Step 6: Check Your Token Balance
./verus -testnet getcurrencybalance "*" "YOUR_TOKEN_NAME"
What you should see:
{
"YOUR_TOKEN_NAME": 1000.00000000
}
You have 1000 of your tokens from the preallocation.
#
Step 7: Send Tokens to Someone
./verus -testnet sendcurrency "*" '[{
"address": "RECIPIENT_ADDRESS_OR_ID",
"amount": 10,
"currency": "YOUR_TOKEN_NAME"
}]'
Example:
./verus -testnet sendcurrency "*" '[{
"address": "<R-address>",
"amount": 10,
"currency": "mytoken"
}]'
What you should see:
opid-a1b2c3d4-e5f6-7890-...
That's an operation ID — the transaction is processing.
#
Step 8: Mint More Tokens
Since you used proofprotocol: 2, you can create new tokens anytime:
./verus -testnet sendcurrency "YOUR_TOKEN_NAME@" '[{
"address": "YOUR_ADDRESS",
"amount": 5000,
"currency": "YOUR_TOKEN_NAME",
"mintnew": true
}]'
Example:
./verus -testnet sendcurrency "mytoken@" '[{
"address": "<R-address>",
"amount": 5000,
"currency": "mytoken",
"mintnew": true
}]'
⚠️ Important: The
fromaddress(first parameter) must be the token's controlling identity ("mytoken@"), not"*". Only the identity that owns the currency can mint.
Check the new supply:
./verus -testnet getcurrency "YOUR_TOKEN_NAME" | grep supply
What you should see:
"supply": 6000.00000000
(1000 preallocation + 5000 minted = 6000)
#
Step 9: Burn Tokens (Optional)
Remove tokens from circulation permanently:
./verus -testnet sendcurrency "*" '[{
"address": "YOUR_ADDRESS",
"amount": 100,
"currency": "YOUR_TOKEN_NAME",
"burn": true
}]'
Supply decreases by the burned amount.
#
What You've Built
You now have a fully functional cryptocurrency token that can:
- ✅ Be sent between any Verus addresses or VerusIDs
- ✅ Be minted (new supply) by you at any time
- ✅ Be burned (reducing supply)
- ✅ Act as a namespace for sub-identities
- ✅ Be used in DeFi baskets and conversions (advanced)
#
What Could Go Wrong
#
Going Further
#
Fractional Basket (AMM Token)
Want a token backed by reserves with automatic market-making? Change your definition:
./verus -testnet definecurrency '{
"name": "YOUR_TOKEN_NAME",
"options": 33,
"currencies": ["VRSCTEST"],
"weights": [1.0],
"initialsupply": 100000,
"initialcontributions": [1000],
"idregistrationfees": 1,
"idreferrallevels": 0
}'
This creates a token backed by VRSCTEST reserves with built-in conversion.
#
Mainnet Notes
- Definition fee: ~200 VRSC (real money!)
- Test on testnet first — always
- Currency definitions are permanent — there's no undo
- Choose your name carefully — it represents your project forever
#
Next Steps
- Manage SubIDs under your token namespace
- Explore sendcurrency for conversions and cross-chain transfers
- Read about fractional basket currencies for DeFi
Last updated: 2026-02-07