BasketClaimed

Event v441 → current #118

Emitted per validator when a staker redeems their pro-rata slice of that validator 's basket.

View events on chain
Useful for: stakersvalidatorsanalyticsdeveloperswallets

The Big Picture

RootClaimed is the coldkey-level total for a claim; BasketClaimed is the per-validator breakdown that composes it. A claim redeems the staker fraction of every holding pro-rata rather than selling specific positions, which is what lets funds rebalance without touching anyone else's entitlement.

Why This Matters

If you stake to several validators, one claim touches several funds. This event is how you see what each individual fund paid you.

Example Scenario

You root-stake to three validators and call claim_root. Three BasketClaimed events fire, 1.1, 0.4, and 1.7 TAO, and one RootClaimed fires with tao = 3.2 TAO, the sum staked back onto root.

Common Questions

How does this relate to RootClaimed?
BasketClaimed is per validator hotkey. RootClaimed is the coldkey-level total for the whole claim. One claim can emit many of the former and one of the latter.
Does claiming change the fund composition?
No. Redemption is pro-rata across every holding, so the remaining fund keeps the same shape.
Why was one of my validators skipped?
Per-validator payouts below RootClaimableThreshold are skipped as dust. That entitlement keeps accruing and pays out on a later claim.

Use Cases

  • Attribute a multi-validator claim to individual funds
  • Track realized yield per validator relationship
  • Measure fund outflow alongside BasketDeposited inflow

How to Use This Event

  • → Group by hotkey to see which funds a coldkey realized from
  • → Sum against the RootClaimed total to verify a claim decomposition
  • → Track per-validator redemption to compute fund net flow

From Chain Metadata

A staker redeemed (claimed) their owed share of a validator's beta basket: their pro-rata fraction of every holding was realized as `tao` and staked onto their root position.

Triggers

Preconditions

  • Staker has accrued entitlement on that validator
  • Payout clears RootClaimableThreshold
  • claim_root or claim_root_with_hotkey executed

Effects

Postconditions

  • Owed fraction of every holding sold pro-rata, preserving fund composition
  • Realized TAO staked onto the staker root position
  • BasketClaimed watermark advanced; BasketRedeemedTao incremented

Side Effects

  • Orphaned dust holdings outside the current weight vector are folded into the fund root slot

Event Data

#NameTypeDescription
0
hotkey
AccountId hotkey: Account address (32 bytes, SS58-encoded) (hex -> SS58)
1
coldkey
AccountId coldkey: Account address (32 bytes, SS58-encoded) (hex -> SS58)
2
tao
TaoBalance tao: TAO amount in RAO (÷10⁹ for TAO)

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);

// Subscribe to BasketClaimed events
client.finalizedBlock$.subscribe(async (block) => {
  const events = await api.event.SubtensorModule.BasketClaimed.get(block.hash);
  for (const evt of events) {
    console.log("BasketClaimed:", evt.payload);
  }
});

Runtime Info

View Source
Pallet Index
7
Event Index
118
First Version
v441
Current Version
v472