BasketDepositedTao

Storage Map v441 → current

Map (validator_hotkey) to lifetime TAO deposited into the basket.

Explore chain
Queried by: validatorsstakersanalytics

The Big Picture

Together with BasketRedeemedTao this makes lifetime fund performance computable from two storage reads with no event indexing, which is what allows a public, comparable validator scoreboard.

Why This Matters

This is the cost basis of a fund. Without it you could see what a basket is worth today but not whether the manager actually made money getting there.

Example Scenario

A validator shows 1,400 TAO deposited lifetime, 300 TAO redeemed, and a current NAV of 1,300. Lifetime return is (1300 + 300) / 1400, about 1.14x.

Common Questions

Why is this lower than the raw dividends the validator earned?
It sums value_added, the realizable NAV each deposit actually contributed net of slippage and fees, not the gross TAO deployed.
Does it reset when the validator swaps hotkeys?
No. The fund and its lifetime counters follow the swap.

Use Cases

  • Compute lifetime fund return as (NAV + redeemed) / deposited
  • Rank validators by fund performance

From Chain Metadata

MAP ( validator_hotkey ) --> lifetime realizable TAO value deposited into the basket. Cumulative sum of every deposit's `value_added`: the realizable NAV the deposit actually added (net of buy slippage and fees), deliberately less than the raw TAO deployed. Both dividend deposits and direct `stake_into_basket` deposits accumulate here, and dividend deposits add their full `value_added` even though only the stakers' attribution fraction mints shares. Together with [`BasketRedeemedTao`] this makes lifetime fund performance (`(NAV + redeemed) / deposited`) and deposit-rate metrics computable from two storage reads, with no event indexing. Follows the fund across hotkey swaps.

Purpose & Usage

Purpose

Cumulative sum of every deposit value_added: the realizable NAV each deposit actually added, net of buy slippage and fees.

Common Query Patterns

  • Query by validator hotkey and pair with BasketRedeemedTao and current NAV for lifetime performance

Notes

  • Deliberately less than the raw TAO deployed, since it is measured net of slippage
  • Both dividend deposits and direct stake_into_basket deposits accumulate here
  • Dividend deposits add their full value_added even though only the staker attribution fraction mints shares
  • Follows the fund across hotkey swaps

Query Keys

#NameTypeDescription
1
validator_hotkey
AccountId [u8; 32]validator_hotkey (AccountId, hashed key component) (hex -> SS58)

Stored Value

lifetime (TaoBalance)

Default Value

0 0x0000000000000000

Absent keys read as this value — querying a key that has never been written returns this default, not an error or empty result.

Relationships

Modified By

Related Events

Code Examples

import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443

const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);

// Query BasketDepositedTao storage
const validator_hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";

const result = await api.query.SubtensorModule.BasketDepositedTao.getValue(validator_hotkey);
console.log("BasketDepositedTao:", result);

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v441
Current Version
v472