The Ootle L2 native token is called TARI. The symbol XTR was the old name and is now deprecated everywhere — code, manifests, tooling, and documentation.
This is a rename, not a migration. There is no new token, no swap, and no change to the underlying resource. The resource address is unchanged, so existing balances, vaults, and transactions are unaffected. Only the name you use in code and copy has changed.
- Resource address: unchanged (
STEALTH_TARI_RESOURCE_ADDRESS,[1u8; 32]of0x01) - Divisibility and units: unchanged (
1 TARI = 1,000,000microtari) - Naming: TARI — displayed as tTARI on testnet, $TARI on mainnet
What changed
| Old (deprecated) | New | Type |
|---|---|---|
XTR |
TARI_TOKEN |
Rust constant, the native resource address |
ONE_XTR |
TARI |
Rust constant, the base unit (1_000_000 microtari) |
XTR in manifests |
TARI |
Resource identifier in manifest arguments |
Both old aliases still resolve, so nothing breaks immediately — but they are marked #[deprecated(since = "0.24.5")] and you will get compiler warnings. Please migrate.
Rust
// Before
use tari_template_lib::types::constants::XTR;
vault.withdraw(XTR, 500u64);
// After
use tari_template_lib::types::constants::TARI_TOKEN;
vault.withdraw(TARI_TOKEN, 500u64);
For amounts, use the TARI unit constant rather than a magic number:
use tari_template_lib::types::constants::TARI;
// 10 TARI = 10,000,000 microtari
let amount = 10 * TARI;
Manifests
The parser accepts both spellings today, but TARI is the supported identifier:
// Before
.call_method(sender_account, "withdraw", args![XTR, 500u64])
// After
.call_method(sender_account, "withdraw", args![TARI, 500u64])
What is not renamed
These retain their historical spelling on purpose — do not rename them in your code:
- Faucet constants:
XTR_FAUCET_COMPONENT_ADDRESS,XTR_FAUCET_VAULT_ADDRESS,XTR_FAUCET_CLAIM_RESOURCE_ADDRESS,XTR_FAUCET_AMOUNT - The built-in faucet template name:
XtrFaucet
Migration checklist
- Replace
XTR→TARI_TOKENandONE_XTR→TARIin Rust imports and usages. - Replace
XTR→TARIin transaction manifests and anyargs!that reference the native token. - Update user-facing strings, UI labels, and any published docs to TARI (testnet tTARI, mainnet $TARI).
- Leave
XTR_FAUCET_*andXtrFaucetas they are. - Search your codebase for
XTRcase-sensitively — the only remaining hits should be the faucet symbols above. - Rebuild against the current release and clear any deprecation warnings.
If you spot XTR in any public-facing artifact from a third party, please point them at this post. Questions and edge cases are welcome in the replies below.



