Skip to main content
TrackingToken stores per-account, per-symbol external-position receipts. It is an accounting registry, not a freely transferable wallet token or a lending-pool vToken.

Metadata and balances

Initialization is per symbol. The contract has admin and deployer roles, with admin-authorized minters for controller operations. mint_by and burn_by require the specified authorized minter; mint and burn use the admin path. Freeze and supply/balance checks apply as implemented by each entrypoint. Registry metadata, not a fixed list in RiskEngine, determines what a symbol represents. Blend receipts track b-token units. AMM position accounting also consults actual LP token balances and synchronizes tracking membership; do not assume every LP operation mints synthetic receipts by the legacy execute() return value. Blend and registered AMM LP positions can contribute collateral value. Unpriced metadata and frozen/revoked positions are treated differently. See Risk Engine.

Function signatures

These signatures are copied from the reviewed Rust implementation. env is supplied by Soroban and is not a transaction argument. Result errors and panics must be handled by the caller; simulation does not guarantee later execution. Public methods include privileged and internal-contract callbacks, not just user entrypoints.

__constructor

rotate_deployer

initialize

admin

set_admin

decimals

name

symbol

balance

total_supply

mint

set_authorized_minter

is_authorized_minter

mint_by

burn_by

burn

burn_from

set_frozen

frozen

upgrade

Source reference

  • Protocol_V1_Soroban_testnet/contracts/TrackingTokenContract/src/tracking_token.rs