Token Operations
This guide covers the QOR token, how to send and receive tokens, query balances, and understand the fee distribution model on QoreChain.
The commands below use the qorechain-diana testnet (EVM chain ID 9800). Mainnet (qorechain-vladi, EVM chain ID 9801) has been live since 29 June 2026 on the v3.2 line (node release v3.2.1; the testnet runs v3.2.2) — substitute the mainnet chain ID and endpoints from the Connecting to Mainnet page when transacting on mainnet.
tx pqc cosignMainnet and testnet require a hybrid post-quantum signature on every Cosmos-lane transaction, so the commands on this page do not broadcast as written. Add --generate-only > tx.json to a command, then run qorechaind tx pqc cosign tx.json --from mykey --pqc-key mypqc --chain-id <chain-id>. See Hybrid signing. QoreX and the Dashboard do this signing for you.
Token Information
| Property | Value |
|---|---|
| Display Denomination | QOR |
| Base Denomination | uqor |
| Conversion | 1 QOR = 1,000,000 uqor (10^6) |
| Chain ID | qorechain-vladi (mainnet) / qorechain-diana (testnet) |
| Bech32 Prefix | qor (e.g., qor1abc...xyz) |
All on-chain amounts are denominated in uqor. When submitting transactions, always specify amounts in uqor.
Sending Tokens
To transfer QOR tokens from one account to another:
qorechaind tx bank send <from_address> <to_address> <amount>uqor \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor
Example: Send 5 QOR (5,000,000 uqor) to another address:
qorechaind tx bank send qor1sender... qor1recipient... 5000000uqor \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor
You can also use a key name instead of a raw address for the sender:
qorechaind tx bank send mykey qor1recipient... 5000000uqor \
--chain-id qorechain-diana \
--gas 400000 --fees 40000uqor
Querying Balances
Check the balance of any account:
qorechaind query bank balances <address>
Example:
qorechaind query bank balances qor1abc...xyz
Sample output:
balances:
- amount: "15000000"
denom: uqor
pagination:
next_key: null
total: "0"
This indicates the account holds 15 QOR (15,000,000 uqor).
Fee Structure
Transaction fees on QoreChain are distributed across five destinations to align network incentives:
| Destination | Share | Purpose |
|---|---|---|
| Validators | 37% | Rewards block producers and secures the network |
| Burned | 30% | Permanently removed from supply |
| Treasury | 20% | Funds protocol development and ecosystem grants |
| Stakers | 10% | Distributed proportionally to all delegators |
| Light Nodes | 3% | Reserved for light-node rewards (see the note below) |
The split applies to everything that enters the fee collector, which holds transaction fees and the staking emission minted each epoch. The light-node share accrues to a reserve; light-node reward registration is not open yet, so no node is currently paid from it (see Light Node). Since the v3.2.0 upgrade the staker share is paid out as a normal staking reward (see Tokenomics).
Burn Channels
QoreChain's burn module defines 12 burn sources. QOR burned through any of them is permanently removed from circulation. On mainnet only the gas-fee channel has recorded burns so far; the others are defined but have recorded nothing.
| Channel | Description |
|---|---|
gas_fee | 30% of all gas fees are burned |
contract_create | Flat 100 QOR fee burned per contract creation (inactive: CosmWasm upload is closed) |
ai_service | 50% of AI service fees burned (inactive: AI service fees are not live) |
bridge_fee | 100% of bridge fees burned (inactive: the bridge is not live) |
treasury_buyback | Periodic buyback-and-burn from the treasury |
failed_tx | Failed-transaction gas; applied by the chain from v3.2.2 (testnet only so far) |
xqore_penalty | xQORE early-exit penalties routed through burn (xQORE is not live) |
auto_buyback | Protocol-level automated burns (inactive) |
tge | Reserved; the TGE burn happened before genesis and this channel records nothing |
rollup_create | 1% of the rollup creation stake is burned |
milestone | Scheduled burns at fixed cumulative transaction counts (none triggered yet) |
amm | Reserved for AMM protocol fees (none recorded) |
The burn module has no CLI query; read the cumulative burn per source from REST:
curl -s https://api.qore.host/qorechain/burn/v1/stats
The response lists total_burned and burns_by_source (in uqor). Current total supply is qorechaind query bank total-supply-of uqor.
Tips
Always double-check recipient addresses before sending tokens. Transactions on QoreChain are irreversible.
- Use the
--dry-runflag to simulate a transaction without broadcasting it. - Set
--gasexplicitly (400,000 is enough for a hybrid-signed transfer). - The fee floor is 0.1 uqor per unit of gas, so a 400,000 gas limit needs at least 40,000 uqor.