Perpetual futures trading on Storm Trade DEX -- crypto, stocks, forex, and commodities on TON.
Read tools use the Storm Trade REST API. Write tools sign transactions from the agent wallet via the Storm Trade SDK.
| Tool | Description |
|---|---|
storm_markets |
List all available markets with prices, funding rates, and open interest |
storm_market_info |
Get detailed info for a specific market |
storm_positions |
List trader's open positions with unrealized P&L |
storm_orders |
List active and historical orders |
storm_trader_stats |
Get trader performance statistics and leaderboard |
storm_open_position |
Open a new perpetual position (long or short) |
storm_close_position |
Close an existing position (full or partial) |
storm_add_margin |
Add margin to an existing position |
storm_remove_margin |
Remove excess margin from a position |
storm_create_order |
Create a limit, stop-limit, take-profit, or stop-loss order |
storm_cancel_order |
Cancel a pending order |
storm_stake |
Stake USDT/TON/NOT in a vault to earn trading fees |
storm_unstake |
Unstake from a vault |
mkdir -p ~/.teleton/plugins
cp -r plugins/stormtrade ~/.teleton/plugins/Ask the AI:
- "Show me all available crypto markets"
- "Open a 10x long on BTC/USD with 100 USDT margin"
- "Close my ETH/USD short position"
- "Add 50 USDT margin to my BTC/USD long"
- "Create a limit buy for BTC/USD at $60,000"
- "Cancel my pending stop-loss on ETH/USD"
- "Show my open positions and P&L"
- "Stake 500 USDT in the vault"
- "Show the top traders leaderboard"
- Browse markets with
storm_marketsorstorm_market_info - Open a position with
storm_open_position(set direction, leverage, margin) - Monitor with
storm_positionsto track unrealized P&L - Manage risk:
storm_add_margin/storm_remove_marginto adjust collateral - Set automated exits with
storm_create_order(take-profit, stop-loss) - Close with
storm_close_position(full or partial) - Earn passive yield by staking in vaults with
storm_stake
Requires at runtime (provided by teleton):
@ton/core-- Cell building, address computation@ton/ton-- Wallet contract, TonClient@ton/crypto-- Mnemonic to private key@storm-trade/sdk-- Position/order building, vault configs
Agent wallet at ~/.teleton/wallet.json is used for signing all on-chain transactions.
List all available markets with prices, funding rates, and open interest.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
vault |
string | No | -- | Filter by vault: "usdt", "not", "native" |
Get detailed info for a specific market including price, funding rate, open interest, and trading limits.
| Param | Type | Required | Description |
|---|---|---|---|
market |
string | Yes | Market pair (e.g. "BTC/USD", "ETH/USD", "AAPL/USD") |
List trader's open positions with entry price, size, leverage, margin, and unrealized P&L.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
trader_address |
string | No | agent wallet | TON address of the trader |
asset |
string | No | -- | Filter by asset (e.g. "BTC") |
List active and historical orders for a trader.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
trader_address |
string | No | agent wallet | TON address of the trader |
asset |
string | No | -- | Filter by asset (e.g. "BTC") |
status |
string | No | "active" | "active" or "history" |
Get trader performance statistics, P&L history, or the leaderboard.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
trader_address |
string | No | agent wallet | TON address of the trader (ignored for leaderboard) |
view |
string | No | "stats" | "stats", "pnl_history", or "leaderboard" |
period |
integer | No | 7 | Time period in days |
Open a new perpetual position. Signs and sends the transaction from the agent wallet.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
market |
string | Yes | -- | Market pair (e.g. "BTC/USD") |
direction |
string | Yes | -- | "long" or "short" |
amount |
string | Yes | -- | Margin amount in vault currency (USDT/TON/NOT) |
leverage |
string | Yes | -- | Leverage multiplier (e.g. "10") |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
stop_loss |
string | No | -- | Stop-loss trigger price |
take_profit |
string | No | -- | Take-profit trigger price |
Close an existing position fully or partially.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
market |
string | Yes | -- | Market pair |
direction |
string | Yes | -- | "long" or "short" |
size |
string | No | full close | Base asset size to close (e.g. "0.5" for 0.5 BTC). Omit for full close |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
Add margin to an existing position to reduce liquidation risk.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
market |
string | Yes | -- | Market pair |
direction |
string | Yes | -- | "long" or "short" |
amount |
string | Yes | -- | Amount to add in vault currency |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
Remove excess margin from a position.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
market |
string | Yes | -- | Market pair |
direction |
string | Yes | -- | "long" or "short" |
amount |
string | Yes | -- | Amount to remove |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
Create a limit, stop-limit, stop-loss, or take-profit order.
For stopLoss / takeProfit orders:
| Param | Type | Required | Description |
|---|---|---|---|
market |
string | Yes | Market pair |
direction |
string | Yes | "long" or "short" |
order_type |
string | Yes | "stopLoss" or "takeProfit" |
amount |
string | Yes | Base asset size to close (e.g. "0.5") |
trigger_price |
string | Yes | Trigger price (e.g. "50000") |
expiration |
integer | No | Order expiration in seconds (default: 30 days) |
vault |
string | No | Vault: "usdt", "not", "native" |
For stopLimit / market orders:
| Param | Type | Required | Description |
|---|---|---|---|
market |
string | Yes | Market pair |
direction |
string | Yes | "long" or "short" |
order_type |
string | Yes | "stopLimit" or "market" |
amount |
string | Yes | Margin amount in vault currency |
leverage |
string | Yes | Leverage multiplier (e.g. "10") |
limit_price |
string | Yes | Limit price (e.g. "60000") |
stop_price |
string | No | Stop price (for stopLimit only) |
stop_trigger_price |
string | No | Auto stop-loss trigger price |
take_trigger_price |
string | No | Auto take-profit trigger price |
expiration |
integer | No | Order expiration in seconds (default: 30 days) |
vault |
string | No | Vault: "usdt", "not", "native" |
Cancel a pending order.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
market |
string | Yes | -- | Market pair |
direction |
string | Yes | -- | "long" or "short" |
order_type |
string | Yes | -- | "stopLoss", "takeProfit", "stopLimit", or "market" |
order_index |
integer | No | 0 | Index of the order to cancel |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
Stake in a vault to earn a share of trading fees.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
amount |
string | Yes | -- | Amount to stake in vault currency |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |
Unstake from a vault. Omit amount to unstake full balance.
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
amount |
string | No | full unstake | LP token amount to unstake |
vault |
string | No | "usdt" | Vault: "usdt", "not", "native" |