Storage
Storage
This page contains storage query definitions for the Subtensor runtime. Accessible via api.query.<Pallet>.<storage_item>.
Generated from Subtensor runtime spec version 470. Connected to: wss://entrypoint-finney.opentensor.ai:443
- adminUtils
- alphaAssets
- aura
- balances
- baseFee
- commitments
- contracts
- crowdloan
- drand
- ethereum
- evm
- evmChainId
- grandpa
- limitOrders
- mevShield
- multisig
- preimage
- proxy
- randomnessCollectiveFlip
- safeMode
- scheduler
- substrate
- subtensorModule
- sudo
- swap
- system
- timestamp
- transactionPayment
adminUtils
palletVersion: u16
- interface:
api.query.adminUtils.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
precompileEnable(PrecompileEnum): bool
- interface:
api.query.adminUtils.precompileEnable - summary: Map PrecompileEnum --> enabled
alphaAssets
alphaBurned(NetUid): AlphaBalance
- interface:
api.query.alphaAssets.alphaBurned - summary: Total alpha burned per subnet through this pallet.
alphaRecycled(NetUid): AlphaBalance
- interface:
api.query.alphaAssets.alphaRecycled - summary: Total alpha recycled per subnet through this pallet.
palletVersion: u16
- interface:
api.query.alphaAssets.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
totalAlphaIssuance(NetUid): AlphaBalance
- interface:
api.query.alphaAssets.totalAlphaIssuance - summary: Total alpha issuance tracked by the pallet.
aura
authorities: Vec<SpConsensusAuraSr25519AppSr25519Public>
- interface:
api.query.aura.authorities - summary: The current authority set.
currentSlot: Slot
-
interface:
api.query.aura.currentSlot -
summary: The current slot of this block.
This will be set in
on_initialize.
palletVersion: u16
- interface:
api.query.aura.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
balances
account(AccountId32): AccountData
-
interface:
api.query.balances.account -
summary: The Balances pallet example of storing the balance of an account.
Example:
nocompile impl pallet_balances::Config for Runtime { type AccountStore = StorageMapShim<Self::Account<Runtime>, frame_system::Provider<Runtime>, AccountId, Self::AccountData<Balance>> }You can also store the balance of an account in the
Systempallet.Example:
nocompile impl pallet_balances::Config for Runtime { type AccountStore = System }But this comes with tradeoffs, storing account balances in the system pallet stores
frame_systemdata alongside the account data contrary to storing account balances in theBalancespallet, which uses aStorageMapto store balances data only. NOTE: This is only used in the case that this pallet is used to store balances.
freezes(AccountId32): Vec<FrameSupportTokensMiscIdAmountRuntimeFreezeReason>
- interface:
api.query.balances.freezes - summary: Freeze locks on account balances.
holds(AccountId32): Vec<FrameSupportTokensMiscIdAmountRuntimeHoldReason>
- interface:
api.query.balances.holds - summary: Holds on account balances.
inactiveIssuance: TaoBalance
- interface:
api.query.balances.inactiveIssuance - summary: The total units of outstanding deactivated balance in the system.
locks(AccountId32): Vec<PalletBalancesBalanceLock>
-
interface:
api.query.balances.locks -
summary: Any liquidity locks on some account balances. NOTE: Should only be accessed when setting, changing and freeing a lock.
Use of locks is deprecated in favour of freezes. See
https://github.com/paritytech/substrate/pull/12951/
palletVersion: u16
- interface:
api.query.balances.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
reserves(AccountId32): Vec<PalletBalancesReserveData>
-
interface:
api.query.balances.reserves -
summary: Named reserves on some account balances.
Use of reserves is deprecated in favour of holds. See
https://github.com/paritytech/substrate/pull/12951/
totalIssuance: TaoBalance
- interface:
api.query.balances.totalIssuance - summary: The total units issued in the system.
baseFee
baseFeePerGas: U256
- interface:
api.query.baseFee.baseFeePerGas
elasticity: Permill
- interface:
api.query.baseFee.elasticity
palletVersion: u16
- interface:
api.query.baseFee.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
commitments
commitmentOf(u16, AccountId32): Registration
- interface:
api.query.commitments.commitmentOf - modifier:
Optional - summary: Identity data by account
lastBondsReset(u16, AccountId32): u32
- interface:
api.query.commitments.lastBondsReset - modifier:
Optional
lastCommitment(u16, AccountId32): u32
- interface:
api.query.commitments.lastCommitment - modifier:
Optional
maxSpace: u32
- interface:
api.query.commitments.maxSpace
palletVersion: u16
- interface:
api.query.commitments.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
revealedCommitments(u16, AccountId32): Vec<(Bytes,u64)>
- interface:
api.query.commitments.revealedCommitments - modifier:
Optional
timelockedIndex: BTreeSet
- interface:
api.query.commitments.timelockedIndex - summary: Tracks all CommitmentOf that have at least one timelocked field.
timelockRevealCursor: (u16,AccountId32)
- interface:
api.query.commitments.timelockRevealCursor - modifier:
Optional - summary: Last
TimelockedIndexentry visited by a reveal pass that hit the per-block decryption budget. The next pass resumes after it so a burst of matured commitments at the front of the index cannot starve the rest. Absent when the previous pass covered the whole index.
usedSpaceOf(u16, AccountId32): UsageTracker
- interface:
api.query.commitments.usedSpaceOf - modifier:
Optional - summary: Maps (netuid, who) -> usage (how many “bytes” they've committed) in the RateLimit window
contracts
codeInfoOf(H256): CodeInfo
- interface:
api.query.contracts.codeInfoOf - modifier:
Optional - summary: A mapping from a contract's code hash to its code info.
contractInfoOf(AccountId32): ContractInfo
-
interface:
api.query.contracts.contractInfoOf -
modifier:
Optional -
summary: The code associated with a given account.
TWOX-NOTE: SAFE since
AccountIdis a secure hash.
deletionQueue(u32): Bytes
-
interface:
api.query.contracts.deletionQueue -
modifier:
Optional -
summary: Evicted contracts that await child trie deletion.
Child trie deletion is a heavy operation depending on the amount of storage items stored in said trie. Therefore this operation is performed lazily in
on_idle.
deletionQueueCounter: DeletionQueueManager
- interface:
api.query.contracts.deletionQueueCounter - summary: A pair of monotonic counters used to track the latest contract marked for deletion and the latest deleted contract in queue.
migrationInProgress: Bytes
- interface:
api.query.contracts.migrationInProgress - modifier:
Optional - summary: A migration can span across multiple blocks. This storage defines a cursor to track the progress of the migration, enabling us to resume from the last completed position.
nonce: u64
-
interface:
api.query.contracts.nonce -
summary: This is a monotonic counter incremented on contract instantiation.
This is used in order to generate unique trie ids for contracts. The trie id of a new contract is calculated from hash(account_id, nonce). The nonce is required because otherwise the following sequence would lead to a possible collision of storage:
- Create a new contract.
- Terminate the contract.
- Immediately recreate the contract with the same account_id.
This is bad because the contents of a trie are deleted lazily and there might be storage of the old instantiation still in it when the new contract is created. Please note that we can't replace the counter by the block number because the sequence above can happen in the same block. We also can't keep the account counter in memory only because storage is the only way to communicate across different extrinsics in the same block.
Note:
Do not use it to determine the number of contracts. It won't be decremented if a contract is destroyed.
palletVersion: u16
- interface:
api.query.contracts.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
pristineCode(H256): Bytes
- interface:
api.query.contracts.pristineCode - modifier:
Optional - summary: A mapping from a contract's code hash to its code.
crowdloan
contributions(u32, AccountId32): TaoBalance
- interface:
api.query.crowdloan.contributions - modifier:
Optional - summary: A map of crowdloan ids to their contributors and their contributions.
crowdloans(u32): CrowdloanInfo
- interface:
api.query.crowdloan.crowdloans - modifier:
Optional - summary: A map of crowdloan ids to their information.
currentCrowdloanId: u32
- interface:
api.query.crowdloan.currentCrowdloanId - modifier:
Optional - summary: The current crowdloan id that will be set during the finalize call, making it temporarily accessible to the dispatched call.
hasMigrationRun(Bytes): bool
- interface:
api.query.crowdloan.hasMigrationRun - summary: Storage for the migration run status.
maxContributions(u32): TaoBalance
- interface:
api.query.crowdloan.maxContributions - modifier:
Optional - summary: A map of crowdloan ids to their optional maximum cumulative contribution per contributor.
nextCrowdloanId: u32
- interface:
api.query.crowdloan.nextCrowdloanId - summary: The next incrementing crowdloan id.
palletVersion: u16
- interface:
api.query.crowdloan.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
drand
beaconConfig: BeaconConfiguration
- interface:
api.query.drand.beaconConfig - summary: the drand beacon configuration
hasMigrationRun(Bytes): bool
- interface:
api.query.drand.hasMigrationRun - summary: Storage for migration run status
lastStoredRound: u64
- interface:
api.query.drand.lastStoredRound
nextUnsignedAt: u32
-
interface:
api.query.drand.nextUnsignedAt -
summary: Defines the block when next unsigned transaction will be accepted.
To prevent spam of unsigned (and unpaid!) transactions on the network, we only allow one transaction per block. This storage entry defines when new transaction is going to be accepted.
oldestStoredRound: u64
- interface:
api.query.drand.oldestStoredRound - summary: oldest stored round
palletVersion: u16
- interface:
api.query.drand.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
pulses(u64): Pulse
- interface:
api.query.drand.pulses - modifier:
Optional - summary: map round number to pulse
ethereum
blockHash(U256): H256
- interface:
api.query.ethereum.blockHash
counterForPending: u32
- interface:
api.query.ethereum.counterForPending - summary: Counter for the related counted storage map
currentBlock: Block
- interface:
api.query.ethereum.currentBlock - modifier:
Optional - summary: The current Ethereum block.
currentReceipts: Vec<EthereumReceiptReceiptV4>
- interface:
api.query.ethereum.currentReceipts - modifier:
Optional - summary: The current Ethereum receipts.
currentTransactionStatuses: Vec<FpRpcTransactionStatus>
- interface:
api.query.ethereum.currentTransactionStatuses - modifier:
Optional - summary: The current transaction statuses.
palletVersion: u16
- interface:
api.query.ethereum.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
pending(u32): (EthereumTransactionTransactionV3,FpRpcTransactionStatus,EthereumReceiptReceiptV4)
- interface:
api.query.ethereum.pending - modifier:
Optional - summary: Mapping from transaction index to transaction in the current building block.
evm
accountCodes(H160): Bytes
- interface:
api.query.evm.accountCodes
accountCodesMetadata(H160): CodeMetadata
- interface:
api.query.evm.accountCodesMetadata - modifier:
Optional
accountStorages(H160, H256): H256
- interface:
api.query.evm.accountStorages
disableWhitelistCheck: bool
- interface:
api.query.evm.disableWhitelistCheck
palletVersion: u16
- interface:
api.query.evm.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
whitelistedCreators: Vec<H160>
- interface:
api.query.evm.whitelistedCreators
evmChainId
chainId: u64
- interface:
api.query.evmChainId.chainId - summary: The EVM chain ID.
palletVersion: u16
- interface:
api.query.evmChainId.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
grandpa
authorities: Vec<(SpConsensusGrandpaAppPublic,u64)>
- interface:
api.query.grandpa.authorities - summary: The current list of authorities.
currentSetId: u64
- interface:
api.query.grandpa.currentSetId - summary: The number of changes (both in terms of keys and underlying economic responsibilities) in the "set" of Grandpa validators from genesis.
nextForced: u32
- interface:
api.query.grandpa.nextForced - modifier:
Optional - summary: next block number where we can force a change.
palletVersion: u16
- interface:
api.query.grandpa.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
pendingChange: StoredPendingChange
- interface:
api.query.grandpa.pendingChange - modifier:
Optional - summary: Pending change: (signaled at, scheduled change).
setIdSession(u64): u32
-
interface:
api.query.grandpa.setIdSession -
modifier:
Optional -
summary: A mapping from grandpa set ID to the index of the most recent session for which its members were responsible.
This is only used for validating equivocation proofs. An equivocation proof must contains a key-ownership proof for a given session, therefore we need a way to tie together sessions and GRANDPA set ids, i.e. we need to validate that a validator was the owner of a given key on a given session, and what the active set ID was during that session.
TWOX-NOTE:
SetIdis not under user control.
stalled: (u32,u32)
- interface:
api.query.grandpa.stalled - modifier:
Optional - summary:
trueif we are currently stalled.
state: StoredState
- interface:
api.query.grandpa.state - summary: State of the current authority set.
limitOrders
hasMigrationRun(Bytes): bool
- interface:
api.query.limitOrders.hasMigrationRun - summary: Tracks which named migrations have already been applied. Keyed by a short migration name; value is always
true.
limitOrdersEnabled: bool
- interface:
api.query.limitOrders.limitOrdersEnabled - summary: Switch to enable/disable the pallet. Defaults to
falseso bare node deployments are safe; genesis sets it totrue.
linkedOutputs(H256): LinkedOutput
- interface:
api.query.limitOrders.linkedOutputs - modifier:
Optional - summary: Output recorded by orders that declared
has_linked_order, keyed by the provider'sOrderId. Single-use: the first linked draw removes it.
orders(H256): OrderStatus
- interface:
api.query.limitOrders.orders - modifier:
Optional - summary: Tracks the on-chain status of a known
OrderId. Absent ⇒ never seen (still executable if valid). Present ⇒ Fulfilled or Cancelled (both are terminal).
palletVersion: u16
- interface:
api.query.limitOrders.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
mevShield
authorKeys(Public): Bytes
- interface:
api.query.mevShield.authorKeys - modifier:
Optional - summary: Per-author ML-KEM-768 encapsulation key, updated each time the author produces a block.
counterForPendingExtrinsics: u32
- interface:
api.query.mevShield.counterForPendingExtrinsics - summary: Counter for the related counted storage map
currentKey: Bytes
- interface:
api.query.mevShield.currentKey - modifier:
Optional - summary: Current block author's ML-KEM-768 encapsulation key (internal, not for encryption).
extrinsicLifetime: u32
- interface:
api.query.mevShield.extrinsicLifetime - summary: Configurable extrinsic lifetime (max block difference between submission and execution). Defaults to 10 blocks if not explicitly set.
hasMigrationRun(Bytes): bool
- interface:
api.query.mevShield.hasMigrationRun - summary: Stores whether some migration has been run.
maxExtrinsicWeight: u64
- interface:
api.query.mevShield.maxExtrinsicWeight - summary: Configurable maximum weight for a single extrinsic dispatched during on_initialize. Extrinsics exceeding this limit are removed from the queue.
maxPendingExtrinsicsLimit: u32
- interface:
api.query.mevShield.maxPendingExtrinsicsLimit - summary: Configurable maximum number of pending extrinsics. Defaults to 100 if not explicitly set via
set_max_pending_extrinsics.
nextKey: Bytes
- interface:
api.query.mevShield.nextKey - modifier:
Optional - summary: Key users should encrypt with (N+2 author's key).
nextKeyExpiresAt: u32
- interface:
api.query.mevShield.nextKeyExpiresAt - modifier:
Optional - summary: Block number at which
NextKeyis no longer valid (exclusive upper bound). Updated every block during rotation.
nextPendingExtrinsicIndex: u32
- interface:
api.query.mevShield.nextPendingExtrinsicIndex - summary: Next index to use when inserting a pending extrinsic (unique auto-increment).
onInitializeWeight: u64
- interface:
api.query.mevShield.onInitializeWeight - summary: Configurable maximum weight for on_initialize processing. Defaults to 500_000_000_000 ref_time if not explicitly set.
palletVersion: u16
- interface:
api.query.mevShield.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
pendingExtrinsics(u32): PendingExtrinsic
- interface:
api.query.mevShield.pendingExtrinsics - modifier:
Optional - summary: Storage map for encrypted extrinsics to be executed in on_initialize. Uses u32 index for
O(1)insertion and removal. Count is maintained automatically.
pendingKey: Bytes
- interface:
api.query.mevShield.pendingKey - modifier:
Optional - summary: Next block author's key, staged here before promoting to
CurrentKey.
pendingKeyExpiresAt: u32
- interface:
api.query.mevShield.pendingKeyExpiresAt - modifier:
Optional - summary: Block number at which
PendingKeyis no longer valid (exclusive upper bound). Updated every block during rotation.
multisig
multisigs(AccountId32, [u8;32]): Multisig
- interface:
api.query.multisig.multisigs - modifier:
Optional - summary: The set of open multisig operations.
palletVersion: u16
- interface:
api.query.multisig.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
preimage
palletVersion: u16
- interface:
api.query.preimage.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
preimageFor(H256, u32): Bytes
- interface:
api.query.preimage.preimageFor - modifier:
Optional
requestStatusFor(H256): RequestStatus
- interface:
api.query.preimage.requestStatusFor - modifier:
Optional - summary: The request status of a given hash.
statusFor(H256): OldRequestStatus
- interface:
api.query.preimage.statusFor - modifier:
Optional - summary: The request status of a given hash.
proxy
announcements(AccountId32): (Vec<PalletSubtensorProxyAnnouncement>,u64)
- interface:
api.query.proxy.announcements - summary: The announcements made by the proxy (key).
lastCallResult(AccountId32): Result
- interface:
api.query.proxy.lastCallResult - modifier:
Optional - summary: The result of the last call made by the proxy (key).
palletVersion: u16
- interface:
api.query.proxy.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
proxies(AccountId32): (Vec<PalletSubtensorProxyProxyDefinition>,u64)
- interface:
api.query.proxy.proxies - summary: The set of account proxies. Maps the account which has delegated to the accounts which are being delegated to, together with the amount held on deposit.
realPaysFeeConsentV1(AccountId32, AccountId32): Null
-
interface:
api.query.proxy.realPaysFeeConsentV1 -
modifier:
Optional -
summary: Tracks which (real, delegate) pairs have opted in to the real account paying transaction fees for proxy calls made by the delegate. Existence of an entry means the real account pays; absence means the delegate pays (default).
The versioned prefix deliberately requires renewed consent after the authorization fix. Legacy
RealPaysFeeentries cannot distinguish owner consent from restricted-proxy grants, so copying them would preserve unauthorized spending permissions.
randomnessCollectiveFlip
palletVersion: u16
- interface:
api.query.randomnessCollectiveFlip.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
randomMaterial: Vec<H256>
- interface:
api.query.randomnessCollectiveFlip.randomMaterial - summary: Series of block headers from the last 81 blocks that acts as random seed material. This is arranged as a ring buffer with
block_number % 81being the index into theVecof the oldest hash.
safeMode
deposits(AccountId32, u32): TaoBalance
-
interface:
api.query.safeMode.deposits -
modifier:
Optional -
summary: Holds the reserve that was taken from an account at a specific block number.
This helps governance to have an overview of outstanding deposits that should be returned or slashed.
enteredUntil: u32
-
interface:
api.query.safeMode.enteredUntil -
modifier:
Optional -
summary: Contains the last block number that the safe-mode will remain entered in.
Set to
Nonewhen safe-mode is exited.Safe-mode is automatically exited when the current block number exceeds this value.
palletVersion: u16
- interface:
api.query.safeMode.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
scheduler
agenda(u32): Vec<Option<PalletSchedulerScheduled>>
- interface:
api.query.scheduler.agenda - summary: Items to be executed, indexed by the block number that they should be executed on.
incompleteSince: u32
- interface:
api.query.scheduler.incompleteSince - modifier:
Optional - summary: Block number at which the agenda began incomplete execution.
lookup([u8;32]): (u32,u32)
-
interface:
api.query.scheduler.lookup -
modifier:
Optional -
summary: Lookup from a name to the block number and index of the task.
For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 identities.
palletVersion: u16
- interface:
api.query.scheduler.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
retries(u32, u32): RetryConfig
- interface:
api.query.scheduler.retries - modifier:
Optional - summary: Retry configurations for items to be executed, indexed by task address.
substrate
changesTrieConfig: u32
- interface:
api.query.substrate.changesTrieConfig - modifier:
Required - summary: Changes trie configuration is stored under this key.
childStorageKeyPrefix: u32
- interface:
api.query.substrate.childStorageKeyPrefix - modifier:
Required - summary: Prefix of child storage keys.
code: Bytes
- interface:
api.query.substrate.code - modifier:
Required - summary: Wasm code of the runtime.
defaultChildStorageKeyPrefix: u32
- interface:
api.query.substrate.defaultChildStorageKeyPrefix - modifier:
Required - summary: Prefix of the default child storage keys in the top trie.
extrinsicIndex: u32
- interface:
api.query.substrate.extrinsicIndex - modifier:
Required - summary: Current extrinsic index (u32) is stored under this key.
heapPages: u64
- interface:
api.query.substrate.heapPages - modifier:
Required - summary: Number of wasm linear memory pages required for execution of the runtime.
intrablockEntropy: [u8;32]
- interface:
api.query.substrate.intrablockEntropy - modifier:
Required - summary: Current intra-block entropy (a universally unique
[u8; 32]value) is stored here.
storageVersionStorageKeyPostfix: u16
- interface:
api.query.substrate.storageVersionStorageKeyPostfix - modifier:
Required - summary: The storage key postfix that is used to store the [
StorageVersion] per pallet.
transactionLevelKey: u32
- interface:
api.query.substrate.transactionLevelKey - modifier:
Required - summary: The key that holds the current number of active layers.
subtensorModule
accountFlags(AccountId32): u128
- interface:
api.query.subtensorModule.accountFlags - summary: MAP ( coldkey ) --> flags | Account-level flags. Defaults to zero.
accumulatedLeaseDividends(u32): AlphaBalance
- interface:
api.query.subtensorModule.accumulatedLeaseDividends - summary: MAP ( lease_id ) --> accumulated_dividends | The accumulated dividends for a given lease that needs to be distributed.
active(NetUid): Vec<bool>
- interface:
api.query.subtensorModule.active - summary: MAP ( netuid ) --> active
activityCutoff(NetUid): u16
- interface:
api.query.subtensorModule.activityCutoff - summary: MAP ( netuid ) --> activity_cutoff
activityCutoffFactorMilli(NetUid): u32
- interface:
api.query.subtensorModule.activityCutoffFactorMilli - summary: MAP ( netuid ) --> activity-cutoff factor in per-mille epochs (1/1000 granularity). Effective cutoff in blocks =
(factor × tempo) / 1000, clamped to ≥ 1.
adjustmentAlpha(NetUid): u64
- interface:
api.query.subtensorModule.adjustmentAlpha - summary: MAP ( netuid ) --> adjustment_alpha
adjustmentInterval(NetUid): u16
- interface:
api.query.subtensorModule.adjustmentInterval - summary: MAP ( netuid ) --> adjustment_interval
adminFreezeWindow: u16
- interface:
api.query.subtensorModule.adminFreezeWindow - summary: Global window (in blocks) at the end of each tempo where admin ops are disallowed
alpha(AccountId32, AccountId32, u16): FixedU128
- interface:
api.query.subtensorModule.alpha - summary: NMAP ( hot, cold, netuid ) --> alpha | Returns the alpha shares for a hotkey, coldkey, netuid triplet.
alphaDividendsPerSubnet(u16, AccountId32): AlphaBalance
- interface:
api.query.subtensorModule.alphaDividendsPerSubnet - summary: DMAP ( netuid, hotkey ) --> u64 | Last alpha dividend this hotkey got on tempo.
alphaMapLastKey: Option
- interface:
api.query.subtensorModule.alphaMapLastKey - summary: Contains last Alpha storage map key to iterate (check first)
alphaShareEpoch(AccountId32, AccountId32, u16): u64
- interface:
api.query.subtensorModule.alphaShareEpoch - summary: NMAP ( hot, cold, netuid ) --> epoch | Pool epoch in which an
AlphaV2(or legacyAlpha) share row was last written. Absent means epoch 0.
alphaSharePoolEpoch(AccountId32, u16): u64
- interface:
api.query.subtensorModule.alphaSharePoolEpoch - summary: DMAP ( hot, netuid ) --> epoch | Generation of the hotkey's alpha share pool on a subnet. Incremented each time the pool is closed (its share denominator is written to zero because the pool holds no value). Share rows stamped with an older epoch belong to a closed pool and are read as absent, so they can never claim value deposited later.
alphaSigmoidSteepness(NetUid): i16
- interface:
api.query.subtensorModule.alphaSigmoidSteepness - summary: MAP ( netuid ) --> AlphaSigmoidSteepness
alphaV2(AccountId32, AccountId32, u16): SafeFloat
- interface:
api.query.subtensorModule.alphaV2 - summary: NMAP ( hot, cold, netuid ) --> alpha | Returns the alpha shares for a hotkey, coldkey, netuid triplet, stores SafeFloat.
alphaV2MapLastKey: Option
- interface:
api.query.subtensorModule.alphaV2MapLastKey - summary: Contains last AlphaV2 storage map key to iterate (check first)
alphaValues(NetUid): (u16,u16)
- interface:
api.query.subtensorModule.alphaValues - summary: MAP ( netuid ) --> (alpha_low, alpha_high)
associatedEvmAddress(u16, u16): (H160,u64)
- interface:
api.query.subtensorModule.associatedEvmAddress - modifier:
Optional - summary: DMAP (netuid, uid) --> (H160, last_block_where_ownership_was_proven)
associatedUidsByEvmAddress(u16, H160): Vec<(u16,u64)>
- interface:
api.query.subtensorModule.associatedUidsByEvmAddress - summary: DMAP (netuid, H160) --> associated UIDs and last block where ownership was proven.
autoParentDelegationEnabled(AccountId32): bool
-
interface:
api.query.subtensorModule.autoParentDelegationEnabled -
summary: MAP ( hotkey ) --> parent_delegation_enabled
When
true, this root validator allows auto parent delegation: new subnets childkey existing root validators to the new owner, and a new root validator childkeys to all current subnet owners. Defaults totrue; validators can opt out at any time by callingset_auto_parent_delegation_enabled(false).
autoStakeDestination(AccountId32, u16): AccountId32
- interface:
api.query.subtensorModule.autoStakeDestination - modifier:
Optional - summary: DMAP ( cold, netuid )--> hot | Returns the hotkey a coldkey will autostake to with mining rewards.
autoStakeDestinationColdkeys(AccountId32, u16): Vec<AccountId32>
- interface:
api.query.subtensorModule.autoStakeDestinationColdkeys - summary: DMAP ( hot, netuid )--> Vec<cold> | Returns a list of coldkeys that are autostaking to a hotkey
axons(u16, AccountId32): AxonInfo
- interface:
api.query.subtensorModule.axons - modifier:
Optional - summary: MAP ( netuid, hotkey ) --> axon_info
basketClaimed(AccountId32, AccountId32): i128
-
interface:
api.query.subtensorModule.basketClaimed -
summary: DMAP ( validator_hotkey, staker_coldkey ) --> fund shares already claimed (watermark).
Signed on purpose, for two reasons. First, stake-change rebasing (
claimed ± rate * delta) must be exact in both directions: with an unsigned floor, unstaking root before claiming would clip the rebase at zero, silently forfeiting the staker's accrued entitlement and permanently stranding the matching shares (and their escrow value) in the fund. Second, this map doubles as the grant ledger for direct deposits:stake_into_basketcredits its minted shares by decrementing the watermark (owed = rate * root_stake - claimed), so a persistent negative value is an intentional unconditional share grant, not a rebasing artifact.
basketClaimForfeitCapTao: u64
- interface:
api.query.subtensorModule.basketClaimForfeitCapTao - summary: ITEM --> rao value a claimant's slice of a row may be worth, at the anchored mark, and still be skipped by either dust rule. A row the rules mark as dust whose slice for this claimant is worth more than this is sold as before, so no single skipped slice ever leaves more than this in the fund.
0turns every skip off (a slice can only be skipped if it is worth nothing). Set viaAdminUtils::sudo_set_basket_claim_dust.
basketClaimRowDustBps: u16
- interface:
api.query.subtensorModule.basketClaimRowDustBps - summary: ITEM --> relative part of the row-dust floor, in basis points of the fund's anchored NAV (see [
BasketClaimRowDustCapTao]). Keeps the floor proportionate for small funds.0disables the row skip. Set viaAdminUtils::sudo_set_basket_claim_dust.
basketClaimRowDustCapTao: u64
- interface:
api.query.subtensorModule.basketClaimRowDustCapTao - summary: 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.0disables the row skip. Set viaAdminUtils::sudo_set_basket_claim_dust.
basketClaimSliceDustTao: u64
- interface:
api.query.subtensorModule.basketClaimSliceDustTao - summary: ITEM --> rao value below which a root claim skips a fund row for this claimant: when the claimant's pro-rata slice of the row is worth less than this at the anchored mark, the row is neither sold nor paid and the slice stays in the fund for the remaining holders.
0disables the skip. Set viaAdminUtils::sudo_set_basket_claim_dust.
basketConcentrationCap: u16
- interface:
api.query.subtensorModule.basketConcentrationCap - summary: ITEM --> max share of a fund's NAV one holding may reach through a
swap_basketbuy, u16-normalized (u16::MAX= 100%). Holdings are marked at realizable value. A cap of 1/16 forces a traded fund to spread across at least 16 holdings, so trading cannot recreate single-subnet concentration. Only buys are checked: a holding that grows past the cap through price appreciation or in-place dividends is left alone (it can be sold down, not topped up). Skipped at check time while fewer subnets exist than the cap demands (young chains, tests). Set viaAdminUtils::sudo_set_basket_concentration_cap.
basketDailyTurnoverCap: u16
- interface:
api.query.subtensorModule.basketDailyTurnoverCap - summary: ITEM --> capacity of a fund's
swap_basketturnover bucket as a u16-normalized share of the fund's NAV (u16::MAX= 100%). The bucket refills atcapacity / BASKET_TRADE_REFILL_BLOCKSper block, so at most one capacity can be pushed through the fund at any instant and about one per day sustained. Each leg is also bounded to [crate::BASKET_TRADE_MAX_SLIPPAGE_BPS] of both the moving price and the spot price. Set viaAdminUtils::sudo_set_basket_daily_turnover_cap.
basketDepositedTao(AccountId32): TaoBalance
-
interface:
api.query.subtensorModule.basketDepositedTao -
summary: 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 directstake_into_basketdeposits accumulate here, and dividend deposits add their fullvalue_addedeven 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.
basketLiquidityCap: u16
-
interface:
api.query.subtensorModule.basketLiquidityCap -
summary: ITEM --> max share of a subnet's alpha reserve (
SubnetAlphaIn) a fund may hold on that subnet after aswap_basketbuy (u16-normalized,u16::MAX= 100%).The concentration cap ([
BasketConcentrationCap]) marks holdings at realizable value, which is bounded by the pool's TAO reserve, so on a thin pool a fund could keep buying while counterparties sell back into its own price support and the realizable share never grows. This cap bounds the fund's exposure to any one pool's liquidity instead: with capLthe value at risk on a pool with TAO reserveRis aboutR × L² / (1 + L)(≈ 1% ofRat 10%). Set viaAdminUtils::sudo_set_basket_liquidity_cap.
basketLiquidityUsed(AccountId32, u16): (u64,u64)
-
interface:
api.query.subtensorModule.basketLiquidityUsed -
modifier:
Optional -
summary: MAP ( validator_hotkey, netuid ) -->
(alpha_bought, last_block)of destination-pool flow used byswap_basketin the current refill window.The standing-position liquidity cap resets when the fund sells the holding back to zero. This map does not: it accumulates alpha bought into
netuidand decays to zero over [crate::BASKET_TRADE_REFILL_BLOCKS], so accumulate/unwind cycles cannot spend the turnover budget as band slack. Follows the fund on hotkey swap (higher used, later block).
basketRate(AccountId32): FixedI128
-
interface:
api.query.subtensorModule.basketRate -
summary: MAP ( validator_hotkey ) --> cumulative fund-shares-per-root-stake accumulator.
Each dividend deposit increments this by
minted_shares / total_root_stake. A staker's gross entitlement isBasketRate * root_stake; net owed subtracts their [BasketClaimed] watermark. Stake additions/removals rebase the watermark byrate * deltaso changing root stake never retroactively grants or removes accrued claimable.
basketRedeemedTao(AccountId32): TaoBalance
-
interface:
api.query.subtensorModule.basketRedeemedTao -
summary: MAP ( validator_hotkey ) --> lifetime TAO redeemed (claimed) out of the basket.
Cumulative sum of every claim's realized payout. See [
BasketDepositedTao].
basketShares(AccountId32): u64
-
interface:
api.query.subtensorModule.basketShares -
summary: MAP ( validator_hotkey ) --> total outstanding basket fund shares
P.A validator's beta basket is a single fund: its holdings are the escrow stake positions
(hotkey, escrow, netuid)across subnets (the root slot is the fund's TAO/cash position), and its net asset valueNis the realizable (slippage-aware) TAO value of those holdings. Stakers' entitlements are denominated in fund shares, never in any particular subnet's alpha: dividend deposits mintvalue_added * P / Nshares, wherevalue_addedis the realizable NAV the deposit actually added, and redemption pays the staker's owed share fractionowed / Pof every holding, sold pro-rata. Directstake_into_basketdeposits additionally cap that NAV-priced mint by the fraction of every existing holding actually acquired, so their proportional redemption cannot sell more units than they bought. Their shares are credited through the signed [BasketClaimed] watermark. Because entitlement is decoupled from composition, holdings can be rebalanced (validator-directed trading, dissolution conversions) without touching any staker's claim.
basketTradeBucket(AccountId32): (u64,u64)
- interface:
api.query.subtensorModule.basketTradeBucket - modifier:
Optional - summary: MAP ( validator_hotkey ) -->
(tao_available, last_refill_block)of the fund'sswap_basketturnover bucket. A missing row is a full bucket (a new fund starts full). On each trade the bucket is refilled for the blocks elapsed sincelast_refill_blockatbudget / BASKET_TRADE_REFILL_BLOCKSper block, clamped to one budget (NAV at that moment), then the TAO through the middle of the swap is taken out. Follows the fund on hotkey swap (lower level, later refill block).
basketTradingEnabled: bool
- interface:
api.query.subtensorModule.basketTradingEnabled - summary: Master switch for
swap_basket(validator-directed basket rebalancing). Defaults to OFF. Flipped on viaAdminUtils::sudo_set_basket_trading_enabled. Gates only the trade path: deposits, claims, dividend accrual, and all read paths are unaffected.
basketTradingFrozen(AccountId32): Null
-
interface:
api.query.subtensorModule.basketTradingFrozen -
modifier:
Optional -
summary: SET ( validator_hotkey ) --> basket trading frozen for this fund.
Per-fund kill switch set by governance (
AdminUtils::sudo_set_basket_trading_frozen), e.g. after a suspected key compromise. A frozen fund still accepts deposits and pays claims; onlyswap_basketis refused. Follows the fund on hotkey swap.
basketTwr(AccountId32): FixedU128
-
interface:
api.query.subtensorModule.basketTwr -
summary: MAP ( validator_hotkey ) --> the fund's staker total-return accumulator.
The one canonical root-staker return series. Starts at 1.0 and multiplies by
1 + stakers_value / total_root_stakeon every dividend share mint — the value that deposit actually added per rao of claimant root stake, locked in at the deposit's own (realizable) pricing. Flows never move it; only dividends do. The staker return of τ1 staked over any window (claim-and-restake convention) isTwr(t1) / Twr(t0) - 1, so any two archive samples agree for every consumer. Everything staker-facing derives from it:stake_priceis this accumulator spliced onto the stake index (tr_splice × Twr), and the index chains its relatives. The rate-delta figure(BasketRate - rate0) * priceis not an alternative return series — it is the pending-entitlement mark (staker_yield), which re-values all accrued β at today's price. Accumulates from the upgrade that introduced it; earlier history lives in the seededtr_splice(seemigrate_stamp_beta_baselines). Like [BetaBaseline], scoped to one fund life: moves on hotkey swap and is retired when the fund drains or a dust revival starts a new life.
betaBaseline(AccountId32): BetaBaselineOf
-
interface:
api.query.subtensorModule.betaBaseline -
modifier:
Optional -
summary: MAP ( validator_hotkey ) --> the fund's frozen display baseline (see [
BetaBaselineOf]).Stamped once at the fund's first share mint (or seeded from the frozen SDK table by
migrate_stamp_beta_baselinesfor funds that predate on-chain stamping) and never rewritten, so the spliced display/stake prices stay continuous for the fund's whole life. Scoped to one fund life: follows the fund on hotkey swap, and is retired when the last share is claimed or a dust revival starts a new life (seeretire_beta_display_state), so an entry exists only while the fund has outstanding shares. Also absent for funds born before this storage existed that have not minted since; such funds price provisionally at the live index level until their next mint stamps them.
betaIndexFundSample(AccountId32): BetaIndexFundSampleOf
-
interface:
api.query.subtensorModule.betaIndexFundSample -
modifier:
Optional -
summary: MAP ( validator_hotkey ) --> the fund's last completed index-sweep sample (see [
BetaIndexFundSampleOf]).Written by the sweep as it visits each fund (the current pass's sample replaces the previous pass's in the same visit) and consumed as the start-of-period state of the next pass's price relative. Removed when the fund becomes unpriceable, retires, or starts a new life, so no relative ever chains across a gap in the fund's history.
betaIndexSnapshot: BetaIndexSnapshotOf
-
interface:
api.query.subtensorModule.betaIndexSnapshot -
modifier:
Optional -
summary: ITEM --> the latest published beta-index snapshot (see [
BetaIndexSnapshotOf]).Refreshed by the paged background sweep in block processing; read by baseline stamps so no state-changing path ever sweeps every fund inline. Absent until the first pass after genesis (or the runtime upgrade that introduced it) completes; stamps simply wait for the next mint while it is absent.
betaIndexSweep: BetaIndexSweepOf
-
interface:
api.query.subtensorModule.betaIndexSweep -
modifier:
Optional -
summary: ITEM --> in-progress paged beta-index sweep (see [
BetaIndexSweepOf]).Present only mid-pass.
advance_beta_index_sweepprocesses one strictly bounded page per block and clears this on completion.
blockAtRegistration(u16, u16): u64
- interface:
api.query.subtensorModule.blockAtRegistration - summary: DMAP ( netuid, uid ) --> block_at_registration
blockEmission: u64
- interface:
api.query.subtensorModule.blockEmission - summary: ITEM ( global_block_emission )
blocksSinceLastStep(NetUid): u64
- interface:
api.query.subtensorModule.blocksSinceLastStep - summary: MAP ( netuid ) --> blocks_since_last_step, capped at the subnet's
tempo + 1
bonds(u16, u16): Vec<(u16,u16)>
- interface:
api.query.subtensorModule.bonds - summary: DMAP ( netuid, uid ) --> bonds
bondsMovingAverage(NetUid): u64
- interface:
api.query.subtensorModule.bondsMovingAverage - summary: MAP ( netuid ) --> bonds_moving_average
bondsPenalty(NetUid): u16
- interface:
api.query.subtensorModule.bondsPenalty - summary: MAP ( netuid ) --> bonds_penalty
bondsResetOn(NetUid): bool
- interface:
api.query.subtensorModule.bondsResetOn - summary: MAP ( netuid ) --> bonds_reset
burn(NetUid): TaoBalance
- interface:
api.query.subtensorModule.burn - summary: MAP ( netuid ) --> Burn
burnHalfLife(NetUid): u16
- interface:
api.query.subtensorModule.burnHalfLife - summary: MAP ( netuid ) --> BurnHalfLife (blocks)
burnIncreaseMult(NetUid): FixedU128
- interface:
api.query.subtensorModule.burnIncreaseMult - summary: MAP ( netuid ) --> BurnIncreaseMult
burnRegistrationsThisInterval(NetUid): u16
- interface:
api.query.subtensorModule.burnRegistrationsThisInterval - summary: MAP ( netuid ) --> burn_registrations_this_interval
childKeys(AccountId32, u16): Vec<(u64,AccountId32)>
- interface:
api.query.subtensorModule.childKeys - summary: DMAP ( parent, netuid ) --> Vec<(proportion,child)>
childkeyTake(AccountId32, u16): PerU16
- interface:
api.query.subtensorModule.childkeyTake - summary: DMAP ( hot, netuid ) --> take | Returns the hotkey childkey take for a specific subnet
childkeyThresholdChecks(AccountId32): Null
- interface:
api.query.subtensorModule.childkeyThresholdChecks - modifier:
Optional - summary: MAP ( parent ) --> () | Parents with live child relations whose stake just changed. Drained in
on_idle, where each parent's total stake is re-checked againstStakeThresholdandChildkeyThresholdSuspendedis set or cleared.
childkeyThresholdSuspended(AccountId32): Null
- interface:
api.query.subtensorModule.childkeyThresholdSuspended - modifier:
Optional - summary: MAP ( parent ) --> () | Parents whose total stake is below
StakeThreshold. Their child relations stay stored but are inert (hidden fromget_children/get_parents) except on subnets they own, until they qualify again.
ckBurn: u64
- interface:
api.query.subtensorModule.ckBurn - summary: ITEM --> CK burn
coldkeyCollateralHotkeys(u16, AccountId32): Vec<AccountId32>
-
interface:
api.query.subtensorModule.coldkeyCollateralHotkeys -
summary: DMAP ( netuid, coldkey ) --> BoundedVec of hotkeys
Hotkeys with a standing [
MinerCollateral] row for this coldkey on the subnet. Kept in sync by collateral create / remove / swap paths so coldkey swaps migrate bonds with a bounded indexed walk (see [MAX_COLDKEY_COLLATERAL_HOTKEYS]) instead of scanning unbounded association vectors.
coldkeyMinerCollateral(u16, AccountId32): AlphaBalance
-
interface:
api.query.subtensorModule.coldkeyMinerCollateral -
summary: MAP ( netuid, coldkey ) --> total locked miner collateral
O(1)aggregate ofMinerCollateral.lockedacross that coldkey's hotkeys on the subnet. Kept in sync by collateral credit / settle paths so unstake availability checks do not scanOwnedHotkeys.
coldkeyRoot(AccountId32): AccountId32
- interface:
api.query.subtensorModule.coldkeyRoot - modifier:
Optional - summary: MAP ( coldkey ) --> root_coldkey | first coldkey in this swap lineage. Absent means the coldkey is its own root. Prefer root for owner-keyed bans/attribution, not a single SS58.
coldkeySuccessor(AccountId32): AccountId32
-
interface:
api.query.subtensorModule.coldkeySuccessor -
modifier:
Optional -
summary: MAP ( old_coldkey ) --> new_coldkey | global coldkey swap successor.
Written on each successful coldkey swap so watchers can follow owner identity without an archive node. Global (not per-netuid) because a coldkey swap moves ownership everywhere at once.
coldkeySwapAnnouncementDelay: u32
- interface:
api.query.subtensorModule.coldkeySwapAnnouncementDelay - summary: The delay after an announcement before a coldkey swap can be performed.
coldkeySwapAnnouncements(AccountId32): (u32,H256)
- interface:
api.query.subtensorModule.coldkeySwapAnnouncements - modifier:
Optional - summary: A map of the coldkey swap announcements from a coldkey to the block number the coldkey swap can be performed.
coldkeySwapDisputes(AccountId32): u32
- interface:
api.query.subtensorModule.coldkeySwapDisputes - modifier:
Optional - summary: A map of the coldkey swap disputes from a coldkey to the block number the coldkey swap was disputed.
coldkeySwapReannouncementDelay: u32
- interface:
api.query.subtensorModule.coldkeySwapReannouncementDelay - summary: The delay after the initial delay has passed before a new announcement can be made.
collateralDrainRatio(NetUid): FixedU128
-
interface:
api.query.subtensorModule.collateralDrainRatio -
summary: MAP ( netuid ) --> CollateralDrainRatio (k)
Alpha of locked collateral released per alpha of hotkey emission earned (miner incentive and validator dividends). Snapshot into
MinerCollateralat each registration.
collateralLockShare(NetUid): u16
-
interface:
api.query.subtensorModule.collateralLockShare -
summary: MAP ( netuid ) --> CollateralLockShare (p)
Share of the registration price locked as miner collateral instead of burned, normalized so
u16::MAX= 100%. 0 (the default) disables collateral: the whole registration price is burned as before.
commitRevealWeightsEnabled(NetUid): bool
- interface:
api.query.subtensorModule.commitRevealWeightsEnabled - summary: MAP ( netuid ) --> commit reveal v2 weights are enabled
commitRevealWeightsVersion: u16
- interface:
api.query.subtensorModule.commitRevealWeightsVersion - summary: ITEM ( CommitRevealWeightsVersion )
consensus(NetUid): Vec<PerU16>
- interface:
api.query.subtensorModule.consensus - summary: MAP ( netuid ) --> consensus
consensusByMechanism(NetUidStorageIndex): Vec<PerU16>
- interface:
api.query.subtensorModule.consensusByMechanism - summary: MAP ( netuid storage index ) --> previous epoch consensus for each mechanism
crv3WeightCommits(u16, u64): Vec<(AccountId32,Bytes,u64)>
- interface:
api.query.subtensorModule.crv3WeightCommits - summary: MAP (netuid, epoch) → VecDeque<(who, ciphertext, reveal_round)> Deprecated: superseded by
CRV3WeightCommitsV2.
crv3WeightCommitsV2(u16, u64): Vec<(AccountId32,u64,Bytes,u64)>
- interface:
api.query.subtensorModule.crv3WeightCommitsV2 - summary: MAP (netuid, epoch) → VecDeque<(who, commit_block, ciphertext, reveal_round)> Deprecated: superseded by
TimelockedWeightCommits.
currentDissolveCleanupStatus: DissolveCleanupStatus
- interface:
api.query.subtensorModule.currentDissolveCleanupStatus - modifier:
Optional - summary: ITEM ( current_dissolve_cleanup_status ) dissolve status for the network
decayingHotkeyLock(u16, AccountId32): LockState
- interface:
api.query.subtensorModule.decayingHotkeyLock - modifier:
Optional - summary: DMAP ( netuid, hotkey ) --> LockState | Total decaying non-owner lock per hotkey per subnet.
decayingLock(AccountId32, u16): bool
- interface:
api.query.subtensorModule.decayingLock - modifier:
Optional - summary: DMAP ( coldkey, netuid ) --> false | When present and false, this coldkey's lock is perpetual. Missing entries mean the lock decays by default.
decayingOwnerLock(NetUid): LockState
- interface:
api.query.subtensorModule.decayingOwnerLock - modifier:
Optional - summary: MAP ( netuid ) --> LockState | Total decaying lock to the owner hotkey for a subnet.
delegates(AccountId32): PerU16
- interface:
api.query.subtensorModule.delegates - summary: MAP ( hot ) --> take | Returns the hotkey delegation take. And signals that this key is open for delegation
difficulty(NetUid): u64
- interface:
api.query.subtensorModule.difficulty - summary: MAP ( netuid ) --> Difficulty
dissolveCleanupQueue: Vec<u16>
- interface:
api.query.subtensorModule.dissolveCleanupQueue - summary: ITEM ( dissolve_cleanup_queue ) Networks dissolved but some storage not removed yet
dissolveNetworkScheduleDuration: u32
- interface:
api.query.subtensorModule.dissolveNetworkScheduleDuration - summary: Duration of dissolve network schedule before execution
dividends(NetUid): Vec<PerU16>
- interface:
api.query.subtensorModule.dividends - summary: MAP ( netuid ) --> dividends
emaPriceHalvingBlocks(NetUid): u64
- interface:
api.query.subtensorModule.emaPriceHalvingBlocks - summary: MAP ( netuid ) --> Halving time of average moving price.
emission(NetUid): Vec<u64>
- interface:
api.query.subtensorModule.emission - summary: MAP ( netuid ) --> emission
emissionBarQuantile: FixedU128
- interface:
api.query.subtensorModule.emissionBarQuantile - summary: ITEM --> Emission Bar Quantile (q)
emissionBarRank: u16
- interface:
api.query.subtensorModule.emissionBarRank - summary: ITEM --> Emission Bar Rank (N). When non-zero, overrides the quantile.
emissionGateBar: FixedU128
- interface:
api.query.subtensorModule.emissionGateBar - summary: ITEM --> Emission gate bar (theta): the q-mass demand-share threshold the Hill gate is centered on. Recomputed on a fixed block cadence from the same EMA-price shares that drive emission. Zero means "not yet computed" and disables the gate.
emissionGateExponent: FixedU128
- interface:
api.query.subtensorModule.emissionGateExponent - summary: ITEM --> Emission Gate Exponent (h)
firstEmissionBlockNumber(NetUid): u64
- interface:
api.query.subtensorModule.firstEmissionBlockNumber - modifier:
Optional - summary: MAP ( netuid ) --> block number of first emission
flowEmaSmoothingFactor: u64
- interface:
api.query.subtensorModule.flowEmaSmoothingFactor - summary: ITEM --> Flow EMA smoothing factor (flow alpha), u64 normalized
flowNormExponent: FixedU128
- interface:
api.query.subtensorModule.flowNormExponent - summary: ITEM --> Flow Normalization Exponent (p)
hasMigrationRun(Bytes): bool
- interface:
api.query.subtensorModule.hasMigrationRun - summary: Storage for migration run status
hotkeyLock(u16, AccountId32): LockState
- interface:
api.query.subtensorModule.hotkeyLock - modifier:
Optional - summary: DMAP ( netuid, hotkey ) --> LockState | Total lock per hotkey per subnet.
hotkeyRoot(u16, AccountId32): AccountId32
- interface:
api.query.subtensorModule.hotkeyRoot - modifier:
Optional - summary: DMap ( netuid, hotkey ) --> root_hotkey | first hotkey in this subnet's swap lineage. Absent means the hotkey is its own root (never swapped into, or never recorded). Ban/score against the root, not a single SS58.
hotkeySuccessor(u16, AccountId32): AccountId32
-
interface:
api.query.subtensorModule.hotkeySuccessor -
modifier:
Optional -
summary: DMap ( netuid, old_hotkey ) --> new_hotkey | hotkey swap successor on a subnet.
Written on each successful hotkey swap so watchers can follow identity without an archive node. Per-subnet because a swap may move a UID on one netuid while the old hotkey remains registered elsewhere.
identitiesV2(AccountId32): ChainIdentityV2
- interface:
api.query.subtensorModule.identitiesV2 - modifier:
Optional - summary: MAP ( coldkey ) --> identity
immuneOwnerUidsLimit(NetUid): u16
- interface:
api.query.subtensorModule.immuneOwnerUidsLimit - summary: MAP ( netuid ) --> Burn key limit
immunityPeriod(NetUid): u16
- interface:
api.query.subtensorModule.immunityPeriod - summary: MAP ( netuid ) --> immunity_period
incentive(NetUidStorageIndex): Vec<PerU16>
- interface:
api.query.subtensorModule.incentive - summary: MAP ( netuid ) --> incentive
isNetworkMember(AccountId32, u16): bool
- interface:
api.query.subtensorModule.isNetworkMember - summary: DMAP ( hotkey, netuid ) --> bool
kappa(NetUid): u16
- interface:
api.query.subtensorModule.kappa - summary: MAP ( netuid ) --> Kappa
keys(u16, u16): AccountId32
- interface:
api.query.subtensorModule.keys - summary: DMAP ( netuid, uid ) --> hotkey
largestLocked(NetUid): u64
- interface:
api.query.subtensorModule.largestLocked - summary: MAP ( netuid ) --> largest_locked
lastAdjustmentBlock(NetUid): u64
- interface:
api.query.subtensorModule.lastAdjustmentBlock - summary: MAP ( netuid ) --> Block at last adjustment.
lastColdkeyHotkeyStakeBlock(AccountId32, AccountId32): u64
- interface:
api.query.subtensorModule.lastColdkeyHotkeyStakeBlock - modifier:
Optional - summary: Map (coldkey, hotkey) --> u64 the last block at which root stake was added/removed/claimed for that pair. Used solely as the age basis for
RootStakeUnlockInterval. Non-root stake ops must not write this map.
lastEpochBlock(NetUid): u64
- interface:
api.query.subtensorModule.lastEpochBlock - summary: MAP ( netuid ) --> last epoch attempt block (consumed slot). Drives normal-cadence scheduling and the admin freeze window. Advances on every
should_run_epoch == trueslot — including consistency-skipped slots — and on a successfulsudo_set_tempo(cycle reset).
lastHotkeyEmissionOnNetuid(AccountId32, u16): AlphaBalance
- interface:
api.query.subtensorModule.lastHotkeyEmissionOnNetuid - summary: DMap ( hot, netuid ) --> emission | last hotkey emission on network.
lastHotkeySwapOnNetuid(u16, AccountId32): u64
- interface:
api.query.subtensorModule.lastHotkeySwapOnNetuid - summary: DMap ( netuid, coldkey ) --> blocknumber | last hotkey swap on network.
lastMechansimStepBlock(NetUid): u64
- interface:
api.query.subtensorModule.lastMechansimStepBlock - summary: MAP ( netuid ) --> last_mechanism_step_block
lastRateLimitedBlock(RateLimitKey): u64
- interface:
api.query.subtensorModule.lastRateLimitedBlock - summary: MAP ( RateLimitKey ) --> Block number in which the last rate limited operation occured
lastTxBlock(AccountId32): u64
- interface:
api.query.subtensorModule.lastTxBlock - summary: MAP ( key ) --> last_block
lastTxBlockChildKeyTake(AccountId32): u64
- interface:
api.query.subtensorModule.lastTxBlockChildKeyTake - summary: MAP ( key ) --> last_tx_block_childkey_take
lastTxBlockDelegateTake(AccountId32): u64
- interface:
api.query.subtensorModule.lastTxBlockDelegateTake - summary: MAP ( key ) --> last_tx_block_delegate_take
lastUpdate(NetUidStorageIndex): Vec<u64>
- interface:
api.query.subtensorModule.lastUpdate - summary: MAP ( netuid ) --> last_update
liquidAlphaConsensusMode(NetUid): ConsensusMode
- interface:
api.query.subtensorModule.liquidAlphaConsensusMode - summary: Consensus mode used by liquid alpha for each subnet.
liquidAlphaOn(NetUid): bool
- interface:
api.query.subtensorModule.liquidAlphaOn - summary: MAP ( netuid ) --> Whether or not Liquid Alpha is enabled
loadedEmission(NetUid): Vec<(AccountId32,u64,u64)>
- interface:
api.query.subtensorModule.loadedEmission - modifier:
Optional - summary: MAP ( netuid ) --> (hotkey, se, ve)
lock(AccountId32, u16, AccountId32): LockState
- interface:
api.query.subtensorModule.lock - modifier:
Optional - summary: DMAP ( coldkey, netuid, hotkey ) --> LockState | Exponential lock per coldkey per subnet.
lockingColdkeys(u16, AccountId32, AccountId32): Null
- interface:
api.query.subtensorModule.lockingColdkeys - modifier:
Optional - summary: NMAP ( netuid, hotkey, coldkey ) --> () | Reverse index for non-zero locks targeting this hotkey on this subnet.
maturityRate: u64
- interface:
api.query.subtensorModule.maturityRate - summary: ITEM( maturity_rate ) | Decay timescale in blocks for lock conviction.
maxAllowedUids(NetUid): u16
- interface:
api.query.subtensorModule.maxAllowedUids - summary: MAP ( netuid ) --> max_allowed_uids
maxAllowedValidators(NetUid): u16
- interface:
api.query.subtensorModule.maxAllowedValidators - summary: MAP ( netuid ) --> max_allowed_validators
maxBurn(NetUid): TaoBalance
- interface:
api.query.subtensorModule.maxBurn - summary: MAP ( netuid ) --> MaxBurn
maxChildkeyTake: PerU16
- interface:
api.query.subtensorModule.maxChildkeyTake - summary: ITEM ( default_childkey_take )
maxDelegateTake: PerU16
- interface:
api.query.subtensorModule.maxDelegateTake - summary: ITEM ( default_delegate_take )
maxDifficulty(NetUid): u64
- interface:
api.query.subtensorModule.maxDifficulty - summary: MAP ( netuid ) --> MaxDifficulty
maxEpochsPerBlock: u8
- interface:
api.query.subtensorModule.maxEpochsPerBlock - summary: ITEM ( max_epochs_per_block )
maxMechanismCount: MechId
- interface:
api.query.subtensorModule.maxMechanismCount - summary: ITEM( max_mechanism_count )
maxRegistrationsPerBlock(NetUid): u16
- interface:
api.query.subtensorModule.maxRegistrationsPerBlock - summary: ITEM( global_max_registrations_per_block )
maxWeightsLimit(NetUid): u16
- interface:
api.query.subtensorModule.maxWeightsLimit - summary: MAP ( netuid ) --> max_weight_limit
mechanismCountCurrent(NetUid): MechId
- interface:
api.query.subtensorModule.mechanismCountCurrent - summary: MAP ( netuid ) --> Current number of subnet mechanisms
mechanismEmissionSplit(NetUid): Vec<u16>
- interface:
api.query.subtensorModule.mechanismEmissionSplit - modifier:
Optional - summary: MAP ( netuid ) --> Normalized vector of emission split proportion between subnet mechanisms
minActivityCutoff: u16
- interface:
api.query.subtensorModule.minActivityCutoff
minAllowedUids(NetUid): u16
- interface:
api.query.subtensorModule.minAllowedUids - summary: MAP ( netuid ) --> min_allowed_uids
minAllowedWeights(NetUid): u16
- interface:
api.query.subtensorModule.minAllowedWeights - summary: MAP ( netuid ) --> min_allowed_weights
minBurn(NetUid): TaoBalance
- interface:
api.query.subtensorModule.minBurn - summary: MAP ( netuid ) --> MinBurn
minChildkeyTake: PerU16
- interface:
api.query.subtensorModule.minChildkeyTake - summary: ITEM ( min_childkey_take )
minChildkeyTakePerSubnet(NetUid): PerU16
- interface:
api.query.subtensorModule.minChildkeyTakePerSubnet - summary: MAP ( netuid ) --> take | Returns the subnet-specific minimum childkey take.
minDelegateTake: PerU16
- interface:
api.query.subtensorModule.minDelegateTake - summary: ITEM ( min_delegate_take )
minDifficulty(NetUid): u64
- interface:
api.query.subtensorModule.minDifficulty - summary: MAP ( netuid ) --> MinDifficulty
minerBurned(NetUid): FixedU128
- interface:
api.query.subtensorModule.minerBurned - summary: MAP ( netuid ) --> miner_burned | Proportion (0..1) of this tempo's miner (incentive) emission that was withheld from miners during emission distribution because the recipient hotkey is owned by the subnet owner (immune key). Counts emission that is either recycled or burned, so the value is independent of the subnet's RecycleOrBurn configuration.
minerCollateral(u16, AccountId32, AccountId32): MinerCollateralState
-
interface:
api.query.subtensorModule.minerCollateral -
modifier:
Optional -
summary: NMAP ( netuid, hotkey, coldkey ) --> MinerCollateralState
Standing registration collateral of a
(hotkey, coldkey)stake position on a subnet. Keyed by coldkey so nominators on the same hotkey are never charged for the owner's bond. The entry persists across deregistration and is only removed when fully drained through earned emission.
minNonImmuneUids(NetUid): u16
- interface:
api.query.subtensorModule.minNonImmuneUids - summary: MAP ( netuid ) --> minimum required number of non-immortal & non-immune UIDs
netTaoFlowEnabled: bool
- interface:
api.query.subtensorModule.netTaoFlowEnabled
networkImmunityPeriod: u64
- interface:
api.query.subtensorModule.networkImmunityPeriod - summary: ITEM( network_immunity_period )
networkLastLockCost: TaoBalance
- interface:
api.query.subtensorModule.networkLastLockCost - summary: ITEM( last_network_lock_cost )
networkLockReductionInterval: u64
- interface:
api.query.subtensorModule.networkLockReductionInterval - summary: ITEM( network_lock_reduction_interval )
networkMinLockCost: TaoBalance
- interface:
api.query.subtensorModule.networkMinLockCost - summary: ITEM( min_network_lock_cost )
networkPowRegistrationAllowed(NetUid): bool
- interface:
api.query.subtensorModule.networkPowRegistrationAllowed - summary: MAP ( netuid ) --> network_pow_allowed
networkRateLimit: u64
- interface:
api.query.subtensorModule.networkRateLimit - summary: ITEM( network_rate_limit )
networkRegisteredAt(NetUid): u64
- interface:
api.query.subtensorModule.networkRegisteredAt - summary: MAP ( netuid ) --> block_created
networkRegistrationAllowed(NetUid): bool
- interface:
api.query.subtensorModule.networkRegistrationAllowed - summary: MAP ( netuid ) --> network_registration_allowed
networkRegistrationLockId: u32
- interface:
api.query.subtensorModule.networkRegistrationLockId - summary: MAP ( coldkey ) --> lock_id
networkRegistrationQueue: Vec<PalletSubtensorSubnetsSubnetNetworkRegistrationInfo>
- interface:
api.query.subtensorModule.networkRegistrationQueue - summary: ITEM ( network_registration_queue ) Network registrations waiting to be executed.
networkRegistrationStartBlock: u64
- interface:
api.query.subtensorModule.networkRegistrationStartBlock - summary: ITEM( NetworkRegistrationStartBlock )
networksAdded(NetUid): bool
- interface:
api.query.subtensorModule.networksAdded - summary: MAP ( netuid ) --> network_is_added
neuronCertificates(u16, AccountId32): NeuronCertificate
- interface:
api.query.subtensorModule.neuronCertificates - modifier:
Optional - summary: MAP ( netuid, hotkey ) --> certificate
nextStakeJobId: u64
- interface:
api.query.subtensorModule.nextStakeJobId - summary: Ensures unique IDs for StakeJobs storage map
nextSubnetLeaseId: u32
- interface:
api.query.subtensorModule.nextSubnetLeaseId - summary: ITEM ( next_lease_id ) | The next lease id.
nominatorMinRequiredStake: u64
- interface:
api.query.subtensorModule.nominatorMinRequiredStake - summary: ITEM( nominator_min_required_stake ) --- Factor of DefaultMinStake in per-mill format.
numStakingColdkeys: u64
- interface:
api.query.subtensorModule.numStakingColdkeys
ownedHotkeys(AccountId32): Vec<AccountId32>
- interface:
api.query.subtensorModule.ownedHotkeys - summary: MAP ( cold ) --> Vec<hot> | Returns the vector of hotkeys controlled by this coldkey.
owner(AccountId32): AccountId32
- interface:
api.query.subtensorModule.owner - summary: MAP ( hot ) --> cold | Returns the controlling coldkey for a hotkey
ownerCutAutoLockEnabled(NetUid): bool
- interface:
api.query.subtensorModule.ownerCutAutoLockEnabled - summary: MAP ( netuid ) --> bool | Whether subnet owner cut should be auto-locked. Missing entries default to false, so auto-locking is disabled unless explicitly enabled.
ownerCutEnabled(NetUid): bool
- interface:
api.query.subtensorModule.ownerCutEnabled - summary: MAP ( netuid ) --> owner_cut_enabled
ownerHyperparamRateLimit: u16
- interface:
api.query.subtensorModule.ownerHyperparamRateLimit - summary: Global number of epochs used to rate limit subnet owner hyperparameter updates
ownerLock(NetUid): LockState
- interface:
api.query.subtensorModule.ownerLock - modifier:
Optional - summary: MAP ( netuid ) --> LockState | Total perpetual lock to the owner hotkey for a subnet.
palletVersion: u16
- interface:
api.query.subtensorModule.palletVersion - modifier:
Required - summary: Returns the current pallet version from storage
parentKeys(AccountId32, u16): Vec<(u64,AccountId32)>
- interface:
api.query.subtensorModule.parentKeys - summary: DMAP ( child, netuid ) --> Vec<(proportion,parent)>
pendingBasketDeposits(AccountId32, u16): AlphaBalance
- interface:
api.query.subtensorModule.pendingBasketDeposits - summary: DMAP ( hotkey, netuid ) --> alpha | Root dividend credits waiting to enter the validator's beta basket. Epochs enqueue here instead of depositing inline (a deposit prices a share mint against the fund's full NAV — one AMM quote per holding — so running one per validator inside the epoch made epoch blocks scale with
validators x holdings). Credits merge per (hotkey, origin subnet) and are flushed as a single batched deposit per hotkey: by the one-hotkey-per-block round-robin drain (flush_pending_basket_deposits_block), or eagerly whenever the hotkey's claimant base or basket is touched (claims, basket stakes, root stake changes, hotkey swaps), so stake added after an epoch can never capture dividends earned before it arrived. Credits whose spot value is belowRootClaimableThreshold[ROOT]stay queued and keep merging until they are worth a deposit, which is what keeps dust from ever becoming a basket holding row. Hotkeys deregistered from root have their remaining queued credits recycled and purged (pending only — basket holdings are untouched).
pendingBasketFlushCursor: Bytes
- interface:
api.query.subtensorModule.pendingBasketFlushCursor - modifier:
Optional - summary: ITEM ( raw storage key ) | Round-robin cursor of the per-block pending-basket-deposit flush over [
PendingBasketDeposits]: the drain flushes one hotkey per block and resumes here, so every queued hotkey gets its turn even when some entries are deferred dust that stays in the map after its hotkey's visit.
pendingChildKeyCooldown: u64
- interface:
api.query.subtensorModule.pendingChildKeyCooldown - summary: Storage value for pending childkey cooldown, settable by root.
pendingChildKeys(u16, AccountId32): (Vec<(u64,AccountId32)>,u64)
- interface:
api.query.subtensorModule.pendingChildKeys - summary: DMAP ( netuid, parent ) --> (Vec<(proportion,child)>, cool_down_block)
pendingEpochAt(NetUid): u64
- interface:
api.query.subtensorModule.pendingEpochAt - summary: MAP ( netuid ) --> block at which a manually triggered epoch should fire.
0means no trigger pending. Cleared after the triggered epoch runs.
pendingOwnerCut(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.pendingOwnerCut - summary: MAP ( netuid ) --> pending_owner_cut
pendingRootAlphaDivs(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.pendingRootAlphaDivs - summary: MAP ( netuid ) --> pending_root_alpha_emission
pendingServerEmission(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.pendingServerEmission - summary: MAP ( netuid ) --> pending_server_emission
pendingValidatorEmission(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.pendingValidatorEmission - summary: MAP ( netuid ) --> pending_validator_emission
powRegistrationsThisInterval(NetUid): u16
- interface:
api.query.subtensorModule.powRegistrationsThisInterval - summary: MAP ( netuid ) --> pow_registrations_this_interval
prometheus(u16, AccountId32): PrometheusInfo
- interface:
api.query.subtensorModule.prometheus - modifier:
Optional - summary: MAP ( netuid, hotkey ) --> prometheus_info
raoRecycledForRegistration(NetUid): TaoBalance
- interface:
api.query.subtensorModule.raoRecycledForRegistration - summary: MAP ( netuid ) --> global_RAO_recycled_for_registration
recycleOrBurn(NetUid): RecycleOrBurnEnum
- interface:
api.query.subtensorModule.recycleOrBurn - summary: MAP ( netuid ) --> recycle_or_burn
registeredSubnetCounter(NetUid): u64
-
interface:
api.query.subtensorModule.registeredSubnetCounter -
summary: MAP ( netuid ) --> registered_subnet_counter
Monotonic counter incremented on every successful
do_register_networkfor a given netuid. Consumers that persist per-netuid state keyed by(user, netuid)(e.g. the staking precompileAllowancesStorage) can mix the current counter value into their storage key so that entries written under a previous registration of the same netuid become unreachable after the netuid is re-registered, without requiring unbounded storage iteration on deregistration.
registrationsThisBlock(NetUid): u16
- interface:
api.query.subtensorModule.registrationsThisBlock - summary: MAP ( netuid ) --> Registrations of this Block.
registrationsThisInterval(NetUid): u16
- interface:
api.query.subtensorModule.registrationsThisInterval - summary: MAP ( netuid ) --> registrations_this_interval
revealPeriodEpochs(NetUid): u64
- interface:
api.query.subtensorModule.revealPeriodEpochs - summary: Map (netuid) --> Number of epochs allowed for commit reveal periods
rho(NetUid): u16
- interface:
api.query.subtensorModule.rho - summary: MAP ( netuid ) --> Rho
rootAlphaDividendsPerSubnet(u16, AccountId32): AlphaBalance
- interface:
api.query.subtensorModule.rootAlphaDividendsPerSubnet - summary: DMAP ( netuid, hotkey ) --> u64 | Last root alpha dividend this hotkey got on tempo.
rootClaimable(AccountId32): BTreeMap
- interface:
api.query.subtensorModule.rootClaimable - summary: MAP ( hot ) --> MAP(netuid ) --> claimable_dividends | LEGACY per-subnet root claimable rates. Superseded by the unified [
BasketRate]; only read (and drained) bymigrate_seed_beta_basket. Do not use in runtime logic.
rootClaimableThreshold(NetUid): FixedI128
- interface:
api.query.subtensorModule.rootClaimableThreshold - summary: Basket redemption is fund-level (not per-subnet), so only the
NetUid::ROOTentry is consulted: a claim belowRootClaimableThreshold[ROOT]TAO is skipped as dust. Other entries are inert.
rootClaimed(u16, AccountId32, AccountId32): u128
- interface:
api.query.subtensorModule.rootClaimed - summary: LEGACY per-subnet claimed watermarks. Superseded by the unified [
BasketClaimed]; only read (and drained) bymigrate_seed_beta_basket. Do not use in runtime logic.
rootProp(NetUid): FixedU128
- interface:
api.query.subtensorModule.rootProp - summary: MAP ( netuid ) --> root_prop | The subnet root proportion.
rootStakeUnlockInterval: u64
- interface:
api.query.subtensorModule.rootStakeUnlockInterval - summary: Minimum number of blocks root (netuid 0) stake must be held before it can be removed from root (via
remove_stake, move/swap/transfer off root, etc.), keyed offLastColdkeyHotkeyStakeBlock.0disables the hold (default), preserving legacy behaviour. When set >= one tempo it neutralises epoch-boundary "just-in-time" dividend sniping: root stake is 1:1 TAO with no AMM slippage, so without this friction a sniper can stake right before a boundary, capture a full tempo's root dividend pro-rata to instantaneous stake, and exit immediately.
scalingLawPower(NetUid): u16
- interface:
api.query.subtensorModule.scalingLawPower - summary: MAP ( netuid ) --> scaling_law_power
servingRateLimit(NetUid): u64
- interface:
api.query.subtensorModule.servingRateLimit - summary: MAP ( netuid ) --> serving_rate_limit
stakeThreshold: u64
- interface:
api.query.subtensorModule.stakeThreshold - summary: ITEM( weights_min_stake )
stakeWeight(NetUid): Vec<u16>
- interface:
api.query.subtensorModule.stakeWeight - summary: DMAP ( netuid ) --> stake_weight | weight for stake used in YC.
stakingColdkeys(AccountId32): u64
- interface:
api.query.subtensorModule.stakingColdkeys - modifier:
Optional
stakingColdkeysByIndex(u64): AccountId32
- interface:
api.query.subtensorModule.stakingColdkeysByIndex - modifier:
Optional
stakingHotkeys(AccountId32): Vec<AccountId32>
- interface:
api.query.subtensorModule.stakingHotkeys - summary: MAP ( cold ) --> Vec<hot> | Maps coldkey to hotkeys that stake to it
startCallDelay: u64
- interface:
api.query.subtensorModule.startCallDelay - summary: ITEM( start_call_delay )
subnetAlphaIn(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.subnetAlphaIn - summary: MAP ( netuid ) --> alpha_supply_in_pool | Returns the amount of alpha in the pool.
subnetAlphaInEmission(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.subnetAlphaInEmission - summary: MAP ( netuid ) --> alpha_in_emission | Returns the amount of alph in emission into the pool per block.
subnetAlphaOut(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.subnetAlphaOut - summary: MAP ( netuid ) --> alpha_supply_in_subnet | Returns the amount of alpha in the subnet.
subnetAlphaOutEmission(NetUid): AlphaBalance
- interface:
api.query.subtensorModule.subnetAlphaOutEmission - summary: MAP ( netuid ) --> alpha_out_emission | Returns the amount of alpha out emission into the network per block.
subnetEmaProtocolFlow(NetUid): (u64,SubstrateFixedFixedI128)
- interface:
api.query.subtensorModule.subnetEmaProtocolFlow - modifier:
Optional - summary: MAP ( netuid ) --> subnet_ema_protocol_flow | EMA of protocol cost flow, same smoothing as SubnetEmaTaoFlow.
subnetEmaTaoFlow(NetUid): (u64,SubstrateFixedFixedI128)
- interface:
api.query.subtensorModule.subnetEmaTaoFlow - modifier:
Optional - summary: MAP ( netuid ) --> subnet_ema_tao_flow | Returns the EMA of TAO inflow-outflow balance.