TransactionKeyLastBlock

Storage Map v195 → v411 Changed in v411

Last block for rate-limited transaction by key.

Explore chain
Queried by: developers

The Big Picture

Various transactions are rate-limited per key. This tracks the last block for each transaction type to enforce cooldowns.

Use Cases

  • Debug rate limits
  • Monitor transaction frequency

From Chain Metadata

================================= ==== Axon / Promo Endpoints ===== ================================= NMAP ( hot, netuid, name ) --> last_block | Returns the last block of a transaction for a given key, netuid, and name.

Purpose & Usage

Purpose

Track transaction timing for rate limiting.

Common Query Patterns

  • Query by (hotkey, netuid, name)

Query Keys

#NameTypeDescription
1
hot
AccountId hot (AccountId, hashed key component) (hex -> SS58)
2
netuid
u16 netuid (u16, hashed key component)
3
name
u16 name (u16, hashed key component)

Stored Value

last_block (u64)

RAO -> TAO (/ 10^9)

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 TransactionKeyLastBlock storage
const hot = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const netuid = 1;
const name = 0;

const result = await api.query.SubtensorModule.TransactionKeyLastBlock.getValue(hot, netuid, name);
console.log("TransactionKeyLastBlock:", result);

Version History

v195 block 3,791,350 Added
v202 block 3,848,823 Internal re-bind
v203–v204 · runtime versions skipped on chain (never deployed)
v205 block 4,209,446 Internal re-bind
v207–v209 · runtime versions skipped on chain (never deployed)
v210 block 4,345,556 Internal re-bind
v213–v215 · runtime versions skipped on chain (never deployed)
v216 block 4,510,996 Internal re-bind
v220–v232 · runtime versions skipped on chain (never deployed)
v233 block 4,920,350 Internal re-bind
v235–v237 · runtime versions skipped on chain (never deployed)
v238 block 4,936,550 Internal re-bind
v241–v243 · runtime versions skipped on chain (never deployed)
v244 block 4,999,897 Internal re-bind
v266–v272 · runtime versions skipped on chain (never deployed)
v273 block 5,659,032 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind
v293–v296 · runtime versions skipped on chain (never deployed)
v297 block 6,067,943 Internal re-bind
v316–v319 · runtime versions skipped on chain (never deployed)
v320 block 6,523,566 Internal re-bind
v327–v333 · runtime versions skipped on chain (never deployed)
v334 block 6,811,690 Internal re-bind
v353–v360 · runtime versions skipped on chain (never deployed)
v361 block 7,063,679 Internal re-bind
v363–v364 · runtime versions skipped on chain (never deployed)
v365 block 7,135,419 Internal re-bind
v386–v390 · runtime versions skipped on chain (never deployed)
v391 block 7,782,857 Internal re-bind
v394–v400 · runtime versions skipped on chain (never deployed)
v401 block 8,036,576 Internal re-bind
v403–v410 · runtime versions skipped on chain (never deployed)
v411 block 8,283,784 Internal re-bind Current

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v195
Current Version
v411