force_unreserve

Call v101 → current #5

Unreserves balance from an account (root only).

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: validators

The Big Picture

Reserved balance is locked for specific purposes (deposits, holds). This root-only call can forcibly release reserves without the normal release conditions being met.

Use Cases

  • Releasing stuck reserves
  • Emergency recovery
  • Fixing broken reserve states

From Chain Metadata

Unreserve some balance from a user by force. Can only be called by ROOT.

Input Parameters

#NameTypeDescription
0
who
MultiAddress AccountIdLookupOf<T>who: Account address as a lookup source (typically resolves to AccountId)
1
amount
u64 T::Balanceamount: Balance in chain native currency (RAO for TAO; ÷10⁹) (RAO -> TAO (/ 10^9))

Permissions

Origin
Unknown
Required Role

Permission data inferred from metadata. May be incomplete.

Requirements

  • Caller is root account
  • Target account has reserved balance

Effects

Events Emitted

Storage Modified

Postconditions

  • Reserved balance moved to free balance
  • Unreserved event emitted

Side Effects

  • May unreserve less than requested if insufficient reserved balance

Code Examples

// ----------------------------------------------------------------------
// HEADS UP: 1 arg below has a complex type with no usable default.
// Look for `undefined as any` and replace it with real value
// before running — the snippet compiles, but will fail at runtime as-is.
// ----------------------------------------------------------------------
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);

// Build force_unreserve call (typed, named args)
const who = undefined as any /* MultiAddress — replace with real value */;
const amount = 1_000_000_000n;

const tx = api.tx.Balances.force_unreserve({
  who,
  amount,
});

Runtime Info

Pallet Index
5
Call Index
5
First Version
v101
Current Version
v411