Deposits

Storage Map v154 → v411 Changed in v411

Deposits reserved by accounts for entering or extending safe-mode.

Explore chain
Queried by: validatorsdevelopersanalytics

The Big Picture

This is the audit trail for safe-mode activations. Each deposit represents someone who put TAO at risk to protect the network. Governance uses this to decide which deposits to release (legitimate activations) or slash (abuse).

Why This Matters

If you activated safe-mode, your deposit is tracked here. After safe-mode ends and ReleaseDelay passes, you can call release_deposit to recover your funds.

Example Scenario

You entered safe-mode at block 1000000. Query Deposits(your_account, 1000000) returns 100000000000 (100 TAO in RAO). Your deposit is still reserved.

Common Questions

Why is the key (account, block)?
Supports multiple deposits per account at different times. Each deposit is tracked separately and released independently.

Use Cases

  • Check if your deposit is still reserved
  • Build governance dashboards showing outstanding deposits
  • Track who activated safe-mode and when

From Chain Metadata

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.

Purpose & Usage

Purpose

Tracks who put up deposits to enter/extend safe-mode, and how much. Keyed by (account, block_number) to support multiple deposits per account and independent release timing.

Common Query Patterns

  • Query by (account, block) to check specific deposit
  • Iterate by account to find all deposits from an account
  • List all deposits for governance overview

Query Keys

#NameTypeDescription
1
accountId account
raw: key1
AccountId key1 (AccountId) (hex -> SS58)
2
blockNumber block
raw: key2
u32 key2 (u32)

Stored Value

Value in RAO (÷10⁹ for TAO)

RAO -> TAO (/ 10^9)

Relationships

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 Deposits storage
const key1 = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const key2 = 0;

const result = await api.query.SafeMode.Deposits.getValue(key1, key2);
console.log("Deposits:", result);

Version History

v154 block 3,308,611 Added
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
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
v253–v256 · runtime versions skipped on chain (never deployed)
v257 block 5,228,683 Internal re-bind
v259–v260 · runtime versions skipped on chain (never deployed)
v261 block 5,328,895 Internal re-bind
v266–v272 · runtime versions skipped on chain (never deployed)
v273 block 5,659,032 Internal re-bind
v275–v275 · runtime versions skipped on chain (never deployed)
v276 block 5,781,672 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
v324–v325 · runtime versions skipped on chain (never deployed)
v326 block 6,608,228 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
v378–v384 · runtime versions skipped on chain (never deployed)
v385 block 7,782,670 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

Pallet
SafeMode
Storage Kind
Map
First Version
v154
Current Version
v411