#
How To: Create a VerusID
Register a self-sovereign identity on the Verus blockchain.
Estimated time: 10–15 minutes
Cost: 100 VRSC for a root mainnet ID (80 VRSC with referral — the 20 VRSC discount is split among the referral chain; see Referral System). Alternatives: free IDs via Valu (Verus Discord #valu channel, /getid), cheap IDs on PBaaS chains, subIDs (set by namespace owner). Testnet: ~100 VRSCTEST (free test currency).
Difficulty: Beginner
#
Prerequisites
- Verus CLI installed and daemon synced (setup guide)
- A funded wallet address (R-address) with enough VRSC/VRSCTEST
- Terminal access
#
Steps
#
1. Get a Wallet Address
If you don't have one yet:
./verus -testnet getnewaddress "my-wallet"
Expected output:
<R-address>
Save this address — you'll use it as your control address and primary address.
#
2. Fund Your Address
You need VRSC (or VRSCTEST) at this address. Check your balance:
./verus -testnet getbalance
Testnet: Request VRSCTEST from the community Discord faucet.
Mainnet: Purchase VRSC from an exchange or receive from another user.
#
3. Check Name Availability
Before committing, verify your desired name isn't taken:
./verus -testnet getidentity "YOUR_DESIRED_NAME@"
If you get Identity not found, the name is available.
#
4. Create a Name Commitment
This hides your name choice to prevent front-running:
./verus -testnet registernamecommitment "YOUR_NAME" "YOUR_R_ADDRESS"
Example:
./verus -testnet registernamecommitment "alice" "<R-address>"
Expected output:
{
"txid": "abc123def456...",
"namereservation": {
"version": 1,
"name": "alice",
"parent": "iJhCezBExJHvtyH3fGhNnt2NhU4Ztkf2yq",
"salt": "7f8a9b2c3d...",
"referral": "",
"nameid": "iXYZ123..."
}
}
⚠️ Save this entire output! You need it for the next step. If you lose the
salt, your commitment is wasted.
#
With a Referral (saves ~20% on mainnet — you pay 80 instead of 100 VRSC)
./verus -testnet registernamecommitment "alice" "<R-address>" "existingid@"
#
5. Wait for Confirmation
Wait for the commitment transaction to be mined (at least 1 block, ~1 minute):
./verus -testnet gettransaction "YOUR_COMMITMENT_TXID"
Look for "confirmations": 1 or higher.
#
6. Register the Identity
Using the output from Step 4, register the identity:
./verus -testnet registeridentity '{
"txid": "YOUR_COMMITMENT_TXID",
"namereservation": {
"version": 1,
"name": "alice",
"parent": "YOUR_PARENT_FROM_STEP4",
"salt": "YOUR_SALT",
"referral": "",
"nameid": "YOUR_NAMEID"
},
"identity": {
"name": "alice",
"primaryaddresses": ["YOUR_R_ADDRESS"],
"minimumsignatures": 1,
"version": 3
}
}'
⚠️ CRITICAL: The
namereservationmust include ALL fields from Step 4's output —version,name,parent,salt,referral, andnameid. Missing any field causes a hash mismatch error and registration will fail. The safest approach is to copy the entirenamereservationobject from your Step 4 output exactly as-is.Note: On testnet,
parentwill be"iJhCezBExJHvtyH3fGhNnt2NhU4Ztkf2yq"(VRSCTEST). On mainnet, it will be"i5w5MuNik5NtLcYmNzcvaoixooEebB6MGV"(VRSC). Always use whatever value was returned in Step 4.
Expected output:
a1b2c3d4e5f6... (transaction ID)
#
7. Verify Your Identity
After 1 confirmation:
./verus -testnet getidentity "alice@"
You should see your identity details including your primary address. Check that canspendfor and cansignfor are true — this confirms the identity is in your wallet and you can control it.
#
Testnet vs Mainnet Differences
#
What Could Go Wrong
#
Advanced Options
#
Multisig Identity
Require multiple signatures to control the identity:
./verus -testnet registeridentity '{
"txid": "YOUR_TXID",
"namereservation": { ... },
"identity": {
"name": "alice",
"primaryaddresses": ["R_ADDRESS_1", "R_ADDRESS_2"],
"minimumsignatures": 2
}
}'
#
Custom Revocation/Recovery
Set separate authorities for revoking and recovering your identity:
"identity": {
"name": "alice",
"primaryaddresses": ["YOUR_R_ADDRESS"],
"minimumsignatures": 1,
"revocationauthority": "trustedfriend@",
"recoveryauthority": "backupid@"
}
Last updated: 2026-02-07