Positions
Storage Map v290 → v411 Changed in v411User liquidity positions with tick ranges.
Explore chainQueried by: stakersdeveloperswallets
The Big Picture
Each position has tick range and liquidity. Multiple positions per user allowed.
Use Cases
- Display LP positions
- Calculate position value
From Chain Metadata
Storage for user positions, using subnet ID and account ID as keys The value is a bounded vector of Position structs with details about the liquidity positions
Purpose & Usage
Purpose
Stores all LP positions per user per subnet.
Common Query Patterns
- Query by (netuid, account, position_id)
- Iterate by account
Query Keys
| # | Name | Type | Description |
|---|---|---|---|
| 1 | netuid netuid raw: key1 | u16 | key1 (u16) |
| 2 | accountId account raw: key2 | AccountId | key2 (AccountId) (hex -> SS58) |
| 3 | positionId raw: key3 | PositionId | key3 (PositionId) |
Stored Value
value (Position)
Relationships
Modified By
Related Events
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);
// Query Positions storage
const key1 = 0;
const key2 = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const key3 = undefined as any /* PositionId — replace with real value */;
const result = await api.query.Swap.Positions.getValue(key1, key2, key3);
console.log("Positions:", result);On-Chain Activity
Write Frequency
●●●○○○ Low 10K–100K est. writes
10K–100K estimated writes
#48 most written storage item
Write Source User Extrinsics
Modified via user-submitted extrinsics
As of block 7,429,232
Version History
v290 block 5,947,548 Added
v293–v296 · runtime versions skipped on chain (never deployed)
v297 block 6,067,943 Internal re-bind
v299–v300 · runtime versions skipped on chain (never deployed)
v301 block 6,205,194 Internal re-bind
v307–v314 · runtime versions skipped on chain (never deployed)
v315 block 6,414,634 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
View Source- Pallet
- Swap
- Storage Kind
- Map
- First Version
- v290
- Current Version
- v411