BasketClaimRowDustCapTao

Storage Plain v468 → current New in v468

Absolute cap, in rao , on the row-dust floor of a root claim.

Explore chain
Queried by: validatorsdevelopersanalytics

The Big Picture

Paired with a relative floor in basis points so small funds, where every row may be under 1 TAO, still redeem their rows. Skipping is additionally bounded by BasketClaimForfeitCapTao on the claimant's own slice.

Why This Matters

This is the most a single skipped row can be worth in a large fund.

Example Scenario

A fund with 2,000 TAO anchored NAV: 10 basis points is 2 TAO, but the cap is 1 TAO, so rows worth under 1 TAO are the dust candidates.

Use Cases

  • Compute which fund rows a claim will skip
  • Track governance changes to claim dust policy

From Chain Metadata

ITEM --> cap, in rao, of the row-dust floor of a root claim. A claim skips a fund row entirely when the fund's whole holding on that subnet is worth less than `min(this cap, BasketClaimRowDustBps × anchored NAV)` at the anchored mark: the row is neither sold nor paid, and the claimant's slice of it (below the floor by construction) stays in the fund for the remaining holders. `0` disables the row skip. Set via `AdminUtils::sudo_set_basket_claim_dust`.

Purpose & Usage

Purpose

Bounds the row floor so a large fund never skips a row worth more than this, however big its NAV.

Common Query Patterns

  • Query with BasketClaimRowDustBps and the fund anchored NAV to compute the row floor
  • Zero disables the row rule

Notes

  • First appears at runtime v468. Default 1000000000 rao, which is 1 TAO (lib.rs DEFAULT_BASKET_CLAIM_ROW_DUST_CAP_TAO at v468).
  • The row floor is min(this cap, BasketClaimRowDustBps × anchored NAV / 10000), so whichever is smaller binds (claim_root.rs basket_claim_row_dust_floor).
  • A row is judged by its whole holding value at the anchored mark, not by the claimant slice.
  • Set together with the other three knobs by sudo_set_basket_claim_dust, which emits BasketClaimDustSet.

Stored Value

Value in RAO (÷10⁹ for TAO)

RAO -> TAO (/ 10^9)

Default Value

1000000000 0x00ca9a3b00000000

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

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 BasketClaimRowDustCapTao storage (no keys - plain value)
const result = await api.query.SubtensorModule.BasketClaimRowDustCapTao.getValue();
console.log("BasketClaimRowDustCapTao:", result);

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Plain
First Version
v468
Current Version
v472