$XTR is now $TARI — what third-party developers need to change

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] of 0x01)
  • Divisibility and units: unchanged (1 TARI = 1,000,000 microtari)
  • 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

  1. Replace XTR → TARI_TOKEN and ONE_XTR → TARI in Rust imports and usages.
  2. Replace XTR → TARI in transaction manifests and any args! that reference the native token.
  3. Update user-facing strings, UI labels, and any published docs to TARI (testnet tTARI, mainnet $TARI).
  4. Leave XTR_FAUCET_* and XtrFaucet as they are.
  5. Search your codebase for XTR case-sensitively — the only remaining hits should be the faucet symbols above.
  6. 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.

5 Likes

How do we deal with that marketing side?
Does that mean that, from now on, we are mining XTR and not XTM?

add2

col 1 col 2 col 3
Layer L1 L2
name Tari Ootle
ticker XTM TARI

XTM is L1
TARI is L2

That, I got it. Did you think about your website, the wallet, and all the documents that mention Tari(XTM) that need to be updated?

People are going to expect Ootle when they mine, not XTM, if you make this mandatory.
Why the change of name? I don’t see the logic behind that.

XTR → TARI

less ticker, only TARI

No, you’re mining XTM. TARI is created when you burn XTM to produce TARI (Previously XTR) on the L2.

This is currently in process. The first wave of changes to the website has been completed here. One thing remaining is fixing some images.

Universe doesn’t mention XTR or TARI since it’s L1-only right now.

The Ootle docs use the right term. If you see anything else that needs updating, file an issue on the relevant repo so it can be addressed.

Attention spans. Note this decision was made before the council took power, but when given the reasoning, it’s made sense to us:

People are going to be coming to Tari for the first time and the number one thing we want them to focus on is the TARI token. We don’t want them confused by the dual names of XTM and XTR, which are very similar names but have distinct technologies and functions behind them. We want them to remember ‘Tari’ and having the day-to-day use token be TARI means they only have to remember one name.

Some change is needed: XTM Explorer? Minotari Explorer?

In the /user_agreement, it still says Tari Labs all over the documents, and some references to XTM and Tari are incorrect.

Samething for Tari Labs and do you still need Shopify?