Skill-Details

injective-trading-account

Monitors trading balances, positions, and P&L.

ÜbereinstimmungDirektGeprüft für trading
Quelleinjectivelabs/agent-skillsExterne Quelle
Gemeldete Installationen28Nur Popularitätssignal

Vor Nutzung prüfen

Die automatische Prüfung bewertet Relevanz, nicht Sicherheit oder Empfehlung. Lies vor der Nutzung die Quellanweisungen.

Gespeicherte Quellvorschau

SKILL.md

Dieser Auszug wurde bei der Prüfung gespeichert. Die externe Quelle enthält die vollständige und aktuelle Version.

---
name: injective-trading-account
description: Analyze any Injective wallet address. Query bank balances across all token types (INJ, USDT, IBC assets, Peggy ERC-20s), inspect trading subaccount balances, and view open perpetual positions with unrealized P&L. Useful for portfolio monitoring, position management, and pre-trade checks. Requires the Injective MCP server to be connected.
uses: ["injective-mcp-servers"]
license: MIT
metadata:
  author: ckhbtc
  version: "0.0.0"
---

# Injective Trading Account, Skill Guide

Query balances and open positions for any Injective account.
No transactions/ signatures required.
All reads are public.

## When to apply

- When you are trading on Injective, and need information about your account
- When you are performing queries but not intending to perform transactions

## MCP Tools

The following tools in the **Injective MCP Server** are used by this skill.
Use the `injective-mcp-servers` skill for instructions on set up and usage.
The "activities" section describes the when and how to make these tool calls.

### account_balances

Returns bank + subaccount balances for an address.

```text
account_balances
  address: inj1...
  denom: usdt         ← optional: filter to one token
```

Returns:
- `bankBalances[]` - wallet-level balances (all denoms or filtered)
- `subaccountBalances[]` - per-subaccount trading balances
  - `subaccountId` - 0x... hex ID
  - `denom` - token denom
  - `deposit.totalBalance` - total (available + in orders)
  - `deposit.availableBalance` - free to trade

### account_positions

Returns open perpetual positions with P&L.

```text
account_positions
  address: inj1...
  market: BTC         ← optional: filter by symbol
```

Returns per position:
- `market` - symbol (BTC, ETH, etc.)
- `direction` - long | short
- `quantity` - contracts held
- `entryPrice` - average entry in USDT
- `markPrice` - current oracle price
- `unrealizedPnl` - USDT P&L at mark price
- `margin` - posted margin
- `leverage` - effective leverage

### token_metadata

Resolve any denom to human-readable metadata.

```text
token_metadata
  denom: peggy0xdac17f958d2ee523a2206206994597c13d831ec7
```

Returns: `{ symbol, name, decimals, type, peggyDenom }`

## Activities

When the user's request contains the following questions, map them to the MCP tool calls indicated.

### "What's my balance?"

```text
account_balances(address: inj1...)
→ show bankBalances + subaccountBalances summary
```

### "Do I have enough USDT to trade?"

```text
account_balances(address: inj1..., denom: usdt)
→ check subaccountBalances[0].deposit.availableBalance
```

If bank balance has USDT but subaccount doesn't:
Use `subaccount_deposit` to move funds in.
Note that this is not a read/ query, and will involve a transaction.

**Important:** Bank balance (wallet) ≠ exchange subaccount balance. Funds must be deposited to the exchange subaccount via `MsgDeposit` before placing derivative orders. Always check subaccount balance and auto-deposit if needed before trading.

### "Show my positions and P&L"

```text
account_positions(address: inj1...)
→ display each position with entry vs mark price and unrealizedPnl
```

### "What's my total portfolio value?"

```
account_balances    → sum all balances in USD equivalent
account_positions   → add unrealized P&L
```

## Denoms

Denoms are analogous to cryptocurrencies and fungible tokens.
Injective, being a MultiVM blockchain, supports multiple categories of denoms.

Denoms of different categories have different formats. See: `./references/denom-formats.md`
Use `token_metadata` to resolve any denom to a human-readable symbol.

## Margin Calculation

When estimating required margin for a position:

- **Add 1–2% buffer** above the exact minimum (`price × qty × initialMarginRatio`). The chain may reject orders at the exact minimum due to rounding.
- **Use `max(oraclePrice, markPrice)`** for margin validation. The chain validates against the higher of the two. Margin calculated from oracl
Vollständige Quelle auf GitHub lesen (öffnet externe Seite)
Kontext

Verwandte Arbeit