modify_position

Call v290 → current #3

Adds or removes liquidity from an existing position and claims fees.

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: stakersdeveloperswallets

The Big Picture

Flexible position management: add, remove, or just harvest fees.

Use Cases

  • Compound fees
  • Partial exit
  • Claim fees (delta=0)

From Chain Metadata

Modify a liquidity position. Parameters: origin: The origin of the transaction netuid: Subnet ID position_id: ID of the position to remove liquidity_delta: Liquidity to add (if positive) or remove (if negative) Emits `Event::LiquidityRemoved` on success

Part of: Concentrated Liquidity

Input Parameters

#NameTypeDescription
0
hotkey
AccountId hotkey: Account address (32 bytes, SS58-encoded) (hex -> SS58)
1
netuid
u16 NetUidnetuid: Subnet ID (u16, 0-65535)
2
position_id
PositionId position_id: AMM position identifier
3
liquidity_delta
i64 liquidity_delta (i64)

Permissions

Origin
Unknown
Required Role

Permission data inferred from metadata. May be incomplete.

Requirements

  • Position exists
  • Sufficient balance if adding
  • Sufficient liquidity if removing

Effects

Events Emitted

Postconditions

  • Position liquidity adjusted
  • Fees claimed

Side Effects

  • Emits LiquidityModified event
  • Fees always claimed on modify

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 modify_position call (typed, named args)
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const netuid = 1;
const position_id = undefined as any /* PositionId — replace with real value */;
const liquidity_delta = 0n;

const tx = api.tx.Swap.modify_position({
  hotkey,
  netuid,
  position_id,
  liquidity_delta,
});

Runtime Info

View Source
Pallet Index
28
Call Index
3
First Version
v290
Current Version
v411