# Storm Trade Docs — English

---



---

> Complete English documentation snapshot at revision d36475e7b456c737fae6933fa27b7e1bc2687f2c19291b05725ab2c4e8f79d7a.

---



---

# ⚡ About Storm Trade

Source: https://docs.storm.tg

# ⚡ About Storm Trade

**Storm Trade** is the first decentralized derivatives trading platform on Telegram, built on the TON blockchain. It offers the ability to trade with leverage of up to **x500**, enabling more aggressive strategies and potentially higher returns.

With direct integration into Telegram and Social-Fi mechanics, Storm Trade is set to onboard the next 10 million users into the DeFi world.

Storm is available for use both in the [Web App](http://app.storm.tg) and the [Telegram Bot](http://t.me/stormtradebot).

## ✍️ Key Features

- **Advanced Trading Options:** Leverage up to x500, real-time price updates, cryptocurrency trading pairs with collateral in $TON, $USDT, and $NOT.
- **Social-Fi Mechanics:** Direct integration into Telegram, squad trading tournaments, NFT collections, copy trading, and other viral mechanisms for better community engagement.
- **User-Friendly Interface:** A familiar interface in the best traditions of DEX trading, with TradingView charts.
- **Security:** Full decentralization and advanced security protocols to keep your funds safe.

## 🔗 Integration with Telegram

Storm Trade seamlessly integrates into the Telegram ecosystem, allowing users to trade directly within the Telegram Mini App (TMA). This deep integration ensures a high level of convenience and flexibility: no more switching between platforms — everything is at your fingertips.

The platform leverages Telegram's secure messaging infrastructure and familiar interface, making trading intuitive even for beginners.

**Users get:**

* Real-time notifications
* Direct access to the Telegram wallet
* Rewards for traders and liquidity providers

🏄 _This makes the experience with the platform even more appealing!_

## ⚡ Storm Trade: Your Next-Gen Trading Solution

Storm Trade is powered by two tokens: SLP and STORM:

* **🥏 SLP** - The liquidity provision token, minted when a user adds liquidity and burned when liquidity is withdrawn from the protocol.
* **🥏 STORM** - A deflationary utility token of the platform, used for reducing trading fees, paying protocol fees, accessing private community spaces, and rewarding active ambassadors.

---

# 🔮 What is Futures Trading

Source: https://docs.storm.tg/introduction/what_is_futures

# 🔮 What is Futures Trading

**Futures trading** involves trading contracts that allow you to profit from the rise or fall of an asset’s price — without owning the asset itself. These contracts are called **futures**, and while they represent a deal set for the future, the profit or loss is realized immediately.

In the futures market, traders can go **long (buy)** or **short (sell)** and earn from both upward and downward price movements.

## 💡 How it works on Storm Trade

Storm Trade is a **decentralized** futures exchange built on the TON blockchain. Here’s what makes it unique:

- 💰 You trade futures on crypto and other assets.
- 🧩 All trades are executed via smart contracts — no intermediaries.
- ⚖️ Full transparency and control: your funds remain in your wallet until you open a trade.
- ⚡ Lightning-fast execution thanks to the TON blockchain.

## 🆚 Spot vs Futures

To understand futures, it helps to see how they differ from regular **spot trading**:

|                     | **Spot Trading**                                   | **Futures Trading**                                 |
|---------------------|----------------------------------------------------|-----------------------------------------------------|
| **What you trade**  | The asset itself (e.g., 1 BTC)                     | A contract based on the asset's price movement      |
| **Market direction**| Only upward (buy low, sell high)                  | Both upward and downward (long & short)             |
| **Leverage**        | Typically not used                                 | Available (e.g., x5, x50, x500)                      |
| **Storage**         | You hold the actual asset                          | No need to own the asset                            |
| **Risk**            | Limited to the purchase amount                     | Can be liquidated if poorly managed                 |

## 📊 Benefits of Futures Trading

- **Leverage**: Control large positions with small capital.
- **Long & Short**: Profit from price movements in either direction.
- **Hedging**: Protect your portfolio from volatility.
- **Capital efficiency**: Make the most of your funds.

## 🚀 Why it matters

Futures trading gives you access to professional-level tools and strategies. With decentralization, Storm Trade removes entry barriers, reduces trust risks, and makes trading transparent, secure, and accessible.

---

🏄 _Ready to dive in?_

---

# 🛣️ Roadmap

Source: https://docs.storm.tg/introduction/roadmap

# 🛣️ Roadmap

🔍 This section showcases the journey of Storm Trade — from the first concepts to cutting-edge solutions shaping the future of trading. Follow our steps: we've already achieved a lot, and we're just getting started!

<div align="center">

<img src="img/roadmap.png" alt="">

</div>

## ✅ Completed:

### 📅 **$STORM TGE**  

*October 16, 2024* — the long-awaited $STORM token launch marked a major milestone in the Storm Trade ecosystem.

### 🎯 **RP Season 1**  

Over **60,000 participants** earned RP points and received 🎁 vouchers and STORM tokens for their platform activity.

### ⚙️ **Upgrade to Storm Trade V2.5**  

Storm Trade transitioned to **Protocol V2.5** with **liquidity aggregation**, eliminating traditional price impact.  

Introducing the **Sequencer** — a unique tech ensuring:
  - Zero slippage  
  - Guaranteed execution prices  
  - Lightning-fast order processing

### 🧙‍♂️ **Market Makers NFT Collection**  

A collection of **5555 unique 3D NFTs** reflecting market moods.  

Each NFT unlocks:  
  - Whitelist access to $STORM  
  - Custom profile  
  - Fee discounts  

📸 [Explore the collection](https://mirror.xyz/0x8c479fec4B3e837D71940294B2E990AA5819B8E0/Z1197l9g2FWFO81nJWg8vJrc72pKYgomsdtMwYOXkAw)

### 🎓 **Storm Academy Launch**  

[Telegram Mini App](https://t.me/StormTradeBot/academy) that merges gamified learning and a **Learn & Earn** model — gain real rewards as you learn.

### 🌐 **Global Partnerships**  

Expanding our partner network and strengthening Storm Trade’s presence across the Web3 and TON ecosystems.

### 🧭 **Ambassador Program**  

Launched on **November 19, 2024**, the program rewards contributors who help grow the project and spread the word.

### 💹 **New Trading Pairs: Crypto, Forex, RWA**  

Expanded markets — from top crypto assets to real-world assets (RWA), stocks, currencies, and commodities.

---

## 🔜 Coming Soon:

### 💎 **RP Season 2**  

New mechanics, prizes, and deeper engagement levels — Season 2 brings even more excitement to the RP program.

### ⚡ **Storm Instant Trading (v3)**  

Next-gen Perp DEX on TON:
  - Embedded smart wallet — no TON Connect needed  
  - Sub-200ms latency  
  - CEX-grade UX, fully decentralized  
  - High-frequency trading  
  - Oracle-based pricing with zero slippage  

💬 _**"CEX smoothness, DEX freedom — right inside Telegram"**_

### 🏦 **Built-in Wallet (v3)**  

Fully non-custodial and embedded into the platform. Advantages:
  - Gasless transactions  
  - Maximum asset security  
  - Seamless UX with no switching  
  - Total user control over funds

### 📊 **Spot Trading**  

The next big feature on Storm Trade:
  - Spot with leverage  
  - Limit orders  
  - Advanced strategies (scalping, grid)  
  - Trade automation tools

### 🧑‍🤝‍🧑 **SocialFi: Copy Trading**  

Turning trading into competition:
  - Follow top-performing traders  
  - Climb the leaderboards  
  - Form squads and trade as teams  
  - Earn seasonal rewards and exclusive airdrops

### 🤖 **AI Integration**  

Artificial Intelligence is coming to Storm Trade:
  - Entry & exit optimization  
  - Market movement predictions  
  - Personalized strategy suggestions  
  - Automatic strategy optimization  

Storm Trade continues to explore the future of AI-powered Web3 trading.

🏄 _Future upgrades are on the horizon — join us now and be among the first to ride the wave!_

---

# 🛡️ Audit Reports

Source: https://docs.storm.tg/introduction/auditreports

# 🛡️ Audit Reports

Storm Trade prioritizes the safety and transparency of its smart contracts and overall protocol architecture. Below you will find the details of conducted audits.

## ✅ Internal Audit by TON.Tech

Additionally, Storm Trade's smart contracts were audited by [TON.Tech](https://ton.tech/) - a team of TON experts supported by TON Foundation and powered by TOP, focused on supporting developers building on TON Blockchain.

****The audit included the following work:****

- **Smart contract architecture analysis:** Verified the logic, inter-contract interactions, and compliance with stated functionality.
- **Security review:** Analyzed potential vulnerabilities including reentrancy, overflows, unauthorized access, and other typical smart contract risks.
- **Recommendations:** Minor observations were identified and promptly addressed by the Storm Trade team. No critical vulnerabilities were found.
- **Conclusion:** Storm Trade's smart contracts were deemed safe for use, with all auditor recommendations implemented.

🔗 **[Read full audit report](https://static.storm.tg/audit-report.pdf)**

---

🏄 _We continue to follow the best security practices and plan to conduct further audits as the protocol evolves!_

---

# 🥏 STORM Token

Source: https://docs.storm.tg/storm-token-overview/token

# 🥏 STORM Token

## Introducing STORM

STORM is the utility token of Storm Trade with a capped supply of 1,000,000,000 tokens, designed to unite stakeholders, traders, and liquidity providers. STORM stakers and liquidity pool participants collectively share 30% of protocol fees, creating an organic deflationary model. The token also boosts the efficiency of protocol liquidity for trading, enabling flexible risk management and enhanced rewards for ecosystem participants.

## Token Details

* **Token Ticker**: STORM
* **Total Supply**: 1,000,000,000 STORM
* **Type**: Non-reissuable

## Distribution: Percentages and Vesting Periods

* **IDO**: 4.2% / 6 months
* **Community & Ecosystem**: 30% / 5 years
* **Investors**: 17.9% / 8 months
* **Advisors**: 5% / 2.5 years
* **Liquidity**: 10% / no vesting
* **Team**: 15% / 2.5 years
* **Airdrop**: 3.5% / 6 months
* **Reserve**: 14.4% / 5 years

<div align="center">

<img src="img/tokens_pie.jpeg" alt="">

</div>

## Current STORM Features

* 30% of protocol fees go toward buying back STORM from the market, with 15% allocated to the staking pool and 15% to the STON.fi liquidity pool.

## Future STORM Features

* **Protocol Fee Payments**: STORM tokens can be used to pay protocol fees on Storm Trade.
* **Discounted Fees**: Users can stake STORM tokens on the platform to receive discounts on protocol fees.
* **Ambassador Rewards**: Users will earn STORM tokens through the Ambassador Rewards Program.

## Deflationary Mechanisms for STORM

* 30% of protocol fees are allocated to buy back STORM from the market.
* Staking with a 30-day unlock period.
* A liquidity buffer mechanism in liquidity pools (in development).

### Liquidity Pool

* **Provide liquidity on STON.fi in the STORM/TON pair**: [STORM/TON Pool](https://app.ston.fi/pools/EQB95X5u5B7pfri4rtiB4yDkiMh2fssW_2iEOEFKfLmAeqVo)
* Users can add STORM and TON tokens to the STON.fi liquidity pool.
* This pool enables liquid trading for STORM, allowing users to buy and sell tokens.
* Liquidity providers earn fees on each token swap.
* 15% of Storm Trade protocol fees are distributed to all LP tokens in the farm.

### Staking

* **Stake your STORM tokens**: [Stake STORM](https://app.storm.tg/token).
* Users can stake STORM tokens, and 15% of protocol fees are distributed among all stakers, proportional to their staked amounts.
* Tokens can be unstaked with a 30-day waiting period.
* The staking mechanism is powered by JVault v2 protocol.

Through these mechanisms, we aim to create an organic deflationary model for STORM, balancing token supply and incentivizing holders.

## IDO and Token Launch

**STORM launched on October 16, 2024, and we’re excited to share the details:**

- Learn more on the [token landing page](https://storm.tg/token).
- STORM is tradable on centralized exchanges (Gate.io, BingX, MEXC) and the decentralized exchange STON.fi.
- During the IDO (Tonstarter, Magic Square, ChaiGPT, eesee), investors purchased 4.2% of the total supply with a 6-month vesting period.
- Token allocations were distributed via vouchers to Market Makers NFT holders and participants in Season One of Reward Points.
- Users can [swap vouchers](https://app.storm.tg/token) for STORM tokens with a 6-month vesting period.
- Early investors, IDO participants, and Reward Points Season One participants who haven’t yet converted their points into vouchers can [claim tokens](https://app.storm.tg/token) as per the vesting schedule.

**💎 STORM is more than a token — it’s the heart of our ecosystem.**

---

# 🚀 Launch Plan

Source: https://docs.storm.tg/storm-token-overview/launch_plan

# 🚀 Launch Plan

Although all four phases of the $STORM launch are now complete, each played a key role in shaping the active Storm Trade community. The launch was executed in four stages, each offering unique goals and opportunities for users to participate and earn rewards.

## 📍 Phase 1: Public Testnet

Users tested STORM on the TON mainnet without risk, completed tasks, and earned points for the airdrop. Active participants were rewarded and helped prepare the protocol for release.

> ⚠️ The testnet phase is over, but the storm is just getting started!

## 📍 Phase 3: Market Makers NFT

A collection of 5,555 unique NFTs granted whitelist access before the TGE. Users could earn these NFTs through tournaments, referrals, community involvement, or by purchasing them on Getgems.

> 🃏 The [Market Makers NFT](https://getgems.io/market-makers) collection is available on GetGems.

---

## 📍 Phase 4: STORM Token Generation Event (TGE)

A fair and open token launch was held across multiple Launchpad platforms. Market Makers NFT holders used their whitelist access to purchase tokens before public trading began.

---

# 📊 Tokenomics

Source: https://docs.storm.tg/storm-token-overview/tokenomics

# 📊 Tokenomics

## ℹ️ Token Information

- **🪙 Token Ticker**: `STORM`  
- **🔢 Total Supply**: `1,000,000,000 STORM`  
- **🔐 Token Type**: Non-reissuable (Fixed Supply)

-|----------------------------|---------------|--------------------|----------------|--------------------|----------|---------|------------|----------------------|
|    | 💼 **Total Supply**        | **100.0%**    | **1 000 000 000**  |                |                    |          |         |            |                      |
| 1  | 🏦 Treasury                | 14.4%         | 144 375 766        | —              | —                  | 0%       | 3 months| 12 months  | Linear monthly vesting |
| 2  | 👔 Advisors                | 5.0%          | 50 000 100         | —              | —                  | 0%       | 6 months| 24 months  | Linear monthly vesting |
| 3  | 🧑‍💻 Team                   | 15.0%         | 150 000 100        | —              | —                  | 0%       | 6 months| 24 months  | Linear monthly vesting |
| 4  | 📣 Marketing & Community   | 22.8%         | 228 088 974        | —              | —                  | 1.64%    | 0       | 60 months  | Linear monthly vesting |
| 5  | 💧 Liquidity               | 10.0%         | 100 000 100        | —              | —                  | 100%     | 0       | 0 months   | No vesting          |
| 6  | 🌟 KOLs Round 1            | 2.0%          | 20 000 000         | 0.010          | 200 000            | 15%      | 0       | 8 months   | Linear monthly vesting |
| 7  | 🌟 KOLs Round 2            | 2.5%          | 25 000 000         | 0.012          | 300 000            | 20%      | 0       | 8 months   | Linear monthly vesting |
| 8  | 🌱 Pre-seed Round          | 5.0%          | 50 000 000         | 0.005          | 250 000            | 0%       | 3 months| 24 months  | Linear monthly vesting |
| 9  | 🌾 Seed Round              | 12.6%         | 125 625 000        | 0.008          | 1 005 000          | 15%      | 3 months| 18 months  | Linear monthly vesting |
| 10 | 🎁 Airdrop                 | 4.4%          | 44 409 960         | —              | —                  | 15%      | 0       | 6 months   | Linear monthly vesting |
| 11 | 🤝 Private Sale            | 2.1%          | 20 833 333         | 0.012          | 250 000            | 15%      | 0       | 6 months   | Linear monthly vesting |
| 12 | 🌐 IDO                     | 4.2%          | 41 666 667         | 0.012          | 500 000            | 15%      | 0       | 6 months   | Linear monthly vesting |

---

## 📌 Conclusion

The **Storm Trade** tokenomics are designed with a focus on 📈 sustainable growth and 🧲 long-term motivation for ecosystem participants.

The balanced distribution between the team, investors, KOL-partners, and the community ensures that all parties' interests are taken into account, providing a strong foundation for project development.

✨ Transparent vesting conditions, reasonable CLIFF periods, and fair TGE reflect our commitment to openness and integrity. We believe this model will help **Storm Trade** solidify its position in the market and create a strong, engaged, and loyal community.

---

# 💰 STORM LP Token

Source: https://docs.storm.tg/storm-token-overview/liquidity

# 💰 STORM LP Token

SLP is the liquidity provider token for Storm Trade platform. It's designed to provide liquidity and opportunities for users to earn fees based on trading volume. This guide explains how SLP works, how to mint and redeem SLP tokens, and the benefits and risks associated with SLP participation.

SLP represents a liquidity provider's share in total Vault liquidity. The vault serves as the counterparty to all trades made on the platform:

* When traders win (positive PnL), their winnings are received from the vault.
* When traders lose (negative PnL), their losses are sent to the vault.

In exchange, the vault receives a portion of trading fees, liquidation penalties, excessive funding fees and rollover fee. 70% of these fees are proportionally split among SLP shares, incentivizing stakers keep assets in the vault.

## Minting SLP

1. Obtain your USDT or TON tokens.
2. Provide tokens on the [Vault page](https://app.storm.tg/vault/TON) by specifying the desired tokens value. SLP tokens will arrive at your address.

## Redeeming SLP

On the Vault page, enter the amount of SLPs to withdraw.
The amount of SLP you entered will be burned and you will receive your tokens back at the present exchange rate to your designated address.

## How SLP Benefits Traders and Holders

SLP provides liquidity for traders, enabling leveraged trading positions. When traders profit, SLP holders might face losses, and vice versa. Although SLP's value is generally market-neutral, holding SLP involves certain risks. SLP stakers can earn up to 70% of platform fees generated through trading activity.

## Key Risks to Consider

1. **Smart Contracts:** Audited but risk remains.
2. **Counterparty Risk:** Trader profits affect SLP holders.

## SLP Liquidity Pool Dynamics

The SLP vault receives protocol-generated fees, trader profits and losses, opening/closing position fees, and more. This dynamic causes SLP price to fluctuate over time. While profits from trader P&L decrease SLP price, protocol-generated fees increase it. The overall trend suggests that SLP's price will likely rise over time due to net inflow exceeding net outflow.

## SLP Price Calculation

SLP price is based on the number of USDT/ jUSDT/ TON tokens and SLP tokens in the vault. The formula is:

$$
P_{SLP} = USDT_{free\ vault} / SLP_{supply}
$$

Minting or redeeming SLP doesn't impact its price, but it influences the rate at which the price changes.

## Liquidity Buffering

The buffer is a reserve amount of tokens that will help regulate the revenue of liquidity providers and balance the economic model of the protocol.

* If the SLP token (Storm Liquidity Provision) falls and the protocol's liquidity capitalisation drops to critical values, the buffer will be used to restore the SLP exchange rate and bring the capitalisation level back to normal values.
* If SLP rises above certain values, a part of the income will be used to buy back the STORM token.

---

# 🎓 About Storm Academy

Source: https://docs.storm.tg/storm-academy/academy

# 🎓 About Storm Academy

📚 **Storm Academy** is your gateway to the world of DeFi, trading, and financial freedom — all inside our [Telegram Mini App](https://t.me/StormTradeBot/academy).

## 💡 What Storm Academy Offers You

- 🧑‍🏫 **Learn & Earn**  
  Complete courses and earn RP and real rewards from Storm Trade and our partners.  

- 🌐 **Multilingual Education**  
  Courses and interface are available in multiple languages with professional translations.  

- 🆓 **100% Free**  
  All courses are completely free. No payments — just time well invested in your growth.  

🆕 _And this is just the beginning — new courses and modules will be added regularly, unlocking even more opportunities to grow and earn in the world of DeFi and trading._

---

## 🧭 Curriculum

### 📘 Core Courses:
- Introduction to Storm Academy  
- Storm Trade Basics  
- Dive into the $STORM Token  
- The Ultimate Utility Guide for $STORM  

### 📈 Technical Analysis:
- Technical Analysis Foundations  
- The Ultimate Trend Pattern Playbook  
- Indicator Expedition

### 🤝 Partner Courses:
- **EVAA & STORM**: The Future of DeFi  
- **Tonkeeper & STORM**: Secure Storage, Safe Trading  

---

## 🪄 Final Thoughts

**Storm Academy** is more than just a learning platform.  

🏄 _It's your personal launchpad into the world of smart, confident, and profitable trading._

---

# 📚 Learn and Earn

Source: https://docs.storm.tg/storm-academy/learn_and_earn

# 📚 Learn and Earn

Let’s take a closer look at how **Storm Academy** works — your personal guide to the world of trading and blockchain, right inside Telegram!

📖 When opening a course, you get a detailed structure with all lessons and quizzes:

* Each course includes **visual lessons** in card format and a **final exam**.
* Lessons can be completed in sequence or in any order you prefer.
* Progress is shown via a progress bar at the top, and finished lessons are marked with a **green checkmark**.
* If you start a lesson but don’t finish it, it will be saved so you can come back anytime.

> Want to share a course with a friend? Just click the **“Share”** button — learning in Storm Academy starts with a single tap!

---

<div align="center">

<img src="img/academyscr2.png" alt="Storm Academy Lesson Cards" width="600">

</div>

📌 Lessons are delivered through illustrated cards:

* 📊 **Informative cards** explain charts, strategies, and real-world examples.
* 💡 **Concept visuals** make even the toughest theory easier to digest.
* 😂 **Entertaining elements** like memes boost engagement and retention — learning has never been this fun!

> Forgot something? No worries — you can always go back and review previous cards anytime.

---

<div align="center">

<img src="img/academyscr3.png" alt="Storm Academy Quiz" width="600">

</div>

📝 After completing the theory, you’ll take a short **5-question quiz** to reinforce what you’ve learned. Didn’t pass on the first try? No stress — review the material and try again!

> Ever spotted the "Double Cheeseburger" pattern on a chart? 🍔🤣

---

🏆 Once you complete the course:

* You'll receive a **digital certificate** — perfect to share with friends or on social media.
* And of course, **RP rewards** that can later be exchanged for **$STORM tokens** — education that literally pays off!

---

🎯 Ready to begin? Open [Storm Academy](https://t.me/StormTradeBot/academy) and start your first course today!

---

# 💎 RP Mining (Season 2)

Source: https://docs.storm.tg/rewards-incentives/mining_rp

# 💎 RP Mining (Season 2)

Storm Trade has launched a large-scale reward program that not only allows users to earn through their activity but also become investors in the protocol. At the heart of this program is **Reward Points (RP) mining** — a unique points system that rewards user actions on the platform.

## ✊ Beta Season Completed

The first beta season was a massive success: over **60,000 participants** joined Storm Trade, earned RP, and received rewards in the form of vouchers and $STORM tokens. This phase marked a major milestone in the project's development and demonstrated the community’s strong interest in the product.

_Storm Trade is now thrilled to announce the launch of **Season 2**, which promises to be even more exciting, rewarding, and large-scale for all platform participants!_

## 💰 Season 2 Rewards

Season 2 features familiar mechanics as well as a host of new opportunities that make participation even more engaging.

### 🚀 Keeping the Best Traditions

Storm Trade retains the core mechanics that made Season 1 a success. Traders and liquidity providers remain at the center:

- **Trading Rewards**: For every **$1,000 of trading volume**, the user receives **100 RP**.
- **Liquidity Rewards**: For every **$1,000 of liquidity provided** over 24 hours, the user earns **50 RP**.

---

## 🔥 Upgraded Referral Program

Storm Trade has revamped its referral program to be more rewarding and accessible for everyone:

- **10 RP** for each friend who joins the platform (the friend also receives 10 RP).
- **25 RP** for each friend who has **Telegram Premium**.
- **Bonus 500 RP** when the referred friend places their **first trade**.

This system incentivizes community growth and helps build a loyal network of traders and users.

---

## ⭐️ Boosts for Loyal Users

To reward consistent and committed users, Storm Trade has introduced a **multiplier system** that significantly increases the amount of RP earned:

### 📦 Market Makers NFT

- Each **Market Makers NFT** held in a wallet grants an **additional +20% RP**.
- A maximum of **5 NFTs** are counted per wallet — giving a total **x2 RP multiplier**.

### 📆 Streak Trading Multiplier

- **+15% RP** for each day of active trading.
- Maximum multiplier of **x2** for a **7-day trading streak**.

These mechanics encourage daily engagement and long-term NFT holding.

---

## 💎 Attracting New Users

Storm Trade makes trading more accessible and educational with gamified and learning-first mechanics:

### 🎮 Play and Earn

- Users can play and receive **at least 1 RP per game**.
- These games offer a **risk-free way to practice trading skills**.

### 📝 Complete Tasks

- A native task platform [Storm Task Center](https://t.me/StormTradeBot/task) has been launched, where completing missions grants RP and other rewards.

### 🎓 Trading Academy

Storm Trade has launched the **first free trading academy** - [Storm Academy](https://t.me/StormTradeBot/academy), focused on trading, DeFi, and financial literacy.

- Courses cover: trading fundamentals, core technical analysis methods, risk management, practical case studies, and trading psychology.
- Upon successful completion, users **earn RP** and upgrade their skillset.

---

## 🏆 Expanded Gamification

Storm Trade has expanded its gamification layer by introducing over **50 unique achievements** that appear in a user’s profile.

- **Challenges**: such as completing five profitable trades in a row, hitting +300% PnL, and other performance feats.
- **Soulbound Tokens (SBTs)**: Achievements can be **minted as SBTs**, forever recorded in the user’s wallet and visible to the world.

---

## ✅ Final Words

Season 2 of RP mining on Storm Trade is designed to **reward activity, engage users, and accelerate platform growth**. Whether you’re trading, inviting friends, learning, or simply exploring the world of crypto — there’s something here for everyone.

_Join Storm Trade’s Season 2 — and take your experience, knowledge, and rewards to the next level!_

---

# 👣 Connecting to the Platform

Source: https://docs.storm.tg/getting-started/setting_up_account

# 👣 Connecting to the Platform

You can access **Storm Trade** in two main ways:

- 🌐 Through the **web application** (both mobile and desktop);
- 🤖 Through the **Telegram bot**.

## 🤖 Connecting via the Telegram Bot

Prefer using Telegram? You can access Storm Trade through our Telegram bot:

### Step 1: Make sure you have a TON wallet installed

To use the bot, you’ll need a **Wallet that supports TON**. It will be used to confirm your transactions.

### Step 2: Open the bot and start trading

Go to [@StormTradeBot](https://t.me/StormTradeBot) and begin:

<div align="center">
    <img src="/img/Stormbot.png" alt="Telegram Bot UI" width="300">
</div>

▶️ Tap **Trade⚡**, follow the prompts — and you're ready to go!

---

## 👛 Supported Wallets & TON Space Integration

Storm Trade supports various TON wallets, including:

- **Tonkeeper**
- **MyTonWallet**
- **TON Wallet**
- **TON Space** — the native Telegram wallet, fully integrated with our platform.

This gives you maximum flexibility and ease of access.

---

## 🚀 Ready to Trade?

Once connected via the web app or Telegram bot, you'll gain access to:

- 📉 Decentralized futures trading;
- ⚡ Instant execution on the TON blockchain;
- 🛡️ Trustless security with no middlemen.

🏄 _Start now — and dive into the world of Storm Trade!_

---

# 🧭 Storm Trade Navigation

Source: https://docs.storm.tg/getting-started/platform

# 🧭 Storm Trade Navigation

Storm Trade is more than just an exchange. It’s a whole ecosystem with various sections, each offering unique opportunities. Learn more about them below:

<div align="center">

<img src="img/platform.png" alt="Storm Trade Homepage" width="400">

</div>

## 💸 Earn
This page shows all your active assets.

Here you will see:
- **Staked STORM tokens**
- **Vaults** — special pools where you can earn income through liquidity.

---

## ⚡ STORM
The hub for interacting with the $STORM token:
- Buy tokens on CEX or DEX
- Stake them in **staking**
- Add them to **farming pools** to earn even more

---

## 👥 Referrals
Here you will find your referral link and be able to track the activity of invited users. Invite friends and earn RP and bonuses!

---

## 🎓 Academy
The educational center of Storm Trade.

Learn about DeFi, trading, and platform usage in the **Storm Academy** — learn and earn RP!

---

## 🧩 Tasks
Complete tasks in the special **Task Center** and earn RP!

These can be simple actions: subscribing to social media, participating in activities, and much more.

---

## 🏆 Tournaments
Keep track of current Storm Trade tournaments, participate, and climb the leaderboard!

In this section, you will find:
- Information about ongoing tournaments
- Leaderboards with points and positions

---

## 🎖 Achievements
Earn **achievements** for platform activity and earn RP.

Each achievement brings you closer to new rewards and the status of a PRO trader.

---

## 🖼 NFT
The official **Storm Market Makers** collection on GetGems.

Discover unique NFTs that will become part of your collection or trading gear.

---

## 🌐 Community
Direct links to **Storm Trade Telegram chats**:
- Links and announcements
- Trading chat
- Community chats in different languages
- Meme and flood chats

---

## 📄 Docs
Official **Storm Trade GitBook** — here you’ll find all the technical and educational documentation about the platform.

---

## 🛟 Support
If you have any questions, you can always reach out to our **Telegram support bot**, and we’ll assist you as quickly as possible.

---

🏄 _Explore each section and get the most out of Storm Trade!_

---

# 🛒 How to get USDT and TON

Source: https://docs.storm.tg/getting-started/getting_crypto

# 🛒 How to get USDT and TON

The TON network offers various ways to top up your crypto — from centralized exchanges to direct card payments. Let’s explore each method in detail.

## 💳 Buying TON and USDT

### 1️⃣ Using Centralized Exchanges (CEX)

Popular exchanges you can use:

- **Bybit**, **OKX**, **KuCoin**, **HTX**, **MEXC**, and more.

**How it works:**

1. Deposit funds into one of the listed exchanges;
2. Buy TON or USDT;
3. Withdraw the tokens to your TON wallet address.

📌 Suitable for: **TON & USDT**

---

### 2️⃣ Using the P2P Service in [Wallet](https://t.me/wallet)

**How it works:**

1. Open the **P2P** section inside your wallet;
2. Find an offer to buy TON or USDT;
3. Or create your own offer;
4. Once completed, funds will be credited to your wallet.

📌 Suitable for: **TON & USDT**

---

### 3️⃣ Buying with a Bank Card via [Tonkeeper](https://tonkeeper.com/)

**How it works:**

1. Install the Tonkeeper wallet;
2. Go to the **Buy TON** or **Buy USDT** section;
3. Choose your payment method and complete the purchase.

📌 Suitable for: **TON & USDT**

---

### 4️⃣ Using Decentralized Exchanges (DEX)

You can use:

- **PancakeSwap** (on BSC);
- **Uniswap** (on Ethereum).

**How it works:**

1. Buy the TON token on one of the DEXes;
2. Use the [official bridge](https://bridge.ton.org/) to transfer TON to the TON network.

📌 Suitable for: **TON only**

---

## 🌐 Stay Updated on New Methods

You can always find the latest verified methods for buying TON on the official website:  
👉 [TON.org — Buy TON](https://ton.org/buy-toncoin?filters[exchange_groups][slug][$eq]=buy-with-card&pagination[page]=1&pagination[pageSize]=100)

📚 _There you'll find step-by-step instructions and a full list of supported services._

---

# 🏄 First Trade Walkthrough

Source: https://docs.storm.tg/getting-started/first_trade

# 🏄 First Trade Walkthrough

To start trading on Storm Trade, you’ll need to open your first position. Here’s a step-by-step guide to help you do that using [@StormTradeBot](https://t.me/stormtradebot).

<div align="center">

<img src="img/screen1.png" alt="Storm Trade Interface" width="600">

</div>

## 💸 Fees

❗ When opening a position, up to **~0.25 TON** will be deducted to cover the network fee. Around **0.17 TON** is refunded back to your balance.

🔹 **Storm Trade Trading Fees:**
- **USDT pairs** — from **0.06%** to **0.12%**
- **TON/NOT pairs** — from **0.12%** to **0.2%**

🟢 These are among the **lowest trading fees** in DeFi.

---

## ✅ Closing a Position

✊ If a **Stop Loss** or **Take Profit** order is triggered, the position is closed **automatically** — no additional network fee is charged.

✍️ To close a position manually:
- Click **Close Position**;
- Confirm the transaction;
- Your funds (including any profit or loss) will be returned to your balance.

---

## 📌 Ready for Your First Trade?

🏄 _Join Storm and start trading on your terms!_

---

# 📈 Margin & Markets

Source: https://docs.storm.tg/trading-mechanics/trading

# 📈 Margin & Markets

Storm Trade offers advanced tools and features for traders, ensuring both convenience and security at every level. With a strong focus on isolated margin trading and deep liquidity, Storm provides a reliable platform to explore the exciting world of decentralized trading.

## 🥏 Tradeable Assets

⚡ Storm Trade offers a **diverse range of trading pairs** — from popular cryptocurrencies to tech stocks, forex pairs, and commodities. All trades are executed on the TON blockchain with decentralized settlement.

| Category                                | Trading Assets                                                                                                                           |
|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|
| **Base Coins (Layer 1 Blockchains)**    | BTC, ETH, TON, ADA, ALGO, APT, ATOM, AVAX, BCH, BNB, BSV, ETC, ICP, IOTA, KAS, NEAR, SOL, TRX, VET, XLM, XMR, XTZ, ZEC                  |
| **Layer 2 Solutions**                   | ARB, LDO, OP, STRK                                                                                                                        |
| **DeFi & DEX Tokens**                   | AAVE, CAKE, CRV, DEXE, DYDX, ENA, INJ, ONDO, PENDLE, POL, RAY, RUNE, SEI, SUI, UNI                                                       |
| **NFT & Gaming Tokens**                 | AXS, CATI, CHZ, FLOW, GALA, MANA, PENGU, POPCAT, SAND                                                                                     |
| **Meme & Community Tokens**             | 1000BONK, 1000PEPE, 1000SHIB, FARTCOIN, FLOKI, GOAT, GRASS, HMSTR, MELANIA, MEMEFI, MOVE, NOT, PNUT, TURBO, ETHDEGEN                     |
| **Privacy Coins**                       | DASH, XMR, ZEC                                                                                                                             |
| **Infrastructure & Service Tokens**     | A16Z, AERO, BERA, DEEP, EIGEN, ENS, FIL, GRT, HBAR, IMX, IP, KAIA, KAITO, LINK, MKR, OM, ORDI, PYTH, RENDER, S, TAO, WAL, WLD, ZRO     |
| **Governance & Protocol Tokens**        | AAVE, ARB, CRV, DEXE, DYDX, ENS, INJ, LDO, MKR, OP, PENDLE, POL, RUNE, SEI, STRK, SUI, UNI                                                |
| **Thematic & Trending Tokens**          | BRETT, FARTCOIN, GRASS, MOVE, POPCAT, TRUMP, TURBO, VIRTUAL, WIF                                                                          |
| **Stock Indices**                       | SPX                                                                                                                                       |
| **Stocks**                              | AAPL, AMD, AMZN, CRCL, GOOG, META, MSFT, MSTR, NFLX, NVDA                                                                                |
| **Forex Pairs**                         | AUD, EUR, GBP, NZD, USDCAD, USDCHF, USDJPY                                                                                                |
| **Test Tokens**                         | TST                                                                                                                                       |
| **Commodities**                         | UKOIL, USOIL, XAG, XAU, XAUT                                                                                                             |


📣 _Stay tuned — the list of trading pairs is constantly expanding!_

---

## 📌 What’s Next?

🪙 As liquidity in the **Storm Vault** continues to grow:
- More trading pairs will become available;
- Volume limits for existing assets will increase.

Storm is a reliable, efficient, and flexible platform for decentralized trading. Whether you're an experienced trader or just getting started, you'll find all the tools you need to trade with confidence.

🚀 _Join Storm and start trading on your own terms!_

---

# 🧾 Managing Positions

Source: https://docs.storm.tg/trading-mechanics/positions

# 🧾 Managing Positions

A **position** represents a trader’s stance or expectation regarding the future price movement of a specific asset through a perpetual futures contract.  
In essence, it’s a speculative bet or investment based on the anticipated direction of the asset's price.

## 📊 Profit and Loss on Positions

The main goal of opening a position is to earn a profit based on the trader’s price prediction.  
If the market moves as expected, the trader can close the position and profit from the price difference between entry and exit.

---

## ⚙️ Understanding Leverage

In perpetual futures trading, **leverage** plays a crucial role — it increases both the potential return and the risk.  
Leverage allows traders to control a larger position with a relatively smaller amount of capital, amplifying the impact of price changes on their account.

---

## 🔍 How Leverage Works

For example, using **10x leverage** means the trader can control a position size ten times greater than their actual balance.

- ✅ Profits increase when the market moves in the trader’s favor  
- ❌ Losses grow when the market moves against them

> ⚠️ **Important:** Excessive adverse movement may trigger a [liquidation](liquidation.md), causing the trader to lose their initial margin (collateral).

---

## ⚖️ Risk vs Reward

Leverage involves a delicate balance between potential gain and increased risk.  
Traders should apply [risk management strategies](trading_scenarios.md) and set leverage levels that align with their risk tolerance and experience.

> 💡 Leverage is a powerful tool when used wisely — but can be harmful if misused.

---

## 🛠 Practical Tips

### ✅ Opening a Leveraged Position

Storm Exchange offers a simple and intuitive interface to open a leveraged position.

1. Choose your trade direction:
   - **Long** — if you expect the price to go up
   - **Short** — if you expect it to go down

2. Set the following:
   - 💰 Collateral amount
   - 📏 Leverage level

🔢 **Formulas:**

- **Position Notional Value:**  

$$
Position Notional = Collateral * Leverage
$$

- **Position Size (in base asset):**  

$$
Position Size = Position Notional / Entry Price
$$

🧮 **Example:**  
Leverage: **10x**  
Collateral: **$500**  
Entry Price: **$2000**

→ Notional: `500 * 10 = 5000 USDT`  
→ Position Size: `5000 / 2000 = 2.5 ETH`

---

### 📈 Opening a Position with Orders

By default, positions are opened using **market orders**, which are executed almost instantly at the current market price.  
Some slippage may occur due to market impact or execution delay.

Storm Exchange also supports other order types — such as limit orders. Learn more in:  
📘 [Limit Orders](triggered_orders.md)

---

🏄 _By understanding position structure and leverage mechanics, you can trade more efficiently and with greater control._

---

# 🧮 Fees

Source: https://docs.storm.tg/trading-mechanics/fees

# 🧮 Fees

**Storm Trade users pay two types of fees:**

- 🔗 **Network Fee** — paid for executing transactions on the TON blockchain;
- ⚙️ **Storm Trade Protocol Fee** — paid for using the platform and executing trades.

----------------|-----------------------------------------------------------------------------|
| `storage_fees`    | Fee for storing the smart contract in the blockchain when sending/receiving |
| `in_fwd_fees`     | Fee for delivering inbound external messages                                |
| `computation_fees`| Fee for executing code in the TON Virtual Machine (TVM)                     |
| `action_fees`     | Fee for executing smart contract actions                                    |
| `out_fwd_fees`    | Fee for sending outbound internal messages                                  |

---

## ⚙️ Storm Trade Protocol Fee

This fee is charged when **opening and closing a position** and is automatically deducted from the margin amount.

### 📊 Fee rates depend on the trading pair:

- 💰 For **USDT pairs** — from **0.06%** to **0.12%**
- 💎 For **TON/NOT pairs** — from **0.12%** to **0.2%**
- 💵 For **Currency pairs** — **0.06%**
- 🪙 For **Gold** — **0.08%**

> 💡 **Example:**  
> If you open a **100 USDT** position with **10x leverage** in a USDT pair:  
> `100 * 10 * 0.0012 = 1.2 USDT` will be charged as a trading fee.

---

## 🕒 Funding

**Funding** refers to hourly payments between traders on opposite sides of the market, commonly used in perpetual futures trading.

### 🔁 How funding works:

- If the majority opens long positions and funding turns positive:  
  - 💸 **Long traders pay, short traders receive.**

- If the market is dominated by short positions and funding turns negative:  
  - 💸 **Short traders pay, long traders receive.**


> 📌 Funding helps maintain the balance between supply and demand in perpetual futures markets.

---

🏄 _By understanding the fee structure, you can better manage your trades and reduce unnecessary costs on Storm Trade._

---

# 🎢 Margin with TON Collateral

Source: https://docs.storm.tg/trading-mechanics/ton_margin_trading

# 🎢 Margin with TON Collateral

## 💡 Types of Margin Trading

Margin trading in cryptocurrencies can be divided into two types:

- **USD-Margin:** In this type, traders use stablecoins like USDT as collateral.
- **COIN-Margin:** Here, cryptocurrencies like TON, NOT, and others are used as collateral instead of stablecoins.

Futures margin trading offers a unique and potentially lucrative way to trade. In this type of futures contract, the quote is based on the quote asset (such as USD), but the contract is denominated in another asset, which could be TON or NOT. This structure allows traders to earn amplified, nonlinear profits, making it attractive for those who have a strong understanding of market dynamics and risks. However, margin trading is not just for pros. At Storm Trade, we excel at simplifying the complex, making it accessible and understandable for everyone. Keep reading, and you might find yourself trading with the confidence of an expert.

The following sections explain coin-margin trading using TON as an example. These same principles apply when new tokens, like NOT, are added as collateral on Storm Trade.

## ⚡ How It Works

### Key Concepts

- **Base Asset:** In coin-margin trading, the base asset is typically the asset you are trading, such as TON. It is the primary asset of the trading pair.
- **Quote Asset:** This is usually a stable asset, like USD, against which the base asset is traded. The contract price is quoted in this asset. When calculating profits and losses, you typically reference the value to your quote asset.
- **Settlement Asset:** Uniquely, in margin trading with TON, the settlement asset can also be TON if you choose to denominate the contract in it. This means your margin, profits, and losses are all accounted for in TON.

### Behind the Scenes

Let’s break it down with a formula:

`PNL = Trade Direction * Margin * Entry Price * Leverage * (1 / Entry Price - 1 / Exit Price)`

This formula can be broken down into the following components:

1. **Trade Direction:**
   - This indicates whether the trade is long or short.
   - For a long position (betting on a price increase), this value is `1`.
   - For a short position (betting on a price decrease), this value is `-1`.
2. **Margin:**
   - This is the collateral that the trader puts into the trade. In this case, TON.
3. **Entry Price:**
   - The price of the asset (TON) when the trader enters the trade.
4. **Leverage:**
   - This is the factor by which the trader amplifies their exposure beyond their actual margin. Higher leverage means greater potential profits or losses.
5. **1 / Entry Price - 1 / Exit Price:**
   - This part of the formula calculates the relative price change of the asset from entry to exit.
   - **`1 / Entry Price`** gives the reciprocal of the entry price, and **`1 / Exit Price`** gives the reciprocal of the exit price. The difference between these values reflects the proportional price change rather than just the absolute price difference.
6. **Trading Fees:**

   - The trading fee for coin-margin pairs is slightly higher than for USD-margin pairs but is much lower than standard spot market fees. The savings from avoiding exchanges between TON (NOT) and USDT make the 0.2% fee highly favorable, especially for long-term investments on the Storm Trade platform. The fee is calculated as follows:

   >`0.2% * (Margin * Leverage)`

   When entering a position, your margin will be larger than at the close due to the initial opening fee deduction. For example, if a trader opens a position with a 100 TON margin and 10x leverage, the opening fee will be 0.2% of the margin and leverage, equaling 2 TON (0.2% * 1000 TON). Thus, the adjusted margin at the closing of the position will be slightly smaller due to the initial fee.

Here’s a more detailed breakdown of how your fees are calculated in coin-margin trading:

* Opening Fee Formula:

  >`Opening Fee = 0.2% * (Margin * Leverage)`

* Adjusted Margin for Closing Fee: After deducting the initial opening fee, the adjusted margin for calculating the closing fee is as follows:

  >`Adjusted Margin = Margin - Opening Fee`

* Closing Fee Formula:

  >`Closing Fee = 0.2% * (Adjusted Margin * Leverage)`

For example, if you open a trade with a 100 TON margin and 10x leverage, and then close it, your fees would look like this:

* Opening Fee: `0.2% * (100 * 10) = 2 TON`
* Adjusted Margin for Closing: `100 TON - 2 TON = 98 TON`
* Closing Fee: `0.2% * (98 * 10) = 1.96 TON`

### Example:

**Initial Data**

  - ***Trader***: Sergey

  - ***Trade Direction***: Long position

  - ***Position Size***: 100 TON

  - ***Entry Price***: 2 USD

  - ***Exit Price***: 4 USD

  - ***Leverage***: x10

**PnL Calculation**

>`PnL = 1 * 100 * 2 * 10 * (1/2 - 1/4) = 2000 * 0.25 = 500 TON`

Not bad? Sergey made an extra 500 TON, or 2000 USD, without exiting TON for a moment. Since his collateral doubled in value, Sergey now has 2400 USD in total wealth. Nice work, Sergey!

## 🧬 Coin-Margin Trading Dynamics

### 📉 *Short Position*

- *Price Decrease Scenario*: If you open a short position and TON (NOT) decreases in value, your collateral decreases, but your PnL increases. This happens because the short position profits offset the collateral decline.
- *Price Increase Scenario*: If the price of TON (NOT) unexpectedly rises while in a short position, the increase in collateral value can help mitigate losses from the short position. However, high leverage increases the risk of liquidation.

### 📈 *Long Position*

- *Price Increase Scenario*: If you open a long position and TON (NOT) rises in value, both your PnL and collateral increase, offering a double benefit in a bull market.
- *Price Decrease Scenario*: If TON (NOT) falls while in a long position, your collateral value decreases, potentially offsetting any profit from the long position. High leverage increases the risk of significant collateral loss in this scenario.

## ⚠️ Risks and Tips for Mitigating Coin-Margin Trading

- **Volatile Collateral**: Price volatility works both ways. While it can boost profits, it also increases the risk of liquidation if the market moves against your position.
- **Margin Ratio**: The margin ratio depends on the price of the collateral coin. For example, with TON: `margin ratio = nominal value * TON price`. It’s essential to monitor this ratio closely. If TON’s price drops significantly, your position could face liquidation risk.

## ✍️ Conclusion

Margin trading on Storm Trade is an advanced trading mechanism that offers high potential rewards but also comes with increased risks due to the direct impact of collateral asset price volatility. Traders must clearly understand this dynamic and have a risk management strategy in place. Fortune favors the bold — but only if they read the fine print.

---

# 🌱 Pre-Launch Futures

Source: https://docs.storm.tg/trading-mechanics/prelaunch_futures

# 🌱 Pre-Launch Futures

**Storm Trade** has launched futures trading for cryptocurrencies before they hit the market (a.k.a. pre-launched futures). Now you can predict the success of a new cryptocurrency’s debut by opening futures positions on it. The traditional model of selling securities before their official launch was only available to institutional investors and funds. With the advent of Web3, this privilege is now accessible to all enthusiasts. Pre-launched futures allow you to make informed predictions about the future price of cryptocurrencies before they enter the market, making cryptocurrency trading available to everyone and providing a way to manage risk with a clear view of potential market movements.

Now that you understand what **pre-launched** futures are, let’s take a closer look at how the trading process works.

## 📈 Trading Process Stages

### Start

- **Launch**: Trading begins on the selected date.
- **Information Support**: We will keep you informed of all news.
- **Closing Alert**: You will be notified in advance of the end of trading, giving you enough time to make the right decision based on your strategy.

### Final Phase

- **Trade Stop**: Official closure of trading operations at the designated time, making further transactions on open positions unavailable.
- **Profit and Loss Calculation**: We determine the settlement price of the token to calculate your profits and losses.
- **Settlements**: We return your margin, adjusted for profits and losses.
- **Summary**: A full overview of the results with a detailed PnL calculation will be provided.

---

## 💰 Detailed Profit and Loss Calculation

### Initial Data

- **T_trade** — The moment when the first transaction with the token occurs on the spot market of a centralized exchange (CEX) or through **DeDust/StonFi**. From this point, the process of determining the token's settlement price begins.
- **Cap_constant** — The fixed maximum token supply announced by the project team.
- **Cap_variable** — The circulating supply of tokens 7 days after the start of trading `T_trade`. This value is dynamic and reflects the actual state of token circulation at that time.
- **Cap_expected** — The expected token supply used to calculate the market capitalization in the Pre-Launch market. This metric serves as the basis for analyzing and forecasting the token's market value before its official launch.

> **Note**: The project’s token is the asset in which the futures contract is denominated.

### Possible Scenarios

- **Option 1**: The project's token does not launch on the market.
- **Option 2**: The project’s token launches with a fixed token supply.
- **Option 3**: The project’s token launches with an undefined token supply.

### Determining the Contract Settlement Price

Let’s break down how we calculate the final settlement price, or `Price_settle`, for one 1mNOT-F contract in USD:

- **For Option 1**: It’s simple — `Price_settle` is the closing price of the futures contract in USD.
- **For Option 2**: In this case, `Price_settle` is the result of multiplying the average price in USD during the first week of trading by `Cap_constant` and dividing by `Cap_expected`.
- **For Option 3**: Similar to Option 2, but with a twist™ — `Price_settle` is the average price in USD during the first week of trading, multiplied by `Cap_variable`, and divided by `Cap_expected`.

### Settlement Process

The settlement price (**Price_settle**) is the key indicator used to determine the final profit or loss on positions. Settlements are made as follows:

- **Long positions above Price_settle and Short positions below?** Long positions with an entry price higher than the settlement price and short positions with an entry price lower than the settlement price will be adjusted. This adjustment will reduce the margin proportionally to the difference between the entry price and the settlement price, considering the leverage used.
- **Long below Price_settle and Short above?** Conversely, long positions where the entry price is lower than the settlement price, and short positions with an entry price above, not only return the investor’s initial margin but also provide additional profit. This profit is a share of the previously mentioned total volume, calculated based on the volume and entry price of each specific position.

---

## 📊 Example: 1mNOT-F/TON Futures

Introducing 1mNOT-F/TON, our first futures position that allows you to forecast the future price of NOT based solely on our data.

### General Characteristics

- **Leverage**: Up to 3x: Finding the optimal balance between maximizing returns and managing risks.
- **Open Interest Limit**: 200,000 TON.
- **Fee Structure**:
  - **Trading Fee** — 1%, fixed, with half of the total amount going to the Insurance Fund.
  - **Rollover Fee** — None.
  - **Funding Fee** — None.
- **Minimum Margin Requirement (MMR)**: 12.5%. When investing, make thoughtful decisions based on strategic market analysis.
- **Lot Size**: 1 million 1mNOT-F tokens.
- **Initial Lot Price**: 0.5 TON.
- **Maximum Expected Market Capitalization**: 50 trillion 1mNOT-F tokens.

> **Attention Traders**: **Storm Trade** is not affiliated with the NOT token. This offering reflects our goal to enrich your trading experience by providing assets and products selected based on comprehensive market trend and condition analysis.

---

🏄 _Now you have all the necessary information to participate in pre-launch cryptocurrency futures trading on **Storm Trade**._

---

# 🤪 Degen Mode

Source: https://docs.storm.tg/trading-mechanics/degenmode

# 🤪 Degen Mode

**Degen Mode** is the ultimate trading mode for the boldest traders on Storm Trade!

### ⚡ Key Features

- **Leverage x500** — only the maximum leverage for maximum risk and reward.
- **Ultra-low fees** — just **0.02%** to open and close a position.
- **Zero spread** — your trade price always matches the oracle price.
- **No funding, only Rollover fee**.

💡 **Rollover fee** is a fee you pay for keeping your position open for a long time.
- Calculated every block.
- Rate: **0.005% of your position size per hour**.
- It directly shifts your liquidation price.

**Note:** Rollover fee is charged for every open position and gradually shifts your liquidation price.
----|--------------------|
| BTC   | USDT               |
| ETH   | USDT               |
| SOL   | USDT               |
| TON   | USDT or TON        |

---

### ⚠️ Limitations

- **Add/Remove margin is unavailable** — leverage is always fixed (x500).
- All other trading operations are available (open/close, TP/SL, etc.).

🏄 **Degen Mode** — _You’re either a legend or a meme in trader chats!_

---

# ⚖️ PnL и ROI

Source: https://docs.storm.tg/trading-concepts/pl_and_roi

# ⚖️ PnL и ROI

In perpetual futures trading, key metrics like Return on Investment (ROI) and Profit and Loss (PnL) are essential. These metrics serve as critical indicators of a trader's performance and financial outcomes. This documentation aims to elucidate the concepts of ROI and PnL, focusing on both realized and unrealized aspects, and underscores the impact of fees, including open/close position fees, funding fees.

## 💸 Return on Investment (ROI)
ROI is a fundamental metric employed in trading to assess the profitability of an investment. It quantifies the return generated relative to the initial capital invested. In perpetual futures trading, ROI is an invaluable tool for evaluating the efficacy of trading strategies.

The formula for calculating ROI is as follows:

```js
ROI = ((Final Value - Initial Investment) / Initial Investment) * 100
```

In this context:

`Initial Investment` represents the capital allocated to a trading position.
`Final Value` encompasses both realized and unrealized gains or losses.

## 📊 Realized and Unrealized PnL
Profit and Loss (PnL) in perpetual futures trading can be categorized as realized and unrealized.

📌 **Realized PnL**: This metric signifies the actual profits or losses realized upon closing a trading position. It factors in the difference between the entry price and exit price, accounting for associated fees, including open/close position fees, funding fees. Realized PnL provides a precise depiction of the financial outcome of a particular trade.

📌 **Unrealized PnL**: In contrast, unrealized PnL denotes the potential profits or losses linked to open positions that have not yet been closed. These gains or losses fluctuate with market price movements but remain unrealized until the position is closed. Unrealized PnL is a dynamic metric that responds to evolving market conditions.

## Impact of Fees on PnL
Fees exert a significant influence on realized PnL. Notably, the following fees must be considered:

📌 **Open/Close Position Fees**: These fees are incurred when initiating and closing positions, directly affecting the realized PnL of each trade.

**Funding Fees**: Perpetual futures contracts entail funding payments exchanged between long and short traders to maintain alignment with the underlying asset's market price. Funding fees contribute to realized PnL.

## Example: Computing unrealized and Realized PnL with Leverage and Fees

### 📈 Example №1

**Long Position (Borrowed capital to buy an asset):**
- Initial Investment: $10,000
- Leverage: 10x
- Asset: Bitcoin (BTC)
- Entry Price: $45,000 per BTC
- Current Market Price: $47,000 per BTC

**Calculation of the protocol commission when opening a position::**
- Commission for opening a position = Collateral Amount * Leverage Amount * 0.12%
- Commission for opening a position = 10,000 * 10 * 0.0012 = $120

**Calculating Unrealized PnL:**
- Note that for a Long position and a Short position there is a difference in the calculation of the coefficient in the first part of the formula. For a Long position, since the profit comes with an increase in the price of the asset, we apply: (Current Market Price / Entry Price - 1). For a Short position, since the profit comes when the asset price decreases, we apply: (1 - Current Market Price / Entry Price).
- Unrealized PnL = (Current Market Price / Entry Price - 1) * (Collateral amount - Opening fee) * Leverage size
- Unrealized PnL = (47,000 / 45,000 - 1) * (10,000 - 120) * 10 = 4,391.11 $

**Accounting for Funding fees:**
* We assume that the position holding period was 48 hours, and the volume of positions of those who held Short positions was greater than those who held Long positions, and the average Funding rate was 0.0018%, which went to the income of the holders Long positions. Therefore, this amount will go to us as a revenue portion. While if the market situation were the opposite, we would subtract this amount to calculate the final income:
* Funding fee = (Collateral amount - Opening fee) \* Leverage size \* 0.0018% * Number of hours
* Funding Fee = ((10,000 - 120) \* 10 \* 0.000018 * 48 = $85.36

**Calculation of the protocol commission when closing a position:**

* Commission for closing a position = ((Collateral Amount - Opening Commission) \* Leverage Size + Unrealized PnL + Funding Commission) \* 0.12%
* Commission for closing a position = ((10,000 - 120) \* 10 + 4,391.11+ 85.36) \* 0.0012 = $123.95

**Calculation of realized PnL with commissions:**

* Realized PnL = Unrealized PnL - Closing fee + Funding fee
* Realized PnL = 4,391.11 - 123.95 + 85.36 = **$4,810.24**

---

### 📉 Example №2

**Short Position (Borrowed asset to sell):**

- Initial Investment: $15,000
- Leverage: 5x
- Asset: Ethereum (ETH)
- Entry Price: $3,000 per ETH
- Current Market Price: $2,800 per ETH

**Calculation of the protocol commission when opening a position:**

* Commission for opening a position = Collateral size * Leverage size * 0.12%
* Commission for opening a position = 15,000 * 5 * 0.0012 = $90

**Calculation of unrealized PnL:**.

* Unrealized PnL = (1 - Current Market Price / Entry Price) * (Collateral amount - Opening fee) * Leverage size
* Unrealized PnL = (1 - 2800 / 3000) * (15 000 - 90) * 5 = 4 970 $

**Accounting for Funding fees:**
* Assume that the position holding period was 48 hours, and the position volume of those who held Short positions was larger than those who held Long positions, and the average Funding rate was 0.0018%, which was paid by the holders of Short positions. Therefore, this amount will go to us as an expense. Whereas if the market situation was the opposite, we would add this amount to calculate the total return:
* Funding fee = (Collateral amount - Opening fee) * Leverage size * 0.0018% * Number of hours
* Funding Fee = ((15,000 - 90) * 5 * 0.000018 * 48 = $64.41

**Calculation of the protocol commission when closing a position:**

* Closing fee = ((Collateral amount - Opening fee) * Leverage size + Unrealized PnL - Funding fee)) * 0.12%

* Commission for closing a position = ((15,000 - 90) * 5 + 4,970 - 64.41) * 0.0012 = $95.34

**Calculation of realized PnL with commissions:**

* Realized PnL = Unrealized PnL - Closing fee - Funding fee
* Realized PnL = 4,970 - 95.34 - 64.41 = **$4,810.25**

---

# 🌡 Margin Management

Source: https://docs.storm.tg/trading-concepts/changing_margin

# 🌡 Margin Management

Margin management is a fundamental aspect of successful perpetual futures trading. This documentation delves into the critical aspects of margin management, including the processes of adding and removing margin from positions, the significance of prudent margin management, and the concept of the liquidation price.

### 📌 Margin in Perpetual Futures Trading

In the context of perpetual futures trading, margin is a fundamental concept that represents the collateral or security required by the exchange to open and maintain a trading position. It serves as a financial cushion to cover potential losses that may occur as a result of adverse price movements. When a trader enters a position, they are required to commit a certain amount of capital as margin, which is a fraction of the position's notional value. Margin ensures that traders have sufficient funds to fulfill their contractual obligations and prevent default on their positions.

Margin plays a dual role: it facilitates leveraged trading, allowing traders to control larger positions with relatively smaller amounts of capital, and it acts as a protective measure to minimize the risk of losses exceeding the available funds. Monitoring and managing margin levels are essential aspects of risk management in perpetual futures trading, as insufficient margin can lead to position liquidation.

### 📌 Initial Margin Ratio

The initial margin ratio is a crucial metric in perpetual futures trading that determines the required margin as a percentage of the position's notional value. It is directly related to the level of leverage a trader can use. A higher initial margin ratio implies lower leverage, and conversely, a lower initial margin ratio allows for higher leverage.

For example, if the initial margin ratio is set at 10%, a trader with $10,000 can open a position with a notional value of up to $100,000 (10 times their capital) using 10x leverage. The initial margin acts as a safety net to cover potential losses and ensures that traders have sufficient collateral to enter leveraged positions.

Initial margin ratio is an inverse of leverage:

`Initial Margin Ratio = 1 / Leverage`

### 📌 Maintenance Margin Ratio

The maintenance margin ratio is another critical parameter that determines the minimum margin level required to keep a position open without facing liquidation. When the position's margin falls below the maintenance margin ratio, it triggers the liquidation process. The maintenance margin ratio is directly linked to the liquidation price.

Suppose the maintenance margin ratio for a particular contract is 1%. If a trader opens a long position with $10,000 and the notional value is $200,000, the liquidation price would be reached when the position incurs losses equivalent to 99% of the initial margin. Understanding the maintenance margin ratio is vital, as it allows traders to calculate their liquidation price and manage their risk effectively. Maintaining a comfortable margin level above the maintenance margin ratio is essential to avoid unexpected liquidation events.

In conclusion, the initial margin ratio dictates the leverage available to traders, impacting the size of their positions relative to their capital. The maintenance margin ratio determines the minimum margin level required to prevent liquidation and plays a pivotal role in calculating the liquidation price. Both ratios are critical components of margin management and risk control in perpetual futures trading.

| **Market Type**     | **Maximum Leverage** | **Minimum Leverage** | **Maintenance Margin** |
| ------------------- | -------------------- | -------------------- | ---------------------- |
| Crypto USDT margin  | x50 (2%)             | x1 (100%)            | 1%                     |
| Crypto TON margin   | x50 (2%)             | x2 (50%)             | 1%                     |
| Commodity           | x100 (1%)            | x2 (50%)             | 0.5%                   |
| Forex               | x100 (1%)            | x10 (10%)            | 0.3%                   |

### 📌 Liquidation Price

**Liquidation price** is a key element of margin management for traders, signifying the price level at which their position will be forcibly closed by the exchange due to insufficient collateral to cover potential losses. Important aspects for effective risk management include:

* At the time of position liquidation, only the collateral for the current position is at risk. Funds in your account will not be affected.
* To push back the liquidation price, traders can use the 'Add Margin' feature, thereby increasing their collateral.
* An effective tool is the placement of a stop-loss order, which allows the position to be automatically closed at a specified price, thus preventing potential liquidation.
* The liquidation price changes over time. It can move away from the initial opening price if financing (Funding) is being accrued on your position, or move closer to the opening price if the financing is negative. The accumulated value is available in the 'Realized P&L -> Funding' section on the position card."

Now, let's consider a **short position** in the same Bitcoin perpetual futures contract with the following details:

* Entry Price: 50,000 $
* Leverage: 20x
* Initial Margin Rate: 5%
* Maintenance Margin Rate: 1%

For 📉 a short position, the trader's liquidation price (LP) can be calculated as follows:

```js
Liquidation Price (LP) = Entry Price × (1 + Initial Margin Rate - Maintenance Margin Rate)
Liquidation Price (LP) = $50,000 × (1 + 0.05 - 0.01) = 52,000 $
```

In this example, with an initial margin rate of 5%, a maintenance margin rate of 1%, and a leverage of 20x, the liquidation price for the short position is $52,000.

---

{% hint style="warning" %}
The examples given for calculating liquidation prices in perpetual futures trading are purely illustrative and **do not consider the effects of trading fees**. In real trading situations, both rollover and funding fees can affect the performance and results of positions. Additionally, when trading pairs with collateral in TON, changes in the TON price impacting the liquidation price are not included. Traders should always refer to the liquidation price shown in the Storm user interface for precise information.
{% endhint %}

### 📌 How to manage margin

To fine-tune your position margin, scroll down on your position screen and select the appropriate option: **Add** or **Remove**:

<div align="center">

<img src="img/displaying_margin.png" alt="">

</div>

When adjusting the amount of collateral (Мargin), please pay attention to the following rules:

There is a correlation between the amount of collateral and the liquidation price. The less collateral remaining, the closer the position's liquidation price becomes.
When changing the collateral for a position, it is necessary to consider the maximum and minimum permissible leverage for the given type of trading pair, which cannot be exceeded as a result of changing the amount of collateral.

---

# 🎭 Stop-Loss / Take-Profit

Source: https://docs.storm.tg/trading-concepts/sltp

# 🎭 Stop-Loss / Take-Profit

In the world of trading, **risk management** and **profit protection** are of paramount importance for achieving success. Two powerful tools that traders frequently use for these purposes are the **"stop-loss"** and **"take-profit"** orders. In this article, we will explore what these orders are, how they work, and why they are so crucial for traders.

## 🎯 Take-Profit Orders

On the other hand, **take-profit** orders are instructions set by traders to lock in profits when a trade reaches a pre-defined price level. When the market moves in the trader's favor and hits the specified take-profit level, the order is triggered, automatically closing the position at the current market price. The primary goal of the take-profit order is to secure profits and exit the trade when the target price is reached.

### 📉 Example for a Short Position:

Let’s say a trader opens a **short position** on a cryptocurrency at a price of **$50,000** and sets a take-profit order at **$45,000**. If the price of the cryptocurrency falls to $45,000 or lower, the take-profit order will be executed, ensuring the trader’s profit and closing the position.

---

## ⚙️ Setting Stop-Loss and Take-Profit Orders

Stop-loss and take-profit orders can be set in two ways:

- **At the time of opening positions**: The trader can specify desired stop-loss and take-profit levels when opening the position. This allows for risk management from the very beginning of the trade.
  
- **Later via the "Orders" tab of the open position**: Alternatively, traders can modify or add stop-loss and take-profit orders after opening the position by going to the "Orders" tab on their trading platform. This flexibility allows traders to adjust their risk management strategy as market conditions change.

---

## 📌 Conclusion

**Stop-loss** and **take-profit** are indispensable tools for every trader. They allow for effective risk management, limit potential losses, and secure profits. Knowing how to set these orders properly is the key to successful trading.

🏄 _Trade wisely. Manage your risks._

---

# 🔠 Order Types

Source: https://docs.storm.tg/trading-concepts/triggered_orders

# 🔠 Order Types

In trading, mastering the art of precise execution is crucial. One of the most valuable tools at a trader’s disposal is the buy/sell order. In this article, we will explore the different types of orders, how they function, and why they are indispensable in trading.

## 🛑 Stop-Limit Order

A **Stop-Limit Order** combines two key elements: the **stop price** and the **limit price**. This conditional order is placed by traders to execute a trade at a specified price (limit price) or better, but only after a certain price level (stop price) is reached or breached. These orders provide traders with a high level of control over the execution of their trades.

### 📈 For Long Positions:
A stop-limit order combines elements of both stop and limit orders. First, you set the stop price (e.g., **$48,200 for Bitcoin**). If the market price rises to or above this stop price, your order becomes a limit order to buy at a specified price (e.g., **$48,000**). This ensures that you will only buy if the market moves in the desired direction.

### 📉 For Short Positions:
In a short position, a stop-limit order is used to manage risk. You set the stop price (e.g., **$41,800 for Bitcoin**), and if the market reaches this price or drops below it, your order becomes a limit order to sell at a specified price (e.g., **$42,000**). This helps protect you from potential losses by automatically triggering a sell order if the market moves against your short position.

---

## 🚀 Stop-Market Order

A **Stop-Market Order** is a powerful tool that opens a position when a specified stop price is reached and is executed at the current market price. It allows traders to quickly respond to market changes, ensuring the trade is executed when the market reaches or exceeds the set price threshold.

### 📈 For Long Positions:
This order allows traders to set a stop price for buying, which is especially useful when forecasting price growth. The order activates when the market price reaches or exceeds the stop price, allowing the trader to enter the market early in the anticipated uptrend.

### 📉 For Short Positions:
In the context of short positions, the order is used to set a stop price for selling, to protect the trader from potential losses if the asset price is expected to fall below a certain level. When the asset’s market price reaches or falls to the stop price, the order is executed, minimizing losses or securing profits.

> Unlike the stop-limit order, which requires both a stop price and a limit price, the stop-market order is executed immediately at the market price once activated. This makes it ideal for traders who need to respond quickly to market fluctuations without the risk of delays.

---

## ⏳ Expiry of Orders

All orders, including stop-limit orders, have an expiration date set to **60 days**. This expiration serves several important purposes:

1. **Maintaining smart contract efficiency**: The expiration helps prevent the accumulation of inactive and outdated orders that no longer align with current market conditions.
   
2. **Regular review of trading strategies**: Setting an expiration date encourages traders to regularly update their strategies and adapt to the evolving market conditions.

> **Note**: An order can only be executed if the entire volume for opening positions is available. Initialization may take up to **20 seconds**, and execution speed depends on the network load of the **TON** blockchain.

🏄 _Mastering the types of orders is a step towards confident and strategic trading._

---

# 🌊 Liquidation

Source: https://docs.storm.tg/trading-concepts/liquidation

# 🌊 Liquidation

In the world of trading, risk management is of paramount importance. Traders often encounter situations where their positions may be liquidated. Let’s break down what that means.

## ⚖️ Full and Partial Liquidation

On the **Storm Trade** platform, the mechanism of **full position liquidation** is applied.

Previously, partial liquidation was relevant, as closing part of a position could shift the market price relative to the index, which helped avoid liquidation. However, after the increase in open interest (**OI**) and a significant reduction in the price spread, the influence of position size on price became minimal. As a result, partial liquidation is no longer effective for price adjustment and is no longer used on the platform.

---

## 📊 Position Status Monitoring

Monitoring the status of trading positions is a crucial aspect of risk management. To facilitate this task, **Storm** provides a visual indicator of position status, using color coding: **green**, **yellow**, and **red**.

- **🟢 Green**: When your position is shown in green, it means that it is in a healthy state. Your margin and balance are above the liquidation threshold. This is the ideal scenario, indicating that your risks are well-managed.
  
- **🟡 Yellow**: The yellow indicator signals caution. It means that your position is approaching the liquidation threshold, and your remaining margin is getting closer to the minimum required value. This is a warning to closely monitor your position and consider [increasing margin](changing_margin.md) if market conditions become unfavorable.
  
- **🔴 Red**: The red indicator is a clear signal that your position is in danger. Your margin balance is at a dangerously low level, and the market is close to triggering liquidation. In such a situation, immediate action is crucial. Rational steps would include adding additional margin or closing part of the position to reduce risk.

---

## ⏳ How to Manage Margin?

As a general rule, you should increase margin in a position **before** it reaches the "yellow" or "red" state. Proactive margin management will help prevent unexpected liquidations and give you greater control over your trades. Regularly monitoring these visual indicators, as well as keeping a close watch on your position's liquidation price, is key to effective and successful trading.

🏄 _Green, yellow, red: your guide for proactive risk control._

---

# 🧠 Trading Scenarios

Source: https://docs.storm.tg/trading-concepts/trading_scenarios

# 🧠 Trading Scenarios

In this section, we will explore three trading scenarios, each demonstrating a distinctly typical set of strategies and actions taken by traders on the Storm Trade platform. These scenarios showcase various aspects of trading, including opening long positions, increasing open positions, and creating limit orders, while also incorporating risk management tools such as stop loss and take profit orders.

## Scenario 1: Going  Long  with Leverage, Stop Loss, and Take Profit

In this scenario, we will delve into the process of opening a long position with leverage while implementing risk management tools like stop loss and take profit orders. We will use a specific example to illustrate these actions.

Starting Point: The current BTC price is $27,000. Our trader anticipates an upward movement and aims to buy at the current price and sell at $29,000.

Risk Management: He chooses a 5x leverage to maximize potential profit while keeping risks in check.

Execution: Our trader opens a trading pair, selects a "Market" order for the current price, specifies an amount of 1000 USDT as collateral, and sets the leverage to 5x.

Safety Measures: To mitigate risks, he sets a Stop Loss at $26,700, ensuring automatic closure if the price dips. Additionally, a Take Profit is set at $29,000 to secure profits.  Once the transaction is confirmed, the open position is displayed in the "Long" tab, and stop-loss and take-profit orders are visible in the "Orders" tab.

## Scenario 2: Scaling Up with Multiple Take Profit Levels

Starting Point: Our trader has opened a long position in BTC/USDT with a collateral of $1,000 USDT and 5x leverage. He entered the position at $27,000 with a futures contract volume of 0.158 BTC. A take-profit order with a trigger price of $29,000 USDT is in place for this position.

Market Analysis:
 Believing in a continued BTC price rise, our trader decides to increase the position.

Execution: He opens a new position at the current BTC price of $28,000 using a "Market" order. He provides $2,000 USDT as collateral and selects 15x leverage.After signing the transaction, the position profile changes: the collateral size is now 3,000 USDT, the leverage has become 10 times, and the average entry point has increased to 27,750 USDT. The volume of the futures contract is 1.081 BTC.

Managing Gains:
For the new position volume, the trader wants to set a price at which he will secure profits. After successfully scaling up the position, he opens the "ORDERS" tab and specifies the price at which part of the position (0.9 BTC) will be closed, with a take-profit set at $28,500. The order execution works as follows: when the BTC price reaches $28,500, 0.9 BTC of the position will be closed. The remaining portion of the position will be closed through a take-profit order at $29,000 BTC.

# Scenario 3: Creating a Limit Order with Short Selling, Leverage, and Safety Nets

Starting Point: BTC is at $28,600, and our trader expects a price drop after reaching $29,000.

Strategic Move: To profit from this trend without waiting, he creates a Limit Order.

Execution: The trader opens the trading pair and establishes a short position with a "Limit" order at a price of $29,000. He provides $2,000 USDT as collateral and chooses 3x leverage. While there's a threefold increase in risk, in the context of the anticipated trend, this risk is significantly lower than the potential threefold profit. The reward justifies the risk, and the risks are very much under control too.

Risk Management: To safeguard against potential losses, a stop-loss is set at $29,300. This ensures that if the asset's price rises to this level, the position will be automatically closed, preventing a ruinous setback for the trader. A take-profit at $27,000 ensures profit-taking as soon as the asset's price reaches an acceptable closing level. With careful planning, the trader has executed all his moves on the Storm Exchange platform, and a new "Limit" order appears on the "Orders" tab.

These are examples of practical strategies for navigating Storm Trade efficiently and effectively. Fair winds and following seas.

---

# ✊ Risk Management

Source: https://docs.storm.tg/protocol-mechanics/risk_management

# ✊ Risk Management

Risk management is the foundation of any derivatives exchange, ensuring platform stability and the safety of traders' funds. It encompasses a set of rules, mechanisms, and protective measures designed to reduce risks and prevent disruption of the trading ecosystem during extreme market conditions.

------------------------------- | --------------------------------------------- |
| 🪙 High Liquidity (BTC, ETH, etc.)  | 10%                                           |
| 💎 Low Liquidity (TON, PEPE, etc.) | 5%                                            |

---

## 📊 Maximum Spread Between Market and Index Prices

To maintain market integrity and prevent price manipulation, exchanges often set a maximum market or index price spread. This mechanism limits the difference between the market price and the index price, ensuring that the platform's prices accurately reflect the broader market. Excessive spreads can create abnormal trading conditions, negatively impacting traders and market stability.

Additionally, Storm aims to ensure that the maximum spread between the market and index prices only occurs in the highly unlikely situation where open interest is fully utilized on one side (e.g., long positions) and not used on the other.

| **Market Type** | **Open Interest Limit (% of storage)** |
| ------------- | ------------------------------------- |
| 🪙 Cryptocurrencies  | 1.5%                                  |
| 📈 Stocks         | 0.5%                                  |
| 🌾 Commodities    | 0.25%                                 |
| 💹 Forex          | 0.15%                                 |

---

## 💰 Funding Rate Limits

Funding rate limits are used to regulate the size of funding payments that traders can receive or pay during funding intervals. These limits prevent extreme funding rates that could encourage market manipulation or excessively high costs for traders. By setting funding limits, the exchange promotes fairness and balance in the trading environment.

| **Market Type** | **Maximum Funding Rate (24 hrs)** |
| ------------- | --------------------------------- |
| 🪙 Cryptocurrencies  | 0.0625%                           |
| 📈 Stocks         | 0.020%                            |
| 🌾 Commodities    | 0.01%                             |
| 💹 Forex          | 0.00625%                          |

---

## 🚫 Profit and Loss (PnL) Limits

The Profit and Loss (PnL) limit protects traders from excessive profits due to extreme market conditions or oracle errors. It sets a threshold beyond which a trader’s PnL cannot rise. If the trader’s PnL exceeds this threshold, [Keeper bots](keepers.md) in Storm may immediately close the position, with the trader receiving the full positive PnL amount.

| **Market Type** | **Max PnL** |
| ------------- | ----------- |
| 🪙 Cryptocurrency  | 900%       |
| 📈 Stocks         | 300%       |
| 🌾 Commodities    | 300%       |
| 💹 Forex          | 300%       |

---

## ⏳ Slippage Tolerance

Between the initiation of a Market order and the final confirmation of the transaction by the trader, the base price may change. If the absolute price change exceeds 1% of the value set when the order was created, Storm will cancel the execution of the Market order. This event is marked with the error code **SLIPPAGE_TOLERANCE** in the **Orders → History** section. This mechanism protects traders from unintentional order executions during sharp price movements and encourages the use of **Limit orders** during high volatility, which are executed only when the specified price is reached and, thus, are not subject to slippage.

---

## 📉 Maximum Price Deviation

During periods of extreme volatility or unforeseen events, such as oracle errors, trading can become unstable and lead to significant price deviations and losses for traders or liquidity providers. To mitigate this risk, exchanges implement a maximum price deviation mechanism. This function temporarily halts trading when oracle prices deviate significantly from the oracle price in the previous price update (last minute). As a result, the exchange halts trading for that pair until the deviation is resolved on its own or manually adjusted. Currently, this deviation is set at **20%**.

---

By implementing measures such as open interest limits, maximum price spreads, funding limits, PnL limits, and maximum price deviations, **Storm** ensures the safety of both traders and liquidity providers, even in extreme market conditions.

🏄 _Effective risk management is the cornerstone of a well-functioning perpetual futures exchange._

---

# 🤖 Keeper Bots

Source: https://docs.storm.tg/protocol-mechanics/keepers

# 🤖 Keeper Bots

On perpetual futures exchanges, the presence of keeper bots is essential. These bots play a crucial role in the functioning and maintenance of the exchange, ensuring smooth operations and facilitating key processes.

At the core of **Storm Trade** lies the concept of smart contracts. However, smart contracts cannot function independently. For example, a smart contract cannot trigger actions such as price changes without an external trigger. It can only validate, for example, the legality of executing an order based on market conditions. This creates the need for keeper bots.

Keeper bots are responsible for:
- Initiating **periodic funding payments**.
- **Order execution**.
- **Position liquidation**.

## 📊 Order Execution

Keeper bots constantly monitor the **order book** and assess which orders can be executed based on market conditions.

🛠️ **What Keeper Bots Do**:
- Execute buy and sell orders.
- Ensure efficient **entry and exit** from positions for traders.
- Improve liquidity and speed on the platform.

💰 **Reward**: 
- For each executed order, keeper bots receive **0.02%** of the position's nominal value.
- This fee is divided between:
  - **60%** goes to the **keeper**.
  - **40%** goes to the common **pool**, which is distributed among all active keepers.

🎯 **Feature**: The reward from the pool is not divided equally. It is distributed proportionally to each keeper's activity. This encourages keepers to balance their strategies and work with both small and large orders.

---

## 🚨 Liquidation of "Underwater" Positions

When traders' positions fall below the minimum threshold, keeper bots **initiate liquidation**. This is an essential risk management tool that prevents traders from accumulating unacceptable losses.

⚠️ **How it works**:
- Keeper bots quickly liquidate losing positions, helping to maintain stability on the exchange.

💸 **Reward**: 
- Keeper bots receive **50%** of the liquidation penalty.

---

## 💰 Incentives for Keeper Bots

Running a keeper bot is not just a service, but also a profitable venture. Keeper bots earn:
- **0.02%** of each executed order.
- **50%** of the liquidation penalty.

🛠️ **What you need to run a Keeper Bot**:
- To become an operator of a keeper bot, you need to own a **Genesis NFT**. This NFT grants access to the platform and provides various privileges to participants.

💡 **Advantage**:
- The Genesis NFT confirms the operator's commitment to the exchange's growth and opens the door to the exciting and profitable world of trading on **Storm Trade**.

---

🏄 _The work of keeper bots contributes to the **stability** and **liquidity** of the platform, creating a favorable environment for traders and increasing trust in the exchange._

---

# 💼 Fees Distribution

Source: https://docs.storm.tg/protocol-mechanics/fees_distro

# 💼 Fees Distribution

In the world of derivatives trading, commissions are the primary source of protocol revenue. On blockchain derivative exchanges, democratization takes center stage as these platforms allow anyone to provide liquidity and participate in revenue sharing. In this section, we will explore how **Storm** enables both liquidity providers and token stakers to actively participate in the evolving protocol economy.

For more details about protocol and network fees, see the [Fees](exchange-leveraged-trading/fees.md) section.

---

# 🛰️ Oracles

Source: https://docs.storm.tg/protocol-mechanics/price_feeds

## 🛰️ Oracles

To ensure accurate trading conditions and reliable price data, **Storm Trade** on the **TON blockchain** integrates two advanced oracle solutions — [**Stork**](https://docs.stork.network/) and [**Pyth Network**](https://pyth.network/).

### 🔗 Pyth Network

**Pyth Network** aggregates price data from over **65 sources**, including crypto exchanges, stock markets, and forex providers. Built on **Solana's infrastructure**, it transmits data to TON via the [**Wormhole protocol**](https://wormhole.com/), enabling secure cross-chain integration.

#### 💡 Key Advantages:

- 📊 **Diverse data sources** — accurate pricing from a broad range of markets.
- ⚙️ **High-frequency updates** — up to **700+ price updates per second**.
- 🔐 **Cross-chain compatibility** — secure delivery via Wormhole bridge.

📘 Learn more: [Pyth Documentation](https://pyth.network/)

---

### 🧮 How Prices Are Formed on Storm Trade

On the **Storm Trade** platform, a **single unified price** is now used, formed through aggregated liquidity:

- 📉 **Index Price** — calculated based on aggregated data from **Stork** and **Pyth**, taking into account trading volumes across various exchanges. Outlier values are discarded for greater accuracy.
- ⚖️ **Market Price** — no longer exists as a separate dynamic price. Since the Storm v2.5 update, **Market Price is always equal to Index Price** and is delivered by the oracle. Trade execution price is determined with aggregated liquidity from leading CEXs (Binance, Bybit, etc.), eliminating price impact from large orders and ensuring fair conditions for traders.

---

#### 🛠️ How the New System Works

- 🏦 **Liquidity Aggregation** considers the average order book depth on top CEXs and liquidity for longs/shorts.
    - **BTC & ETH** — 0% spread for any volume.
    - **TON & NOT** — 0% spread, but market depth is taken into account.
    - **RWA (real-world assets)** — fixed spread of 0.015% for any volume.
    - **Other pairs** — dynamic spread based on liquidity and CEX data.

- 📊 **One chart, one price:** traders see a single price and chart, with no hidden slippage or confusion between Index and Market Price.
- 🏹 **Minimal slippage:** trades are executed at a fair price, as close as possible to those on major exchanges.
- 🔒 **Position closing — no spread:** traders receive exactly the price displayed in the interface, with minimal signing lag.

---

#### 🌟 Advantages of the Storm Trade Approach

- 🪞 **Transparency:** no hidden pricing mechanisms.
- ⚖️ **Fairness:** trade execution is as close as possible to the real market price.
- 🧩 **Convenience:** traders do not face two different prices or charts.

🏄 _Storm Trade has implemented aggregated liquidity to provide the best conditions for traders and eliminate confusion between Index Price and Market Price. Now, a single price is used, formed by the oracle and confirmed by external markets._

---

# 💎 Referral Program

Source: https://docs.storm.tg/community-social/tokenized_referral

# 💎 Referral Program

## 👋 Introduction

Storm Trade introduces an innovative approach to referral programs through tokenized referrals. This advancement transforms each referral link into a unique and valuable NFT (Non-Fungible Token), which serves as a transferable recurring payment stream. These tokenized referral links can be leveraged in marketplaces, opening up new possibilities for traders.

## 💡 Understanding the Concept

A referral program is a common strategy for attracting new traders to exchanges. Storm Trade takes this concept further by introducing tokenized referrals. Each referral link is represented as an NFT, providing unique advantages. This not only benefits the referrers and referrals but also offers a pathway for monetization.

## 🔗 Tokenized Referral Links

In the context of Storm Trade, every referral link is treated as a distinct token. Leveraging the architecture of TON (Telegram Open Network), each token functions as a separate smart contract with an individual address. This setup grants these tokens access to various resources, including jettons such as jUSDT.

## ⚙️ Key Parameters of Referral Links

Each referral link is characterized by two key parameters:

* Discount: This parameter determines the reduction in trading fees for users who utilize the referral link. By default, a discount of 5% is applied.
* Rebate: The rebate parameter specifies the percentage of a trader's fees that the referrer will earn. A default rebate of 10% is established.

## 🌐 Real-World Example

Consider a scenario where a trader initiates a position with an Open Interest (OI) of $10,000. The fee for this transaction is calculated as follows: Fee = 10,000 \* 0.0012 = $12.

By utilizing the default referral link, the trader's fee is reduced to $11.4. In turn, $1.4 is directed towards the referrer.

## 🧩 Types of Referral Links

Storm Trade offers different types of referral links, each serving distinct purposes:

* Normal Links: These links can be generated by any user and offer standard benefits for both referrers and referrals. They are freely transferrable.
* KOL (Key Opinion Leader) Links: Created by the Team, KOL links provide enhanced benefits for referrers and referrals. However, they are non-transferrable.

## 📤 Creating and Sharing Links

Users can create normal referral links effortlessly by selecting "Create referral link." This action generates a unique link directly on the blockchain. The most recently generated link automatically becomes the default link for the trader.

Sharing referral links is straightforward, whether by copying the link or sharing a trading position. When sharing a position, the default link is automatically applied.

## 🚀 Simplified Access with Short Codes

Each referral link is assigned a unique consecutive ID, serving as a short code. This short code is base91 encoded and is used in URLs and QR codes for convenience. The resolution of a short code to its corresponding address is efficiently handled by a backend service.

## 💰 Selling Your Referral Links

Users have the option to sell their referral links on NFT marketplaces. The backend provides metadata for each link, based on on-chain performance metrics such as referral numbers and fees.

## 📊 Monitoring and Claiming Rewards

Under the Referral tab, users can conveniently monitor all their referral links. This section provides insights into the rewards earned from each link and cumulative reward amounts. Users have the flexibility to claim rewards for individual links as needed.

## ⛓️ Impact of Referral Links on Fees

Referral links have a direct impact on various trading fees:

* Position open fee
* Position close fee
* Liquidation penalty (rebate only), and only without bad debt

> **NOTE:** It's important to note that **funding** and **rollover** fees remain unaffected by discounts or rebates.

---

# 🎙 Trade Sharing

Source: https://docs.storm.tg/community-social/sharing_trades

# 🎙 Trade Sharing

At Storm Trade, we believe that a trader's success deserves attention. That's why we have a special feature called **"Share Position"**.

Whether it's a modest win or a colossal triumph — let the world witness your trading skills.

## 💡 How Can You Share?

You can share your success in the following ways:

- 🐦 **Post to Twitter**;
- 📥 **Download as a PNG file** to your device;
- 📋 **Copy to clipboard**;
- 🔗 **Generate a "deep link"** for Sharing Trades.

---

## 🔍 What is a "Deep Link"?

A **deep link** is a special URL that can be generated for an open trading position or limit order. This URL contains all the essential parameters needed to replicate the trade. When someone clicks on this link, the automatic process begins:

- 🚀 **Open TMA (Telegram Trading Bot)**: The deep link automatically launches our trading bot with the exact parameters of the trade. This includes details such as trading pair, direction (long or short), order type (stop-loss or take-profit), and leverage.

- 🔄 **Seamless Transaction Signing**: For the user who clicks on the deep link, the process is very simple. They will receive the ready-made trading settings, and all they need to do is sign the transaction. This way, they can easily replicate the trade without manually entering any parameters.

{% hint style="info" %}It’s important to note that the general position data includes a QR code containing a [referral link](./tokenized_referral.md). This referral link can be used for commission rebates. When a user shares their position, and the recipient clicks on the referral link and participates in trading on Storm Trade, both parties benefit from reduced trading fees. This mutually beneficial mechanism encourages information sharing and participation in trading.{% endhint %}

---

🏄 _Now share your achievements with the world and earn additional benefits with Storm Trade!_

---

# 🥇 Effective Trading

Source: https://docs.storm.tg/community-social/excelling_at_trading

# 🥇 Effective Trading

The leaderboard is the place where you can fuel your competitive spirit. It's not just a regular scoreboard, but rather a table for the cool guys playing poker with high stakes.

## 🌟 What Does the Leaderboard Offer?

Leaderboards in Storm Trade provide you with:

- ⚡ **Letting your natural competitive instincts run wild.**
- 🎯 **Setting your goals in the game.**
- 📊 **Tracking your progress** and seeing how you stack up against others.
- 🥊 **Challenging yourself in friendly duels.**
- 🏆 **Recognition and social rewards.**

## 🏅 Leaderboards in Storm Trade

Leaderboards are very popular in Storm Trade. They serve as the foundation for trader competitions, offering various rewards, from one-time NFT bonuses to $STORM tokens.

## 👤 Personalized Approach

To enhance your trader profile, you can choose a cool nickname and a fun avatar. Create your unique trader identity and show off your individuality!

---

So there you have it. The leaderboard is where **the right to be proud of yourself** meets **healthy competition**. Step onto the market, set records, and perhaps you’ll earn some cool rewards! 🏆

---

# 💎 NFT Holders (Exclusive)

Source: https://docs.storm.tg/links/nftholders

# 💎 NFT Holders (Exclusive)

**Market Makers** is a unique NFT collection from Storm Trade, consisting of 5555 one-of-a-kind 3D characters that reflect the market sentiment.

**Collection Link:** 🔗 [getgems.io/market-makers](https://getgems.io/market-makers)

NFT holders enjoy the following perks:

- ✨ Exclusive VIP chat with the founders
- 🗣️ Discussion of upcoming utilities
- 📸 Showcase your characters
- 🤝 Connect with the core community

## ⛔ Losing access

If you sell or transfer your NFT, your access to the chat will be automatically revoked by the bot.

---

🏄 _Join us at the heart of the Storm community 🌪️_

---

# 🧭 Developer Overview

Source: https://docs.storm.tg/developers

# 🧭 Developer Overview

Build a trading app, bot or analytics tool on Storm Trade.

## Start here

1. Choose the [JavaScript / TypeScript SDK](sdk_js.md) or [Go SDK](sdk_go.md).
2. Get testnet access during [onboarding](https://app.storm.tg/builders), then set up and fund a Smart Account.
3. Place a test order and [confirm its execution](api_v3.md).
4. Add your registered builder address to earn [builder fees](builder_fees.md).

New trading integrations use V3. The user signs orders with a key registered on their Smart Account; deposits and withdrawals still use the owner wallet.

## Guides

| I want to | Open |
| --- | --- |
| Place orders from JavaScript or TypeScript | [JavaScript SDK](sdk_js.md) |
| Place orders from Go | [Go SDK](sdk_go.md) |
| Read markets, prices and history | [Markets and history](api_v2.md) |
| Find an endpoint or try a request | [API reference](/developers/overview) |
| Understand signing, query IDs and confirmation | [Architecture & Concepts](dev_concepts.md) |
| Earn fees from my integration | [Builder Fees](builder_fees.md) |
| Use V2 with TON Connect | [V2 wallet transactions](sdk_js_v2.md) |

For integration questions, contact [developer support](https://t.me/Storm_Support_bot).

---

# 🏗 Architecture & Concepts

Source: https://docs.storm.tg/developers/dev_concepts

# 🏗 Architecture & Concepts

## Smart Accounts and signing

A **Smart Account** holds a user's collateral and positions. The owner wallet funds it, withdraws funds and manages signing keys.

An **intent** is a signed trading instruction. The SDK prepares it and signs it with a registered Ed25519 key. Storm checks the instruction, groups it into a **bundle** and sends it to the blockchain.

Use [V3](sdk_js.md) for new integrations. [V2](sdk_js_v2.md) sends transactions directly from the user's TON wallet.

## Query IDs

Every new order needs an unused query ID for its Smart Account:

1. Read a starting value with `getQueryID`.
2. Reserve and save the ID in your application before signing. Coordinate this across all processes and devices using the account.
3. For attached SL/TP, reserve one extra ID per trigger. The JS SDK assigns those IDs consecutively after the opening order.

The lookup does not reserve an ID, and the JS SDK does not manage the counter. IDs range from `0` to `8,380,415`. Signed cancellations need no new ID. A user intent ID and a bundle's execution ID are different identifiers.

If a request times out, check its saved hash before creating another order. Reusing a consumed ID returns `QUERY_ID_ALREADY_USED`.

## Confirm execution

Save the signed request and all intent hashes before sending. Check the intent, find its [account bundle](/developers/operations/getaccountbundles), then confirm the outcome through transactions and account state.

| Bundle status | Meaning |
| --- | --- |
| `pending` | Collecting instructions |
| `sealed` | Ready to send |
| `sent` | Sent to the blockchain |
| `confirmed` | Succeeded on-chain |
| `failed` | Failed on-chain |

An intent marked `accepted` or `done` does not prove a fill. A placed limit or stop order may still be waiting to execute. If the intent record has expired, check indexed history.

## Amounts and time

| Value | Unit |
| --- | --- |
| V3 order collateral, margin, price, leverage and position size | 9 decimals; use `toNano('1.5')` for 1.5 |
| Deposits, withdrawals and V2 collateral | Token decimals: 6 for USDT, 9 for TON |
| Intent `createdAt` and order `expiration` | Unix seconds |

Keep large integers as strings or `bigint`. Follow each endpoint's schema for timestamps returned by reads. Find market vAMM addresses in [markets](/developers/operations/listmarkets).

## Fees

Trading Fees apply when opening and closing positions. Execution Fee and funding are separate and do not generate builder payouts. See [Builder Fees](builder_fees.md) and [Trading Fees](../exchange-leveraged-trading/fees.md).

## Errors

| Error | Action |
| --- | --- |
| `EMULATE_ERROR` | Check the contract exit code and correct the order |
| `NOT_ENOUGH_BALANCE` | Add collateral or reduce the order |
| `QUERY_ID_ALREADY_USED` | Check the earlier intent before reserving another ID |

The JS SDK throws `V3ApiError` with `status` and `body` when submission is rejected, including an HTTP 200 response without acceptance. A network error can leave the result unknown. Check the saved hash; the SDK does not retry automatically.

---

# 🛠️ Storm Trade SDKs

Source: https://docs.storm.tg/developers/sdk

# 🛠️ Storm Trade SDKs

Both SDKs support V3 Smart Accounts and V2 wallet transactions. Choose your language:

| | JavaScript / TypeScript | Go |
| --- | --- | --- |
| Guide | [JavaScript SDK](sdk_js.md) | [Go SDK](sdk_go.md) |
| Package | `@storm-trade/trading-sdk` | `github.com/storm-trade/sdk-go` |
| V3 entry point | `/v3`, available in **1.1.0** | `storm` |
| V2 entry point | `/sdk` | `stormv2` |
| Source | [sdk-js](https://github.com/storm-trade/sdk-js) | [sdk-go](https://github.com/storm-trade/sdk-go) |

## What they do

Both SDKs prepare and sign orders, submit them and read account state. They support market and limit orders, SL/TP, closing positions and changing margin.

For deposits and withdrawals, the JS SDK builds payloads for the owner wallet to send. The Go SDK provides account helpers. The JS SDK also supports V2 liquidity operations.

In JS, your application supplies the signer, reserves query IDs and saves prepared requests before sending. Start with the [V3 example](sdk_js.md).

If you only need market data or trading history, use the [API](api_v2.md) directly.

## Before testing

Get testnet access during [onboarding](https://app.storm.tg/builders). Keep the SDK, API, TON RPC and contract addresses on the same network. See [API networks](api.md#networks).

V3 order amounts use 9 decimals. Deposits and withdrawals use token decimals. The guides show the units beside each example.

For integration questions, contact [developer support](https://t.me/Storm_Support_bot). Report SDK bugs in [sdk-js](https://github.com/storm-trade/sdk-js/issues) or [sdk-go](https://github.com/storm-trade/sdk-go/issues).

---

# 🟨 JavaScript / TypeScript SDK

Source: https://docs.storm.tg/developers/sdk_js

# 🟨 JavaScript / TypeScript SDK

Use the V3 SDK to place orders, manage positions and read Smart Account balances.

## Install

The examples use Node.js 22 and SDK **1.1.0**:

```bash
npm install @storm-trade/trading-sdk@1.1.0 @ton/ton@^15.2.0
```

## Connect

First, fund the user's Smart Account and register a signing key. Get the market's vAMM address from [markets](/developers/operations/listmarkets).

```typescript
import { Address, toNano } from '@ton/ton';
import {
  OrderType, V3Client, prepareOrder, prepareCancel,
} from '@storm-trade/trading-sdk/v3';

const api = new V3Client('https://api.storm.tg/v3-node-0');
const smartAccount = Address.parse('YOUR_SMART_ACCOUNT');
const market = Address.parse('MARKET_VAMM_ADDRESS');
```

Replace the two addresses with your own. This URL is **Mainnet**. For testing, get matching API and contract addresses during [builder onboarding](https://app.storm.tg/builders).

The examples below use three values from your application:

- `signer`: the registered key's 32-byte `publicKey` and a `sign(hash)` function that returns a 64-byte Ed25519 signature. It signs the cell hash directly.
- `queryId`: an unused ID reserved for this Smart Account. The SDK does not reserve IDs for you.
- `minimumBaseAmount`: the minimum base asset size you accept, based on your quote and slippage setting, with 9 decimals.

For complete account and signer setup, use the [runnable examples](https://github.com/storm-trade/sdk-js/tree/main/examples/builders). Wallet transaction signatures and `ton_proof` cannot replace the intent signer.

## Place a market order

This opens a long position with **100 collateral and 3× leverage**:

```typescript
const now = Math.floor(Date.now() / 1000);
const prepared = await prepareOrder({
  smartAccount,
  market,
  signer,
  queryId,
  createdAt: now - 5,
  order: {
    type: OrderType.Market,
    expiration: now + 600,
    direction: 0, // 0 = long, 1 = short
    amount: toNano('100'),
    leverage: toNano('3'),
    minBaseAssetAmount: minimumBaseAmount,
    limitPrice: 0n,
    stopTriggerPrice: 0n,
    takeTriggerPrice: 0n,
  },
});
```

Save `prepared.hash`, `prepared.request` and `prepared.orderRequestHashes` in your application before sending. Then submit:

```typescript
await api.placeOrder(prepared.request);
```

To earn builder fees, add your registered `builder` address to `prepareOrder`. See [Builder Fees](builder_fees.md).

## Check the result

```typescript
const status = await api.getIntentStatus(prepared.hash);
const positions = await api.getPositions(smartAccount.toRawString());
```

`accepted` means the API received the order. Neither `accepted` nor `done` proves a fill. Confirm the result through [account bundles](/developers/operations/getaccountbundles), transactions and position state.

**If a request times out, check the saved hash before creating another order.** The first order may already be accepted. The SDK does not retry automatically.

## Add SL/TP or use a limit price

In the opening order above:

| Action | Change |
| --- | --- |
| Stop loss | Set `stopTriggerPrice` to your stop price |
| Take profit | Set `takeTriggerPrice` to your target price |
| Limit order | Use `OrderType.Limit`, set `limitPrice`, and replace `minBaseAssetAmount` with `stopPrice: 0n` |
| Stop market | Use `OrderType.Limit`, set `stopPrice`, keep `limitPrice: 0n`, and omit `minBaseAssetAmount` |
| Stop limit | Use `OrderType.Limit`, set both `stopPrice` and `limitPrice`, and omit `minBaseAssetAmount` |

Use `toNano('65000')` for a price of 65,000. For attached SL/TP, reserve one query ID for the opening order plus one for each trigger. The SDK assigns the extra IDs consecutively. Limit orders open or increase a position; they do not reduce it.

## Close a position

This prepares a close of **0.001 units of the base asset**. Use the position's direction and a new reserved `closeQueryId`:

```typescript
const close = await prepareOrder({
  smartAccount, market, signer,
  queryId: closeQueryId,
  createdAt: Math.floor(Date.now() / 1000) - 5,
  order: {
    type: OrderType.TakeProfit,
    expiration: Math.floor(Date.now() / 1000) + 600,
    direction: 0,
    amount: toNano('0.001'),
    triggerPrice: 0n,
  },
});
```

Save the result, then submit `close.request` with `api.placeOrder`. For a full close, use the current position size as `amount`.

## Cancel an order

Use the resting order's `orderHash`, either a hex hash or an ID starting with `@offchain:`:

```typescript
const cancellation = await prepareCancel(smartAccount, orderHash, signer);
```

Save the target `orderHash` and the cancellation's hash and request before sending:

```typescript
await api.cancelOrder(cancellation.request);
```

Cancellation needs no new query ID. Check the target order's final status to confirm it was cancelled; a successful request alone is not confirmation.

## Amounts and account setup

V3 order amounts, position sizes, prices and leverage use **9 decimals**: `toNano('100')` means 100. Deposits and withdrawals use the token's own decimals: 6 for USDT, 9 for TON. Times use Unix seconds. Keep large values as `bigint` or strings.

The owner wallet handles deposits, withdrawals and signing keys. The SDK provides `getSmartAccountAddress`, `depositPayload`, `withdrawalPayload` and `keyPayload`; follow the [account examples](https://github.com/storm-trade/sdk-js/tree/main/examples/builders#readme) to send the wallet transactions.

- [Query IDs, signing and errors](dev_concepts.md)
- [API reference](/developers/overview)
- [V2 wallet transactions](sdk_js_v2.md)
- [SDK source](https://github.com/storm-trade/sdk-js) · [npm package](https://www.npmjs.com/package/@storm-trade/trading-sdk)

---

# JavaScript SDK: V2 wallet transactions

Source: https://docs.storm.tg/developers/sdk_js_v2

# JavaScript SDK: V2 wallet transactions

`@storm-trade/trading-sdk` builds Storm **v2** transactions: market, limit and stop orders, Stop-Loss and Take-Profit, margin changes, liquidity operations. Every method returns transaction parameters (`to`, `value`, `body`), and you send them with the wallet of your choice: TON Connect in the browser or a `@ton/ton` wallet contract in Node.js.

For Smart Accounts and signed intents, use the [JavaScript V3 guide](sdk_js.md). This page covers the existing V2 exports.

- npm: [@storm-trade/trading-sdk](https://www.npmjs.com/package/@storm-trade/trading-sdk)
- Source and runnable examples: [storm-trade/sdk-js](https://github.com/storm-trade/sdk-js), folder `src/examples`

## 🚀 Initialize

This example uses Mainnet. For testing, obtain testnet endpoints during [builder onboarding](https://app.storm.tg/builders) and configure the API, oracle and TON RPC for that network together.

```typescript
import { TonClient } from '@ton/ton';
import { StormTradingSdk } from '@storm-trade/trading-sdk/sdk';
import { StormClient, OracleClient } from '@storm-trade/trading-sdk/api-clients';

const ORACLE_URL = 'https://oracle.storm.tg';
const STORM_API_URL = 'https://api.storm.tg/api';
const TON_CENTER = 'https://toncenter.com/api/v2/jsonRPC';

const tonClient = new TonClient({ endpoint: TON_CENTER, apiKey: TONCENTER_API_KEY });

const sdk = new StormTradingSdk(
  new StormClient(STORM_API_URL, new OracleClient(ORACLE_URL)),
  tonClient,
  TRADER_ADDRESS, // the wallet that will sign, string or Address
);
await sdk.init(); // loads markets, vaults and contract addresses
```

---

## 📈 Orders

Amounts are collateral in the asset's own decimals. Leverage and prices are scaled by 10^9.

```typescript
import { Direction, OrderType } from '@storm-trade/trading-sdk/base-packers';

// Market long, 1 TON collateral, 2x, with SL/TP created on execution
const open = await sdk.createMarketOpenOrder({
  baseAssetName: 'XRP',
  collateralAssetName: 'TON',
  direction: Direction.long,
  amount: 1_000_000_000n,
  leverage: 2_000_000_000n,
  minBaseAssetAmount: 900_000_000n,   // slippage guard, optional
  stopTriggerPrice: 80_000_000_000n,  // optional
  takeTriggerPrice: 120_000_000_000n, // optional
});

// Limit order
const limit = await sdk.createLimitOrder({
  baseAssetName: 'XRP',
  collateralAssetName: 'TON',
  direction: Direction.long,
  amount: 1_000_000_000n,
  leverage: 2_000_000_000n,
  limitPrice: 100_000_000_000n,
});

// Stop-market and stop-limit
await sdk.createStopMarketOrder({ /* ...same fields... */ stopPrice: 105_000_000_000n });
await sdk.createStopLimitOrder({ /* ...same fields... */ stopPrice: 105_000_000_000n, limitPrice: 106_000_000_000n });

// Cancel a resting order by type and index from the position manager
const cancel = await sdk.cancelOrder({
  baseAssetName: 'XRP',
  collateralAssetName: 'TON',
  direction: Direction.long,
  orderType: OrderType.limit,
  orderIndex: 0,
});
```

---

## 🧾 Positions

```typescript
// Stop-Loss / Take-Profit on an open position
await sdk.createStopLossOrder({ baseAssetName: 'XRP', collateralAssetName: 'TON', direction: Direction.long, amount: 1_000_000_000n, triggerPrice: 90_000_000_000n });
await sdk.createTakeProfitOrder({ baseAssetName: 'XRP', collateralAssetName: 'TON', direction: Direction.long, amount: 1_000_000_000n, triggerPrice: 110_000_000_000n });

// Close, size is base asset with 9 decimals
await sdk.createClosePositionOrder({ baseAssetName: 'XRP', collateralAssetName: 'TON', direction: Direction.long, size: 1_000_000_000n });

// Margin. The SDK fetches a signed oracle price for these two calls.
await sdk.addMargin({ baseAssetName: 'XRP', collateralAssetName: 'TON', direction: Direction.long, amount: 500_000_000n });
await sdk.removeMargin({ baseAssetName: 'XRP', collateralAssetName: 'TON', direction: Direction.long, amount: 200_000_000n });
```

---

## 💧 Liquidity

```typescript
await sdk.provideLiquidity({ assetName: 'USDT', amount: 1_000_000n }); // 1 USDT, 6 decimals
await sdk.withdrawLiquidity({ assetName: 'TON', amountOfSLP: 500_000_000n }); // 0.5 SLP
```

---

## 📤 Sending the Transaction

Every call above returns `TXParams`. Nothing is sent until you hand it to a wallet.

**Browser, TON Connect:**

```typescript
import { TonConnectUI } from '@tonconnect/ui';

const tonConnectUI = new TonConnectUI({ manifestUrl: 'https://your-app.com/tonconnect-manifest.json' });

const tx = await sdk.createMarketOpenOrder({ /* ... */ });
await tonConnectUI.sendTransaction({
  validUntil: Math.floor(Date.now() / 1000) + 300,
  messages: [{
    address: tx.to.toString(),
    amount: tx.value.toString(),
    payload: tx.body.toBoc().toString('base64'),
  }],
});
```

**Node.js, hot wallet from a mnemonic:**

```typescript
import { internal, WalletContractV4 } from '@ton/ton';
import { mnemonicToPrivateKey } from '@ton/crypto';

const keyPair = await mnemonicToPrivateKey(MNEMONIC.split(' '));
const wallet = tonClient.open(WalletContractV4.create({ workchain: 0, publicKey: keyPair.publicKey }));

const tx = await sdk.createMarketOpenOrder({ /* ... */ });
await wallet.sendTransfer({
  seqno: await wallet.getSeqno(),
  secretKey: keyPair.secretKey,
  messages: [internal(tx)],
});
```

Pass the wallet's address as `TRADER_ADDRESS` when constructing the SDK, otherwise the position manager lookups point at the wrong account.

---

## 🧑‍💻 Examples in the Repository

`src/examples` in [sdk-js](https://github.com/storm-trade/sdk-js) contains runnable scripts grouped by `orders`, `liquidity` and `ton-connect`, plus a `utils/sdk-manager.ts` helper that wraps the Node.js sending pattern above. Copy the closest script and replace the environment block.

---

# 🐹 Go SDK

Source: https://docs.storm.tg/developers/sdk_go

# 🐹 Go SDK

`github.com/storm-trade/sdk-go` covers both trading paths. The `storm` package drives **v3**: it builds and signs intents, submits them to the sequencer, and manages Smart Account deposits and withdrawals. The `stormv2` package drives **v2** with direct wallet transactions and appends the executor fee automatically.

- Source: [storm-trade/sdk-go](https://github.com/storm-trade/sdk-go)
- CLI examples: `cmd/example` for v3, `cmd/v2example` for v2

```bash
go get github.com/storm-trade/sdk-go
```

| Package | Purpose |
| --- | --- |
| `config` | Networks, markets, assets, `Direction` |
| `storm` | v3 client: Smart Account plus sequencer |
| `stormv2` | v2 client: direct wallet transactions |
| `sequencer` | Trading API (V3) REST client |
| `oracle` | Signed oracle prices, used by v2 margin operations |
| `client/vamm`, `client/vault`, `client/smartaccount`, `client/positionmanager` | On-chain reads and Smart Account operations |
| `tlb`, `contracts` | Order types, position state, error codes, TL-B schemas |

| --- |
| `WithClockSkew(5*time.Second)` | Compensates local clock drift in intent expirations. Recommended |
| `WithGasless()` | Gasless execution mode |
| `WithExpiration(ts)` | Custom intent expiration, Unix seconds |
| `WithQueryID(id)` | Override the query id. The client tracks it for you otherwise |

### Reading state

```go
seq := sequencer.NewClient(sequencer.TestnetURL)
state, _ := seq.GetAccountState(ctx, saAddr)
balances, _ := seq.GetBalances(ctx, saAddr)
positions, _ := seq.GetPositions(ctx, saAddr)
intent, _ := seq.GetIntent(ctx, res.OrderHash)
status, _ := seq.GetStatus(ctx)

spot, _ := client.GetSpotPrice(ctx, btc)
amm, _ := client.GetAmmState(ctx, btc)
vault, _ := client.GetVaultData(ctx, "USDT")
```

---

## 🔁 v2: Direct Wallet Transactions

```go
client := stormv2.NewClient(config.Testnet,
    stormv2.WithWallet(w),
    stormv2.WithTONApi(api),
)

btc, _ := client.Market("BTC", "USDT")
amount := tlb.MustFromDecimal("10", 6) // collateral decimals: 6 for USDT

res, _ := client.PlaceMarketOrder(ctx, btc, config.Long, &amount, 3_000_000_000,
    stormv2.WithStopLoss(&sl), stormv2.WithTakeProfit(&tp), stormv2.WithReferralID(123))
fmt.Println(res.Hash) // TON transaction hash

// Cancel by order type and index: 0 SL, 1 TP, 2 limit, 3 market
client.CancelOrder(ctx, btc, config.Long, 2, 0)
```

Differences from v3 that matter in code:

| | v3 `storm` | v2 `stormv2` |
| --- | --- | --- |
| Result | Intent hash, sequencer response | TON transaction hash |
| Cancel | By order hash | By order type and index |
| Amounts | 9 decimals | Collateral decimals |
| Oracle data | Injected by the sequencer | Fetched by the SDK for margin operations |
| Executor fee | Not needed | Appended as a second message |

---

## 🧪 CLI

The repository ships a CLI that exercises every call above. It is the quickest way to check your keys and environment before writing code.

```bash
export STORM_SEED="word1 word2 ... word24"
export STORM_PRIVATE_KEY=<ed25519 hex>   # v3 only
export STORM_NETWORK=testnet             # or mainnet

go run ./cmd/example keygen
go run ./cmd/example deposit TON 0.5 --init
go run ./cmd/example order market BTC USDT long 100 3 --sl=60000 --tp=80000
go run ./cmd/example positions
go run ./cmd/example close-all BTC USDT long

go run ./cmd/v2example order limit BTC USDT long 10 3 --limit=60000
go run ./cmd/v2example orders BTC USDT long
```

---

# 🔌 API integration

Source: https://docs.storm.tg/developers/api

# 🔌 API integration

Use the [API reference](/developers/overview) to find a method, read its parameters and try a request.

## Choose a task

| I want to | Start with |
| --- | --- |
| Place or cancel orders | [JavaScript SDK](sdk_js.md) or [Go SDK](sdk_go.md) |
| List markets and contract addresses | [Markets](/developers/operations/listmarkets) and [configuration](/developers/operations/getprotocolconfiguration) |
| Read open positions | [Account positions](/developers/operations/getaccountpositions) |
| Read order or position history | [Markets and history](api_v2.md) |
| Confirm an order executed | [Submit and track orders](api_v3.md) |
| Earn builder fees | [Builder Fees](builder_fees.md) |

## Networks

Mainnet uses `https://api.storm.tg`:

- `/v3-node-0`: orders, Smart Accounts and execution.
- `/api`: markets, configuration, history and vaults.

For testnet, get endpoints during [onboarding](https://app.storm.tg/builders). Use the same network for the SDK, API, TON RPC and contract addresses.

## Requests

Public reads need no API key. Trading writes need a signed request prepared with the SDK. **Try it out** sends real requests and asks for confirmation before writes; check the displayed network first.

Cache market lists and poll status no more than once per second. Limits apply per IP and may change.

For failed orders, follow the [error guide](dev_concepts.md#errors). After a timeout, check the original order hash before submitting a new order.

---

# ⚡ Submit and track orders

Source: https://docs.storm.tg/developers/api_v3

# ⚡ Submit and track orders

Use the [JavaScript SDK](sdk_js.md) or [Go SDK](sdk_go.md) to prepare, sign and send orders. V3 requests use `https://api.storm.tg/v3-node-0`.

## Follow an order

1. Save the signed request and its hash before sending.
2. Submit it, then [check the intent](/developers/operations/getintent) by hash.
3. Find it in the [account's bundles](/developers/operations/getaccountbundles) and confirm the result through transactions and position state.

An accepted request means the API received the order. It does not mean the trade executed. A limit order can be placed and still be waiting to fill.

**After a timeout, check the saved hash before creating another order.** The first order may already be accepted.

## Use the API directly

The [API reference](/developers/overview) has parameters and **Try it out** for each method:

- [Place an order](/developers/operations/placeorder)
- [Cancel an order](/developers/operations/cancelorder)
- [Read an intent](/developers/operations/getintent)
- [List account bundles](/developers/operations/getaccountbundles)

Public reads need no API key. To send an order, prepare a signed request with the SDK first. The playground sends real requests to the displayed network; it does not sign them for you.

See [markets and history](api_v2.md) for market data, and [Builder Fees](builder_fees.md) for payouts.

---

# 📚 Read markets and history

Source: https://docs.storm.tg/developers/api_v2

# 📚 Read markets and history

Read markets, prices, positions and trading history through the [API reference](/developers/overview). These reads need no API key and use `https://api.storm.tg/api`.

## Markets and history

Start with [List markets](/developers/operations/listmarkets) and [Get protocol configuration](/developers/operations/getprotocolconfiguration). A market is identified by its vAMM address. An `asset` parameter accepts the asset name or configured index. Cache these results instead of fetching them for every request.

`trader` is the user's wallet address for V2 or Smart Account address for V3. Choose the matching address when requesting positions, orders or portfolio history.

## Paginated history

[Order history](/developers/operations/getorderhistory), [position history](/developers/operations/getassetpositionhistory) and [portfolio history](/developers/operations/getportfoliohistory) use the same pagination:

- `data`: records on the current page.
- `totalCount`: all matching records.
- `limit`: records per page; `offset`: records to skip.

For example, use `limit=20&offset=0` for the first page and `limit=20&offset=20` for the next. Keep monetary values returned as strings in that form until you need exact arithmetic.

## Trading

To place or cancel orders, use the [SDK](sdk.md). See [Submit and track orders](api_v3.md) to confirm execution.

---

# 🧩 Builder Fees

Source: https://docs.storm.tg/developers/builder_fees

# 🧩 Builder Fees

Earn a share of the fees from positions opened through your integration. Storm pays it automatically to your **Smart Account**, in the position's collateral currency. The trader pays no extra fee.

Agree your share and confirm that builder fees are enabled during [onboarding](https://app.storm.tg/builders). Positions opened before activation are not assigned to you automatically.

## Connect your builder

1. [Apply as a builder](https://app.storm.tg/builders) and register your TON address.
2. Add that address as `builder` when preparing an order with the [JavaScript SDK](sdk_js.md):

```typescript
const prepared = await prepareOrder({
  smartAccount, market, signer, order, queryId, createdAt,
  builder: 'YOUR_REGISTERED_TON_ADDRESS',
});
```

Use the account, signer, order and reserved query ID from the SDK guide. Save the prepared request and hashes, then send `prepared.request` with `api.placeOrder`.

Your builder must be registered and active when the position opens. Otherwise, the order proceeds without builder attribution.

## When you earn a fee

| Action | Your share comes from |
| --- | --- |
| Market or **LIMIT** open / increase | The Trading Fee when the order fills |
| **SL** or **TP** | The closing fee when the trigger executes |
| **LIQUIDATION** | The liquidation penalty; no payout if unpaid debt remains |
| **FORCE-CLOSE** | The closing fee |

SL/TP can be attached to the opening order or added later. Force-close includes profit-cap, manual, maximum-leverage and minimum-margin closures. Limit orders cannot reduce a position.

Placing or cancelling an order earns nothing. Execution Fee and funding payments are excluded. Your share is based on the fee collected, not position size or trader profit.

## Which builder gets paid?

**The builder that opened the position keeps its fees until the position is fully closed.**

- Open through A, close through B: A gets paid.
- SL, TP, liquidation and force-close pay A automatically.
- A partial close pays on the closed portion; the remaining position stays with A.
- After a full close, a new position can belong to another builder.

A position opened without a builder cannot gain one later. Changing your rate or disabling your builder affects new positions; existing positions keep their saved share.

## Check payment

Payment arrives after successful on-chain execution. Check the credit to your Smart Account; no claim transaction is needed. An accepted order does not confirm payment, and indexed data may appear later.

---

# Storm API reference

Source: https://docs.storm.tg/developers/overview

Public endpoints for trading integrations and Builders. Browse by task: markets, signed orders, smart accounts, execution and history. See the [integration guide](/developers/api) for networks, signing and units.


## Operations

- [POST /v3-node-0/order/place — Place an order](/developers/operations/placeorder)

- [POST /v3-node-0/order/cancel — Cancel an order](/developers/operations/cancelorder)

- [GET /v3-node-0/intent/{hash} — Get an intent](/developers/operations/getintent)

- [GET /v3-node-0/smartaccount/{address}/state — Get account state](/developers/operations/getaccountstate)

- [GET /v3-node-0/smartaccount/{address}/queryID — Get the next query ID](/developers/operations/getqueryid)

- [GET /v3-node-0/smartaccount/{address}/balance — Get a token balance](/developers/operations/getbalance)

- [GET /v3-node-0/smartaccount/{address}/balances — Get all token balances](/developers/operations/getbalances)

- [GET /v3-node-0/smartaccount/{address}/lockedBalance — Get a locked token balance](/developers/operations/getlockedbalance)

- [GET /v3-node-0/smartaccount/{address}/lockedBalances — Get all locked balances](/developers/operations/getlockedbalances)

- [GET /v3-node-0/smartaccount/{address}/positions — Get current account positions](/developers/operations/getaccountpositions)

- [GET /v3-node-0/smartaccount/{address}/referral — Get account referral data](/developers/operations/getreferraldata)

- [GET /v3-node-0/smartaccount/{account}/events — List account events](/developers/operations/geteventsbyaccount)

- [POST /v3-node-0/smartaccount/self-deposit — Deposit account tokens into a vault](/developers/operations/selfdeposit)

- [GET /v3-node-0/smartaccount/{address}/bundles — List account bundles](/developers/operations/getaccountbundles)

- [GET /v3-node-0/smartaccount/{address}/bundles/{query_id} — Get an account bundle](/developers/operations/getaccountbundlebyqueryid)

- [GET /v3-node-0/status — Check trading availability](/developers/operations/getstatus)

- [GET /v3-node-0/volume/{address} — Get volume for trading fee tiers](/developers/operations/gettradervolume)

- [GET /api/markets — List markets](/developers/operations/listmarkets)

- [GET /api/markets/{address} — Get a market](/developers/operations/getmarket)

- [GET /api/config — Get protocol configuration](/developers/operations/getprotocolconfiguration)

- [GET /api/positions/{trader}/active — List active positions](/developers/operations/listactivepositions)

- [GET /api/positions/{trader}/{asset}/active — List active positions for an asset](/developers/operations/listactiveassetpositions)

- [GET /api/positions/{trader}/{asset}/history — Get position history for an asset](/developers/operations/getassetpositionhistory)

- [GET /api/positions/{trader}/portfolio/history — Get portfolio position history](/developers/operations/getportfoliohistory)

- [GET /api/positions/{id} — Get a position](/developers/operations/getposition)

- [GET /api/positions/{id}/history — Get position events](/developers/operations/getpositionevents)

- [GET /api/orders/{trader}/active — List active orders](/developers/operations/listactiveorders)

- [GET /api/orders/{trader}/{asset}/active — List active orders for an asset](/developers/operations/listactiveassetorders)

- [GET /api/orders/{trader}/{asset}/history — Get order history for an asset](/developers/operations/getorderhistory)

- [GET /api/vaults — List vaults](/developers/operations/listvaults)

- [GET /api/vaults/{vault} — Get a vault](/developers/operations/getvault)

- [GET /api/vaults/{vault}/rates/{timeframe} — Get vault rate history](/developers/operations/getvaultrates)

- [GET /api/liquidity-providers/{vault}/{trader} — Get a liquidity position](/developers/operations/getliquidityposition)

- [GET /api/trader-stats/{trader}/pnl-history — Get trader PnL history](/developers/operations/gettraderpnlhistory)

---

# List markets

Source: https://docs.storm.tg/developers/operations/listmarkets

# List markets

`GET /api/markets`

Returns full markets info with current state

## Authorization



## Parameters



## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/markets' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/markets", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/markets",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.MarketResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.MarketResponse

[]Type: object

[]Required fields: address, amm, change, incentive, settings, config

[]Required field types: address (string; required), amm (object; required), change (object; required), incentive (object; required), settings (object; required), config (object; required)

- []address (string; required)

[]address example: string

[]address.Type: string

[]address.Market address

- []amm (object; required)

[]amm example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "txId": "string",
  "call": "OffchainOracleTick",
  "height": "0",
  "blockTimestamp": "2026-01-01T00:00:00Z",
  "seqno": "0",
  "indexPrice": "0",
  "baseOraclePrice": "0",
  "quoteOraclePrice": "0",
  "quoteAssetReserve": "0",
  "baseAssetReserve": "0",
  "baseAssetReserveWeight": "0",
  "quoteAssetReserveWeight": "0",
  "totalPositionSize": "0",
  "totalLongPositionSize": "0",
  "totalShortPositionSize": "0",
  "openInterestNotional": "0",
  "openInterestShort": "0",
  "openInterestLong": "0",
  "latestLongPremiumFraction": "0",
  "latestShortPremiumFraction": "0",
  "nextFundingBlock": "2026-01-01T00:00:00Z",
  "longFundingRate": "0",
  "shortFundingRate": "0",
  "vpiMarketDepthLong": "0",
  "vpiMarketDepthShort": "0",
  "vpiSpread": "0",
  "vpiCoefficient": "0"
}

[]amm.Type: object

[]amm.Required fields: address, txId, call, height, blockTimestamp, seqno, indexPrice, baseOraclePrice, quoteOraclePrice, quoteAssetReserve, baseAssetReserve, baseAssetReserveWeight, quoteAssetReserveWeight, totalPositionSize, totalLongPositionSize, totalShortPositionSize, openInterestNotional, openInterestShort, openInterestLong, latestLongPremiumFraction, latestShortPremiumFraction, nextFundingBlock, longFundingRate, shortFundingRate, vpiMarketDepthLong, vpiMarketDepthShort, vpiSpread, vpiCoefficient

[]amm.Required field types: address (string; required), txId (string · nullable; required), call (string; required), height (string · int64; required), blockTimestamp (string · date-time; required), seqno (string · int64; required), indexPrice (string · int64; required), baseOraclePrice (string · int64; required), quoteOraclePrice (string · int64; required), quoteAssetReserve (string · int64; required), baseAssetReserve (string · int64; required), baseAssetReserveWeight (string · int64; required), quoteAssetReserveWeight (string · int64; required), totalPositionSize (string · int64; required), totalLongPositionSize (string · int64; required), totalShortPositionSize (string · int64; required), openInterestNotional (string · int64; required), openInterestShort (string · int64; required), openInterestLong (string · int64; required), latestLongPremiumFraction (string · int64; required), latestShortPremiumFraction (string · int64; required), nextFundingBlock (string · date-time; required), longFundingRate (string · int64; required), shortFundingRate (string · int64; required), vpiMarketDepthLong (string · int64; required), vpiMarketDepthShort (string · int64; required), vpiSpread (string · int64; required), vpiCoefficient (string · int64; required)

[]amm.Current amm state

- []amm.address (string; required)

[]amm.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]amm.address.Type: string

- []amm.txId (string · nullable; required)

[]amm.txId example: string

[]amm.txId.Type: string · nullable

- []amm.call (string; required)

[]amm.call example: OffchainOracleTick

[]amm.call.Type: string

- []amm.height (string · int64; required)

[]amm.height example: 0

[]amm.height.Type: string · int64

[]amm.height.format: int64

[]amm.height.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.blockTimestamp (string · date-time; required)

[]amm.blockTimestamp example: 2026-01-01T00:00:00Z

[]amm.blockTimestamp.Type: string · date-time

[]amm.blockTimestamp.format: date-time

- []amm.seqno (string · int64; required)

[]amm.seqno example: 0

[]amm.seqno.Type: string · int64

[]amm.seqno.format: int64

[]amm.seqno.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.indexPrice (string · int64; required)

[]amm.indexPrice example: 0

[]amm.indexPrice.Type: string · int64

[]amm.indexPrice.format: int64

[]amm.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.baseOraclePrice (string · int64; required)

[]amm.baseOraclePrice example: 0

[]amm.baseOraclePrice.Type: string · int64

[]amm.baseOraclePrice.format: int64

[]amm.baseOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.quoteOraclePrice (string · int64; required)

[]amm.quoteOraclePrice example: 0

[]amm.quoteOraclePrice.Type: string · int64

[]amm.quoteOraclePrice.format: int64

[]amm.quoteOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.quoteAssetReserve (string · int64; required)

[]amm.quoteAssetReserve example: 0

[]amm.quoteAssetReserve.Type: string · int64

[]amm.quoteAssetReserve.format: int64

[]amm.quoteAssetReserve.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.baseAssetReserve (string · int64; required)

[]amm.baseAssetReserve example: 0

[]amm.baseAssetReserve.Type: string · int64

[]amm.baseAssetReserve.format: int64

[]amm.baseAssetReserve.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.baseAssetReserveWeight (string · int64; required)

[]amm.baseAssetReserveWeight example: 0

[]amm.baseAssetReserveWeight.Type: string · int64

[]amm.baseAssetReserveWeight.format: int64

[]amm.baseAssetReserveWeight.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.quoteAssetReserveWeight (string · int64; required)

[]amm.quoteAssetReserveWeight example: 0

[]amm.quoteAssetReserveWeight.Type: string · int64

[]amm.quoteAssetReserveWeight.format: int64

[]amm.quoteAssetReserveWeight.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.totalPositionSize (string · int64; required)

[]amm.totalPositionSize example: 0

[]amm.totalPositionSize.Type: string · int64

[]amm.totalPositionSize.format: int64

[]amm.totalPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.totalLongPositionSize (string · int64; required)

[]amm.totalLongPositionSize example: 0

[]amm.totalLongPositionSize.Type: string · int64

[]amm.totalLongPositionSize.format: int64

[]amm.totalLongPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.totalShortPositionSize (string · int64; required)

[]amm.totalShortPositionSize example: 0

[]amm.totalShortPositionSize.Type: string · int64

[]amm.totalShortPositionSize.format: int64

[]amm.totalShortPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.openInterestNotional (string · int64; required)

[]amm.openInterestNotional example: 0

[]amm.openInterestNotional.Type: string · int64

[]amm.openInterestNotional.format: int64

[]amm.openInterestNotional.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.openInterestShort (string · int64; required)

[]amm.openInterestShort example: 0

[]amm.openInterestShort.Type: string · int64

[]amm.openInterestShort.format: int64

[]amm.openInterestShort.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.openInterestLong (string · int64; required)

[]amm.openInterestLong example: 0

[]amm.openInterestLong.Type: string · int64

[]amm.openInterestLong.format: int64

[]amm.openInterestLong.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.latestLongPremiumFraction (string · int64; required)

[]amm.latestLongPremiumFraction example: 0

[]amm.latestLongPremiumFraction.Type: string · int64

[]amm.latestLongPremiumFraction.format: int64

[]amm.latestLongPremiumFraction.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.latestShortPremiumFraction (string · int64; required)

[]amm.latestShortPremiumFraction example: 0

[]amm.latestShortPremiumFraction.Type: string · int64

[]amm.latestShortPremiumFraction.format: int64

[]amm.latestShortPremiumFraction.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.nextFundingBlock (string · date-time; required)

[]amm.nextFundingBlock example: 2026-01-01T00:00:00Z

[]amm.nextFundingBlock.Type: string · date-time

[]amm.nextFundingBlock.format: date-time

- []amm.longFundingRate (string · int64; required)

[]amm.longFundingRate example: 0

[]amm.longFundingRate.Type: string · int64

[]amm.longFundingRate.format: int64

[]amm.longFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.shortFundingRate (string · int64; required)

[]amm.shortFundingRate example: 0

[]amm.shortFundingRate.Type: string · int64

[]amm.shortFundingRate.format: int64

[]amm.shortFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.vpiMarketDepthLong (string · int64; required)

[]amm.vpiMarketDepthLong example: 0

[]amm.vpiMarketDepthLong.Type: string · int64

[]amm.vpiMarketDepthLong.format: int64

[]amm.vpiMarketDepthLong.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.vpiMarketDepthShort (string · int64; required)

[]amm.vpiMarketDepthShort example: 0

[]amm.vpiMarketDepthShort.Type: string · int64

[]amm.vpiMarketDepthShort.format: int64

[]amm.vpiMarketDepthShort.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.vpiSpread (string · int64; required)

[]amm.vpiSpread example: 0

[]amm.vpiSpread.Type: string · int64

[]amm.vpiSpread.format: int64

[]amm.vpiSpread.pattern: ^(0|-?[1-9][0-9]*)$

- []amm.vpiCoefficient (string · int64; required)

[]amm.vpiCoefficient example: 0

[]amm.vpiCoefficient.Type: string · int64

[]amm.vpiCoefficient.format: int64

[]amm.vpiCoefficient.pattern: ^(0|-?[1-9][0-9]*)$

- []change (object; required)

[]change example: {
  "quoteVolume": "0",
  "baseVolume": "0",
  "initialPrice": 0
}

[]change.Type: object

[]change.Required fields: quoteVolume, baseVolume, initialPrice

[]change.Required field types: quoteVolume (string · int64; required), baseVolume (string · int64; required), initialPrice (number; required)

[]change.Market volumes daily changes

- []change.quoteVolume (string · int64; required)

[]change.quoteVolume example: 0

[]change.quoteVolume.Type: string · int64

[]change.quoteVolume.format: int64

[]change.quoteVolume.pattern: ^(0|-?[1-9][0-9]*)$

- []change.baseVolume (string · int64; required)

[]change.baseVolume example: 0

[]change.baseVolume.Type: string · int64

[]change.baseVolume.format: int64

[]change.baseVolume.pattern: ^(0|-?[1-9][0-9]*)$

- []change.initialPrice (number; required)

[]change.initialPrice example: 0

[]change.initialPrice.Type: number

- []incentive (object; required)

[]incentive example: {
  "timestamp": "2026-01-01T00:00:00Z",
  "twapIndexPrice": "0",
  "twapSpotPrice": "0",
  "longFundingRate": "0",
  "shortFundingRate": "0"
}

[]incentive.Type: object

[]incentive.Required fields: timestamp, twapIndexPrice, twapSpotPrice, longFundingRate, shortFundingRate

[]incentive.Required field types: timestamp (string · date-time · nullable; required), twapIndexPrice (string · int64; required), twapSpotPrice (string · int64; required), longFundingRate (string · int64; required), shortFundingRate (string · int64; required)

[]incentive.Funding info

- []incentive.timestamp (string · date-time · nullable; required)

[]incentive.timestamp example: 2026-01-01T00:00:00Z

[]incentive.timestamp.Type: string · date-time · nullable

[]incentive.timestamp.format: date-time

- []incentive.twapIndexPrice (string · int64; required)

[]incentive.twapIndexPrice example: 0

[]incentive.twapIndexPrice.Type: string · int64

[]incentive.twapIndexPrice.format: int64

[]incentive.twapIndexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []incentive.twapSpotPrice (string · int64; required)

[]incentive.twapSpotPrice example: 0

[]incentive.twapSpotPrice.Type: string · int64

[]incentive.twapSpotPrice.format: int64

[]incentive.twapSpotPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []incentive.longFundingRate (string · int64; required)

[]incentive.longFundingRate example: 0

[]incentive.longFundingRate.Type: string · int64

[]incentive.longFundingRate.format: int64

[]incentive.longFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- []incentive.shortFundingRate (string · int64; required)

[]incentive.shortFundingRate example: 0

[]incentive.shortFundingRate.Type: string · int64

[]incentive.shortFundingRate.format: int64

[]incentive.shortFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- []settings (object; required)

[]settings example: {
  "fee": "0",
  "executionFee": "0",
  "rolloverFee": "0",
  "fundingPeriod": 0,
  "ammType": "string",
  "minInitMarginRatio": "0",
  "initMarginRatio": "0",
  "maintenanceMarginRatio": "0",
  "liquidationFeeRatio": "0",
  "partialLiquidationRatio": "0",
  "spreadLimit": "0",
  "maxPriceImpact": "0",
  "maxPriceSpread": "0",
  "maxOpenNotional": "0",
  "feeToStakersPercent": "0",
  "maxOracleDelay": 0,
  "fundingMode": 0,
  "oracleMode": 0,
  "positionMode": 0,
  "fundingSettings": {
    "lowFundingFnA": 0,
    "lowFundingFnB": 0,
    "highFundingFnA": 0,
    "highFundingFnB": 0,
    "inflectionPoint": 0
  },
  "isCloseOnly": true,
  "isPaused": true,
  "status": "active"
}

[]settings.Type: object

[]settings.Required fields: fee, executionFee, rolloverFee, fundingPeriod, ammType, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, liquidationFeeRatio, partialLiquidationRatio, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotional, feeToStakersPercent, maxOracleDelay, fundingMode, oracleMode, positionMode, fundingSettings, isCloseOnly, isPaused, status

[]settings.Required field types: fee (string · int64; required), executionFee (string · int64; required), rolloverFee (string · int64; required), fundingPeriod (number; required), ammType (string; required), minInitMarginRatio (string · int64; required), initMarginRatio (string · int64; required), maintenanceMarginRatio (string · int64; required), liquidationFeeRatio (string · int64; required), partialLiquidationRatio (string · int64; required), spreadLimit (string · int64; required), maxPriceImpact (string · int64; required), maxPriceSpread (string · int64; required), maxOpenNotional (string · int64; required), feeToStakersPercent (string · int64; required), maxOracleDelay (number; required), fundingMode (number; required), oracleMode (number; required), positionMode (number; required), fundingSettings (object · nullable; required), isCloseOnly (boolean; required), isPaused (boolean; required), status (string · enum; required)

[]settings.Amm settings

- []settings.fee (string · int64; required)

[]settings.fee example: 0

[]settings.fee.Type: string · int64

[]settings.fee.format: int64

[]settings.fee.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.executionFee (string · int64; required)

[]settings.executionFee example: 0

[]settings.executionFee.Type: string · int64

[]settings.executionFee.format: int64

[]settings.executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.rolloverFee (string · int64; required)

[]settings.rolloverFee example: 0

[]settings.rolloverFee.Type: string · int64

[]settings.rolloverFee.format: int64

[]settings.rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.fundingPeriod (number; required)

[]settings.fundingPeriod example: 0

[]settings.fundingPeriod.Type: number

- []settings.ammType (string; required)

[]settings.ammType example: string

[]settings.ammType.Type: string

- []settings.minInitMarginRatio (string · int64; required)

[]settings.minInitMarginRatio example: 0

[]settings.minInitMarginRatio.Type: string · int64

[]settings.minInitMarginRatio.format: int64

[]settings.minInitMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.initMarginRatio (string · int64; required)

[]settings.initMarginRatio example: 0

[]settings.initMarginRatio.Type: string · int64

[]settings.initMarginRatio.format: int64

[]settings.initMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.maintenanceMarginRatio (string · int64; required)

[]settings.maintenanceMarginRatio example: 0

[]settings.maintenanceMarginRatio.Type: string · int64

[]settings.maintenanceMarginRatio.format: int64

[]settings.maintenanceMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.liquidationFeeRatio (string · int64; required)

[]settings.liquidationFeeRatio example: 0

[]settings.liquidationFeeRatio.Type: string · int64

[]settings.liquidationFeeRatio.format: int64

[]settings.liquidationFeeRatio.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.partialLiquidationRatio (string · int64; required)

[]settings.partialLiquidationRatio example: 0

[]settings.partialLiquidationRatio.Type: string · int64

[]settings.partialLiquidationRatio.format: int64

[]settings.partialLiquidationRatio.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.spreadLimit (string · int64; required)

[]settings.spreadLimit example: 0

[]settings.spreadLimit.Type: string · int64

[]settings.spreadLimit.format: int64

[]settings.spreadLimit.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.maxPriceImpact (string · int64; required)

[]settings.maxPriceImpact example: 0

[]settings.maxPriceImpact.Type: string · int64

[]settings.maxPriceImpact.format: int64

[]settings.maxPriceImpact.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.maxPriceSpread (string · int64; required)

[]settings.maxPriceSpread example: 0

[]settings.maxPriceSpread.Type: string · int64

[]settings.maxPriceSpread.format: int64

[]settings.maxPriceSpread.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.maxOpenNotional (string · int64; required)

[]settings.maxOpenNotional example: 0

[]settings.maxOpenNotional.Type: string · int64

[]settings.maxOpenNotional.format: int64

[]settings.maxOpenNotional.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.feeToStakersPercent (string · int64; required)

[]settings.feeToStakersPercent example: 0

[]settings.feeToStakersPercent.Type: string · int64

[]settings.feeToStakersPercent.format: int64

[]settings.feeToStakersPercent.pattern: ^(0|-?[1-9][0-9]*)$

- []settings.maxOracleDelay (number; required)

[]settings.maxOracleDelay example: 0

[]settings.maxOracleDelay.Type: number

- []settings.fundingMode (number; required)

[]settings.fundingMode example: 0

[]settings.fundingMode.Type: number

- []settings.oracleMode (number; required)

[]settings.oracleMode example: 0

[]settings.oracleMode.Type: number

- []settings.positionMode (number; required)

[]settings.positionMode example: 0

[]settings.positionMode.Type: number

- []settings.fundingSettings (object · nullable; required)

[]settings.fundingSettings example: {
  "lowFundingFnA": 0,
  "lowFundingFnB": 0,
  "highFundingFnA": 0,
  "highFundingFnB": 0,
  "inflectionPoint": 0
}

[]settings.fundingSettings.Type: object · nullable

[]settings.fundingSettings.Required fields: none

- []settings.fundingSettings.lowFundingFnA (number; optional)

[]settings.fundingSettings.lowFundingFnA example: 0

[]settings.fundingSettings.lowFundingFnA.Type: number

- []settings.fundingSettings.lowFundingFnB (number; optional)

[]settings.fundingSettings.lowFundingFnB example: 0

[]settings.fundingSettings.lowFundingFnB.Type: number

- []settings.fundingSettings.highFundingFnA (number; optional)

[]settings.fundingSettings.highFundingFnA example: 0

[]settings.fundingSettings.highFundingFnA.Type: number

- []settings.fundingSettings.highFundingFnB (number; optional)

[]settings.fundingSettings.highFundingFnB example: 0

[]settings.fundingSettings.highFundingFnB.Type: number

- []settings.fundingSettings.inflectionPoint (number; optional)

[]settings.fundingSettings.inflectionPoint example: 0

[]settings.fundingSettings.inflectionPoint.Type: number

- []settings.isCloseOnly (boolean; required)

[]settings.isCloseOnly example: true

[]settings.isCloseOnly.Type: boolean

- []settings.isPaused (boolean; required)

[]settings.isPaused example: true

[]settings.isPaused.Type: boolean

- []settings.status (string · enum; required)

[]settings.status example: active

[]settings.status.Type: string · enum

[]settings.status.Allowed values: ["active","closed","paused","closeOnly"]

- []config (object; required)

[]config example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "imageLink": "string",
  "quoteAsset": "string",
  "baseAsset": "string",
  "name": "string",
  "ticker": "string",
  "vaultAddress": "string",
  "type": "string",
  "tags": [
    "string"
  ],
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "isDayTrading": true,
  "dayTradingLeverageLimit": 0
}

[]config.Type: object

[]config.Required fields: address, imageLink, quoteAsset, baseAsset, name, ticker, vaultAddress, tags, closestPauseAt, closestUnpauseAt, isDayTrading, dayTradingLeverageLimit

[]config.Required field types: address (string; required), imageLink (string; required), quoteAsset (string; required), baseAsset (string; required), name (string; required), ticker (string; required), vaultAddress (string; required), tags (string[]; required), closestPauseAt (number · nullable; required), closestUnpauseAt (number · nullable; required), isDayTrading (boolean; required), dayTradingLeverageLimit (number · nullable; required)

[]config.Market config

- []config.address (string; required)

[]config.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]config.address.Type: string

- []config.imageLink (string; required)

[]config.imageLink example: string

[]config.imageLink.Type: string

- []config.quoteAsset (string; required)

[]config.quoteAsset example: string

[]config.quoteAsset.Type: string

- []config.baseAsset (string; required)

[]config.baseAsset example: string

[]config.baseAsset.Type: string

- []config.name (string; required)

[]config.name example: string

[]config.name.Type: string

- []config.ticker (string; required)

[]config.ticker example: string

[]config.ticker.Type: string

- []config.vaultAddress (string; required)

[]config.vaultAddress example: string

[]config.vaultAddress.Type: string

- []config.type (string; optional)

[]config.type example: string

[]config.type.Type: string

- []config.tags (string[]; required)

[]config.tags example: [
  "string"
]

[]config.tags.Type: string[]

[]config.tags.[]Type: string

- []config.closestPauseAt (number · nullable; required)

[]config.closestPauseAt example: 0

[]config.closestPauseAt.Type: number · nullable

- []config.closestUnpauseAt (number · nullable; required)

[]config.closestUnpauseAt example: 0

[]config.closestUnpauseAt.Type: number · nullable

- []config.isDayTrading (boolean; required)

[]config.isDayTrading example: true

[]config.isDayTrading.Type: boolean

- []config.dayTradingLeverageLimit (number · nullable; required)

[]config.dayTradingLeverageLimit example: 0

[]config.dayTradingLeverageLimit.Type: number · nullable

- []prelaunch (object; optional)

[]prelaunch example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "assetName": "string",
  "startTime": "2026-01-01T00:00:00Z",
  "endTime": "2026-01-01T00:00:00Z",
  "paused": true,
  "closeOnly": true,
  "createdAt": "2026-01-01T00:00:00Z",
  "settings": {
    "tradingDelayForNonWhitelistUsers": 0,
    "preMarketStatus": "off",
    "showAlert": true,
    "alertType": "warning",
    "alertTitle": "string",
    "alertSubtitle": "string"
  }
}

[]prelaunch.Type: object

[]prelaunch.Required fields: address, assetName, startTime, endTime, paused, closeOnly, createdAt, settings

[]prelaunch.Required field types: address (string; required), assetName (string; required), startTime (string · date-time · nullable; required), endTime (string · date-time · nullable; required), paused (boolean; required), closeOnly (boolean; required), createdAt (string · date-time; required), settings (object · nullable; required)

[]prelaunch.Prelaunch

- []prelaunch.address (string; required)

[]prelaunch.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]prelaunch.address.Type: string

- []prelaunch.assetName (string; required)

[]prelaunch.assetName example: string

[]prelaunch.assetName.Type: string

- []prelaunch.startTime (string · date-time · nullable; required)

[]prelaunch.startTime example: 2026-01-01T00:00:00Z

[]prelaunch.startTime.Type: string · date-time · nullable

[]prelaunch.startTime.format: date-time

- []prelaunch.endTime (string · date-time · nullable; required)

[]prelaunch.endTime example: 2026-01-01T00:00:00Z

[]prelaunch.endTime.Type: string · date-time · nullable

[]prelaunch.endTime.format: date-time

- []prelaunch.paused (boolean; required)

[]prelaunch.paused example: true

[]prelaunch.paused.Type: boolean

- []prelaunch.closeOnly (boolean; required)

[]prelaunch.closeOnly example: true

[]prelaunch.closeOnly.Type: boolean

- []prelaunch.createdAt (string · date-time; required)

[]prelaunch.createdAt example: 2026-01-01T00:00:00Z

[]prelaunch.createdAt.Type: string · date-time

[]prelaunch.createdAt.format: date-time

- []prelaunch.settings (object · nullable; required)

[]prelaunch.settings example: {
  "tradingDelayForNonWhitelistUsers": 0,
  "preMarketStatus": "off",
  "showAlert": true,
  "alertType": "warning",
  "alertTitle": "string",
  "alertSubtitle": "string"
}

[]prelaunch.settings.Type: object · nullable

[]prelaunch.settings.Required fields: none

- []prelaunch.settings.tradingDelayForNonWhitelistUsers (number; optional)

[]prelaunch.settings.tradingDelayForNonWhitelistUsers example: 0

[]prelaunch.settings.tradingDelayForNonWhitelistUsers.Type: number

- []prelaunch.settings.preMarketStatus (string · enum; optional)

[]prelaunch.settings.preMarketStatus example: off

[]prelaunch.settings.preMarketStatus.Type: string · enum

[]prelaunch.settings.preMarketStatus.Allowed values: ["off","whitelistOnly","allowedForAll"]

- []prelaunch.settings.showAlert (boolean; optional)

[]prelaunch.settings.showAlert example: true

[]prelaunch.settings.showAlert.Type: boolean

- []prelaunch.settings.alertType (string · enum; optional)

[]prelaunch.settings.alertType example: warning

[]prelaunch.settings.alertType.Type: string · enum

[]prelaunch.settings.alertType.Allowed values: ["warning","success","info","error"]

- []prelaunch.settings.alertTitle (string; optional)

[]prelaunch.settings.alertTitle example: string

[]prelaunch.settings.alertTitle.Type: string

- []prelaunch.settings.alertSubtitle (string; optional)

[]prelaunch.settings.alertSubtitle example: string

[]prelaunch.settings.alertSubtitle.Type: string

Example



```json
[
  {
    "address": "string",
    "amm": {
      "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "txId": "string",
      "call": "OffchainOracleTick",
      "height": "0",
      "blockTimestamp": "2026-01-01T00:00:00Z",
      "seqno": "0",
      "indexPrice": "0",
      "baseOraclePrice": "0",
      "quoteOraclePrice": "0",
      "quoteAssetReserve": "0",
      "baseAssetReserve": "0",
      "baseAssetReserveWeight": "0",
      "quoteAssetReserveWeight": "0",
      "totalPositionSize": "0",
      "totalLongPositionSize": "0",
      "totalShortPositionSize": "0",
      "openInterestNotional": "0",
      "openInterestShort": "0",
      "openInterestLong": "0",
      "latestLongPremiumFraction": "0",
      "latestShortPremiumFraction": "0",
      "nextFundingBlock": "2026-01-01T00:00:00Z",
      "longFundingRate": "0",
      "shortFundingRate": "0",
      "vpiMarketDepthLong": "0",
      "vpiMarketDepthShort": "0",
      "vpiSpread": "0",
      "vpiCoefficient": "0"
    },
    "change": {
      "quoteVolume": "0",
      "baseVolume": "0",
      "initialPrice": 0
    },
    "incentive": {
      "timestamp": "2026-01-01T00:00:00Z",
      "twapIndexPrice": "0",
      "twapSpotPrice": "0",
      "longFundingRate": "0",
      "shortFundingRate": "0"
    },
    "settings": {
      "fee": "0",
      "executionFee": "0",
      "rolloverFee": "0",
      "fundingPeriod": 0,
      "ammType": "string",
      "minInitMarginRatio": "0",
      "initMarginRatio": "0",
      "maintenanceMarginRatio": "0",
      "liquidationFeeRatio": "0",
      "partialLiquidationRatio": "0",
      "spreadLimit": "0",
      "maxPriceImpact": "0",
      "maxPriceSpread": "0",
      "maxOpenNotional": "0",
      "feeToStakersPercent": "0",
      "maxOracleDelay": 0,
      "fundingMode": 0,
      "oracleMode": 0,
      "positionMode": 0,
      "fundingSettings": {
        "lowFundingFnA": 0,
        "lowFundingFnB": 0,
        "highFundingFnA": 0,
        "highFundingFnB": 0,
        "inflectionPoint": 0
      },
      "isCloseOnly": true,
      "isPaused": true,
      "status": "active"
    },
    "config": {
      "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "imageLink": "string",
      "quoteAsset": "string",
      "baseAsset": "string",
      "name": "string",
      "ticker": "string",
      "vaultAddress": "string",
      "type": "string",
      "tags": [
        "string"
      ],
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "isDayTrading": true,
      "dayTradingLeverageLimit": 0
    },
    "prelaunch": {
      "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "assetName": "string",
      "startTime": "2026-01-01T00:00:00Z",
      "endTime": "2026-01-01T00:00:00Z",
      "paused": true,
      "closeOnly": true,
      "createdAt": "2026-01-01T00:00:00Z",
      "settings": {
        "tradingDelayForNonWhitelistUsers": 0,
        "preMarketStatus": "off",
        "showAlert": true,
        "alertType": "warning",
        "alertTitle": "string",
        "alertSubtitle": "string"
      }
    }
  }
]
```

---

# Get a market

Source: https://docs.storm.tg/developers/operations/getmarket

# Get a market

`GET /api/markets/{address}`

Returns full market info with current state

## Authorization



## Parameters

- path: address (string; required). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/markets/{address}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/markets/{address}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/markets/{address}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.MarketResponse

**200** application/json — Response

Schema: Data.MarketResponse

Type: object

Required fields: address, amm, change, incentive, settings, config

Required field types: address (string; required), amm (object; required), change (object; required), incentive (object; required), settings (object; required), config (object; required)

- address (string; required)

address example: string

address.Type: string

address.Market address

- amm (object; required)

amm example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "txId": "string",
  "call": "OffchainOracleTick",
  "height": "0",
  "blockTimestamp": "2026-01-01T00:00:00Z",
  "seqno": "0",
  "indexPrice": "0",
  "baseOraclePrice": "0",
  "quoteOraclePrice": "0",
  "quoteAssetReserve": "0",
  "baseAssetReserve": "0",
  "baseAssetReserveWeight": "0",
  "quoteAssetReserveWeight": "0",
  "totalPositionSize": "0",
  "totalLongPositionSize": "0",
  "totalShortPositionSize": "0",
  "openInterestNotional": "0",
  "openInterestShort": "0",
  "openInterestLong": "0",
  "latestLongPremiumFraction": "0",
  "latestShortPremiumFraction": "0",
  "nextFundingBlock": "2026-01-01T00:00:00Z",
  "longFundingRate": "0",
  "shortFundingRate": "0",
  "vpiMarketDepthLong": "0",
  "vpiMarketDepthShort": "0",
  "vpiSpread": "0",
  "vpiCoefficient": "0"
}

amm.Type: object

amm.Required fields: address, txId, call, height, blockTimestamp, seqno, indexPrice, baseOraclePrice, quoteOraclePrice, quoteAssetReserve, baseAssetReserve, baseAssetReserveWeight, quoteAssetReserveWeight, totalPositionSize, totalLongPositionSize, totalShortPositionSize, openInterestNotional, openInterestShort, openInterestLong, latestLongPremiumFraction, latestShortPremiumFraction, nextFundingBlock, longFundingRate, shortFundingRate, vpiMarketDepthLong, vpiMarketDepthShort, vpiSpread, vpiCoefficient

amm.Required field types: address (string; required), txId (string · nullable; required), call (string; required), height (string · int64; required), blockTimestamp (string · date-time; required), seqno (string · int64; required), indexPrice (string · int64; required), baseOraclePrice (string · int64; required), quoteOraclePrice (string · int64; required), quoteAssetReserve (string · int64; required), baseAssetReserve (string · int64; required), baseAssetReserveWeight (string · int64; required), quoteAssetReserveWeight (string · int64; required), totalPositionSize (string · int64; required), totalLongPositionSize (string · int64; required), totalShortPositionSize (string · int64; required), openInterestNotional (string · int64; required), openInterestShort (string · int64; required), openInterestLong (string · int64; required), latestLongPremiumFraction (string · int64; required), latestShortPremiumFraction (string · int64; required), nextFundingBlock (string · date-time; required), longFundingRate (string · int64; required), shortFundingRate (string · int64; required), vpiMarketDepthLong (string · int64; required), vpiMarketDepthShort (string · int64; required), vpiSpread (string · int64; required), vpiCoefficient (string · int64; required)

amm.Current amm state

- amm.address (string; required)

amm.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

amm.address.Type: string

- amm.txId (string · nullable; required)

amm.txId example: string

amm.txId.Type: string · nullable

- amm.call (string; required)

amm.call example: OffchainOracleTick

amm.call.Type: string

- amm.height (string · int64; required)

amm.height example: 0

amm.height.Type: string · int64

amm.height.format: int64

amm.height.pattern: ^(0|-?[1-9][0-9]*)$

- amm.blockTimestamp (string · date-time; required)

amm.blockTimestamp example: 2026-01-01T00:00:00Z

amm.blockTimestamp.Type: string · date-time

amm.blockTimestamp.format: date-time

- amm.seqno (string · int64; required)

amm.seqno example: 0

amm.seqno.Type: string · int64

amm.seqno.format: int64

amm.seqno.pattern: ^(0|-?[1-9][0-9]*)$

- amm.indexPrice (string · int64; required)

amm.indexPrice example: 0

amm.indexPrice.Type: string · int64

amm.indexPrice.format: int64

amm.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- amm.baseOraclePrice (string · int64; required)

amm.baseOraclePrice example: 0

amm.baseOraclePrice.Type: string · int64

amm.baseOraclePrice.format: int64

amm.baseOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- amm.quoteOraclePrice (string · int64; required)

amm.quoteOraclePrice example: 0

amm.quoteOraclePrice.Type: string · int64

amm.quoteOraclePrice.format: int64

amm.quoteOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- amm.quoteAssetReserve (string · int64; required)

amm.quoteAssetReserve example: 0

amm.quoteAssetReserve.Type: string · int64

amm.quoteAssetReserve.format: int64

amm.quoteAssetReserve.pattern: ^(0|-?[1-9][0-9]*)$

- amm.baseAssetReserve (string · int64; required)

amm.baseAssetReserve example: 0

amm.baseAssetReserve.Type: string · int64

amm.baseAssetReserve.format: int64

amm.baseAssetReserve.pattern: ^(0|-?[1-9][0-9]*)$

- amm.baseAssetReserveWeight (string · int64; required)

amm.baseAssetReserveWeight example: 0

amm.baseAssetReserveWeight.Type: string · int64

amm.baseAssetReserveWeight.format: int64

amm.baseAssetReserveWeight.pattern: ^(0|-?[1-9][0-9]*)$

- amm.quoteAssetReserveWeight (string · int64; required)

amm.quoteAssetReserveWeight example: 0

amm.quoteAssetReserveWeight.Type: string · int64

amm.quoteAssetReserveWeight.format: int64

amm.quoteAssetReserveWeight.pattern: ^(0|-?[1-9][0-9]*)$

- amm.totalPositionSize (string · int64; required)

amm.totalPositionSize example: 0

amm.totalPositionSize.Type: string · int64

amm.totalPositionSize.format: int64

amm.totalPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- amm.totalLongPositionSize (string · int64; required)

amm.totalLongPositionSize example: 0

amm.totalLongPositionSize.Type: string · int64

amm.totalLongPositionSize.format: int64

amm.totalLongPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- amm.totalShortPositionSize (string · int64; required)

amm.totalShortPositionSize example: 0

amm.totalShortPositionSize.Type: string · int64

amm.totalShortPositionSize.format: int64

amm.totalShortPositionSize.pattern: ^(0|-?[1-9][0-9]*)$

- amm.openInterestNotional (string · int64; required)

amm.openInterestNotional example: 0

amm.openInterestNotional.Type: string · int64

amm.openInterestNotional.format: int64

amm.openInterestNotional.pattern: ^(0|-?[1-9][0-9]*)$

- amm.openInterestShort (string · int64; required)

amm.openInterestShort example: 0

amm.openInterestShort.Type: string · int64

amm.openInterestShort.format: int64

amm.openInterestShort.pattern: ^(0|-?[1-9][0-9]*)$

- amm.openInterestLong (string · int64; required)

amm.openInterestLong example: 0

amm.openInterestLong.Type: string · int64

amm.openInterestLong.format: int64

amm.openInterestLong.pattern: ^(0|-?[1-9][0-9]*)$

- amm.latestLongPremiumFraction (string · int64; required)

amm.latestLongPremiumFraction example: 0

amm.latestLongPremiumFraction.Type: string · int64

amm.latestLongPremiumFraction.format: int64

amm.latestLongPremiumFraction.pattern: ^(0|-?[1-9][0-9]*)$

- amm.latestShortPremiumFraction (string · int64; required)

amm.latestShortPremiumFraction example: 0

amm.latestShortPremiumFraction.Type: string · int64

amm.latestShortPremiumFraction.format: int64

amm.latestShortPremiumFraction.pattern: ^(0|-?[1-9][0-9]*)$

- amm.nextFundingBlock (string · date-time; required)

amm.nextFundingBlock example: 2026-01-01T00:00:00Z

amm.nextFundingBlock.Type: string · date-time

amm.nextFundingBlock.format: date-time

- amm.longFundingRate (string · int64; required)

amm.longFundingRate example: 0

amm.longFundingRate.Type: string · int64

amm.longFundingRate.format: int64

amm.longFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- amm.shortFundingRate (string · int64; required)

amm.shortFundingRate example: 0

amm.shortFundingRate.Type: string · int64

amm.shortFundingRate.format: int64

amm.shortFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- amm.vpiMarketDepthLong (string · int64; required)

amm.vpiMarketDepthLong example: 0

amm.vpiMarketDepthLong.Type: string · int64

amm.vpiMarketDepthLong.format: int64

amm.vpiMarketDepthLong.pattern: ^(0|-?[1-9][0-9]*)$

- amm.vpiMarketDepthShort (string · int64; required)

amm.vpiMarketDepthShort example: 0

amm.vpiMarketDepthShort.Type: string · int64

amm.vpiMarketDepthShort.format: int64

amm.vpiMarketDepthShort.pattern: ^(0|-?[1-9][0-9]*)$

- amm.vpiSpread (string · int64; required)

amm.vpiSpread example: 0

amm.vpiSpread.Type: string · int64

amm.vpiSpread.format: int64

amm.vpiSpread.pattern: ^(0|-?[1-9][0-9]*)$

- amm.vpiCoefficient (string · int64; required)

amm.vpiCoefficient example: 0

amm.vpiCoefficient.Type: string · int64

amm.vpiCoefficient.format: int64

amm.vpiCoefficient.pattern: ^(0|-?[1-9][0-9]*)$

- change (object; required)

change example: {
  "quoteVolume": "0",
  "baseVolume": "0",
  "initialPrice": 0
}

change.Type: object

change.Required fields: quoteVolume, baseVolume, initialPrice

change.Required field types: quoteVolume (string · int64; required), baseVolume (string · int64; required), initialPrice (number; required)

change.Market volumes daily changes

- change.quoteVolume (string · int64; required)

change.quoteVolume example: 0

change.quoteVolume.Type: string · int64

change.quoteVolume.format: int64

change.quoteVolume.pattern: ^(0|-?[1-9][0-9]*)$

- change.baseVolume (string · int64; required)

change.baseVolume example: 0

change.baseVolume.Type: string · int64

change.baseVolume.format: int64

change.baseVolume.pattern: ^(0|-?[1-9][0-9]*)$

- change.initialPrice (number; required)

change.initialPrice example: 0

change.initialPrice.Type: number

- incentive (object; required)

incentive example: {
  "timestamp": "2026-01-01T00:00:00Z",
  "twapIndexPrice": "0",
  "twapSpotPrice": "0",
  "longFundingRate": "0",
  "shortFundingRate": "0"
}

incentive.Type: object

incentive.Required fields: timestamp, twapIndexPrice, twapSpotPrice, longFundingRate, shortFundingRate

incentive.Required field types: timestamp (string · date-time · nullable; required), twapIndexPrice (string · int64; required), twapSpotPrice (string · int64; required), longFundingRate (string · int64; required), shortFundingRate (string · int64; required)

incentive.Funding info

- incentive.timestamp (string · date-time · nullable; required)

incentive.timestamp example: 2026-01-01T00:00:00Z

incentive.timestamp.Type: string · date-time · nullable

incentive.timestamp.format: date-time

- incentive.twapIndexPrice (string · int64; required)

incentive.twapIndexPrice example: 0

incentive.twapIndexPrice.Type: string · int64

incentive.twapIndexPrice.format: int64

incentive.twapIndexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- incentive.twapSpotPrice (string · int64; required)

incentive.twapSpotPrice example: 0

incentive.twapSpotPrice.Type: string · int64

incentive.twapSpotPrice.format: int64

incentive.twapSpotPrice.pattern: ^(0|-?[1-9][0-9]*)$

- incentive.longFundingRate (string · int64; required)

incentive.longFundingRate example: 0

incentive.longFundingRate.Type: string · int64

incentive.longFundingRate.format: int64

incentive.longFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- incentive.shortFundingRate (string · int64; required)

incentive.shortFundingRate example: 0

incentive.shortFundingRate.Type: string · int64

incentive.shortFundingRate.format: int64

incentive.shortFundingRate.pattern: ^(0|-?[1-9][0-9]*)$

- settings (object; required)

settings example: {
  "fee": "0",
  "executionFee": "0",
  "rolloverFee": "0",
  "fundingPeriod": 0,
  "ammType": "string",
  "minInitMarginRatio": "0",
  "initMarginRatio": "0",
  "maintenanceMarginRatio": "0",
  "liquidationFeeRatio": "0",
  "partialLiquidationRatio": "0",
  "spreadLimit": "0",
  "maxPriceImpact": "0",
  "maxPriceSpread": "0",
  "maxOpenNotional": "0",
  "feeToStakersPercent": "0",
  "maxOracleDelay": 0,
  "fundingMode": 0,
  "oracleMode": 0,
  "positionMode": 0,
  "fundingSettings": {
    "lowFundingFnA": 0,
    "lowFundingFnB": 0,
    "highFundingFnA": 0,
    "highFundingFnB": 0,
    "inflectionPoint": 0
  },
  "isCloseOnly": true,
  "isPaused": true,
  "status": "active"
}

settings.Type: object

settings.Required fields: fee, executionFee, rolloverFee, fundingPeriod, ammType, minInitMarginRatio, initMarginRatio, maintenanceMarginRatio, liquidationFeeRatio, partialLiquidationRatio, spreadLimit, maxPriceImpact, maxPriceSpread, maxOpenNotional, feeToStakersPercent, maxOracleDelay, fundingMode, oracleMode, positionMode, fundingSettings, isCloseOnly, isPaused, status

settings.Required field types: fee (string · int64; required), executionFee (string · int64; required), rolloverFee (string · int64; required), fundingPeriod (number; required), ammType (string; required), minInitMarginRatio (string · int64; required), initMarginRatio (string · int64; required), maintenanceMarginRatio (string · int64; required), liquidationFeeRatio (string · int64; required), partialLiquidationRatio (string · int64; required), spreadLimit (string · int64; required), maxPriceImpact (string · int64; required), maxPriceSpread (string · int64; required), maxOpenNotional (string · int64; required), feeToStakersPercent (string · int64; required), maxOracleDelay (number; required), fundingMode (number; required), oracleMode (number; required), positionMode (number; required), fundingSettings (object · nullable; required), isCloseOnly (boolean; required), isPaused (boolean; required), status (string · enum; required)

settings.Amm settings

- settings.fee (string · int64; required)

settings.fee example: 0

settings.fee.Type: string · int64

settings.fee.format: int64

settings.fee.pattern: ^(0|-?[1-9][0-9]*)$

- settings.executionFee (string · int64; required)

settings.executionFee example: 0

settings.executionFee.Type: string · int64

settings.executionFee.format: int64

settings.executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- settings.rolloverFee (string · int64; required)

settings.rolloverFee example: 0

settings.rolloverFee.Type: string · int64

settings.rolloverFee.format: int64

settings.rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- settings.fundingPeriod (number; required)

settings.fundingPeriod example: 0

settings.fundingPeriod.Type: number

- settings.ammType (string; required)

settings.ammType example: string

settings.ammType.Type: string

- settings.minInitMarginRatio (string · int64; required)

settings.minInitMarginRatio example: 0

settings.minInitMarginRatio.Type: string · int64

settings.minInitMarginRatio.format: int64

settings.minInitMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- settings.initMarginRatio (string · int64; required)

settings.initMarginRatio example: 0

settings.initMarginRatio.Type: string · int64

settings.initMarginRatio.format: int64

settings.initMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- settings.maintenanceMarginRatio (string · int64; required)

settings.maintenanceMarginRatio example: 0

settings.maintenanceMarginRatio.Type: string · int64

settings.maintenanceMarginRatio.format: int64

settings.maintenanceMarginRatio.pattern: ^(0|-?[1-9][0-9]*)$

- settings.liquidationFeeRatio (string · int64; required)

settings.liquidationFeeRatio example: 0

settings.liquidationFeeRatio.Type: string · int64

settings.liquidationFeeRatio.format: int64

settings.liquidationFeeRatio.pattern: ^(0|-?[1-9][0-9]*)$

- settings.partialLiquidationRatio (string · int64; required)

settings.partialLiquidationRatio example: 0

settings.partialLiquidationRatio.Type: string · int64

settings.partialLiquidationRatio.format: int64

settings.partialLiquidationRatio.pattern: ^(0|-?[1-9][0-9]*)$

- settings.spreadLimit (string · int64; required)

settings.spreadLimit example: 0

settings.spreadLimit.Type: string · int64

settings.spreadLimit.format: int64

settings.spreadLimit.pattern: ^(0|-?[1-9][0-9]*)$

- settings.maxPriceImpact (string · int64; required)

settings.maxPriceImpact example: 0

settings.maxPriceImpact.Type: string · int64

settings.maxPriceImpact.format: int64

settings.maxPriceImpact.pattern: ^(0|-?[1-9][0-9]*)$

- settings.maxPriceSpread (string · int64; required)

settings.maxPriceSpread example: 0

settings.maxPriceSpread.Type: string · int64

settings.maxPriceSpread.format: int64

settings.maxPriceSpread.pattern: ^(0|-?[1-9][0-9]*)$

- settings.maxOpenNotional (string · int64; required)

settings.maxOpenNotional example: 0

settings.maxOpenNotional.Type: string · int64

settings.maxOpenNotional.format: int64

settings.maxOpenNotional.pattern: ^(0|-?[1-9][0-9]*)$

- settings.feeToStakersPercent (string · int64; required)

settings.feeToStakersPercent example: 0

settings.feeToStakersPercent.Type: string · int64

settings.feeToStakersPercent.format: int64

settings.feeToStakersPercent.pattern: ^(0|-?[1-9][0-9]*)$

- settings.maxOracleDelay (number; required)

settings.maxOracleDelay example: 0

settings.maxOracleDelay.Type: number

- settings.fundingMode (number; required)

settings.fundingMode example: 0

settings.fundingMode.Type: number

- settings.oracleMode (number; required)

settings.oracleMode example: 0

settings.oracleMode.Type: number

- settings.positionMode (number; required)

settings.positionMode example: 0

settings.positionMode.Type: number

- settings.fundingSettings (object · nullable; required)

settings.fundingSettings example: {
  "lowFundingFnA": 0,
  "lowFundingFnB": 0,
  "highFundingFnA": 0,
  "highFundingFnB": 0,
  "inflectionPoint": 0
}

settings.fundingSettings.Type: object · nullable

settings.fundingSettings.Required fields: none

- settings.fundingSettings.lowFundingFnA (number; optional)

settings.fundingSettings.lowFundingFnA example: 0

settings.fundingSettings.lowFundingFnA.Type: number

- settings.fundingSettings.lowFundingFnB (number; optional)

settings.fundingSettings.lowFundingFnB example: 0

settings.fundingSettings.lowFundingFnB.Type: number

- settings.fundingSettings.highFundingFnA (number; optional)

settings.fundingSettings.highFundingFnA example: 0

settings.fundingSettings.highFundingFnA.Type: number

- settings.fundingSettings.highFundingFnB (number; optional)

settings.fundingSettings.highFundingFnB example: 0

settings.fundingSettings.highFundingFnB.Type: number

- settings.fundingSettings.inflectionPoint (number; optional)

settings.fundingSettings.inflectionPoint example: 0

settings.fundingSettings.inflectionPoint.Type: number

- settings.isCloseOnly (boolean; required)

settings.isCloseOnly example: true

settings.isCloseOnly.Type: boolean

- settings.isPaused (boolean; required)

settings.isPaused example: true

settings.isPaused.Type: boolean

- settings.status (string · enum; required)

settings.status example: active

settings.status.Type: string · enum

settings.status.Allowed values: ["active","closed","paused","closeOnly"]

- config (object; required)

config example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "imageLink": "string",
  "quoteAsset": "string",
  "baseAsset": "string",
  "name": "string",
  "ticker": "string",
  "vaultAddress": "string",
  "type": "string",
  "tags": [
    "string"
  ],
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "isDayTrading": true,
  "dayTradingLeverageLimit": 0
}

config.Type: object

config.Required fields: address, imageLink, quoteAsset, baseAsset, name, ticker, vaultAddress, tags, closestPauseAt, closestUnpauseAt, isDayTrading, dayTradingLeverageLimit

config.Required field types: address (string; required), imageLink (string; required), quoteAsset (string; required), baseAsset (string; required), name (string; required), ticker (string; required), vaultAddress (string; required), tags (string[]; required), closestPauseAt (number · nullable; required), closestUnpauseAt (number · nullable; required), isDayTrading (boolean; required), dayTradingLeverageLimit (number · nullable; required)

config.Market config

- config.address (string; required)

config.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

config.address.Type: string

- config.imageLink (string; required)

config.imageLink example: string

config.imageLink.Type: string

- config.quoteAsset (string; required)

config.quoteAsset example: string

config.quoteAsset.Type: string

- config.baseAsset (string; required)

config.baseAsset example: string

config.baseAsset.Type: string

- config.name (string; required)

config.name example: string

config.name.Type: string

- config.ticker (string; required)

config.ticker example: string

config.ticker.Type: string

- config.vaultAddress (string; required)

config.vaultAddress example: string

config.vaultAddress.Type: string

- config.type (string; optional)

config.type example: string

config.type.Type: string

- config.tags (string[]; required)

config.tags example: [
  "string"
]

config.tags.Type: string[]

config.tags.[]Type: string

- config.closestPauseAt (number · nullable; required)

config.closestPauseAt example: 0

config.closestPauseAt.Type: number · nullable

- config.closestUnpauseAt (number · nullable; required)

config.closestUnpauseAt example: 0

config.closestUnpauseAt.Type: number · nullable

- config.isDayTrading (boolean; required)

config.isDayTrading example: true

config.isDayTrading.Type: boolean

- config.dayTradingLeverageLimit (number · nullable; required)

config.dayTradingLeverageLimit example: 0

config.dayTradingLeverageLimit.Type: number · nullable

- prelaunch (object; optional)

prelaunch example: {
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "assetName": "string",
  "startTime": "2026-01-01T00:00:00Z",
  "endTime": "2026-01-01T00:00:00Z",
  "paused": true,
  "closeOnly": true,
  "createdAt": "2026-01-01T00:00:00Z",
  "settings": {
    "tradingDelayForNonWhitelistUsers": 0,
    "preMarketStatus": "off",
    "showAlert": true,
    "alertType": "warning",
    "alertTitle": "string",
    "alertSubtitle": "string"
  }
}

prelaunch.Type: object

prelaunch.Required fields: address, assetName, startTime, endTime, paused, closeOnly, createdAt, settings

prelaunch.Required field types: address (string; required), assetName (string; required), startTime (string · date-time · nullable; required), endTime (string · date-time · nullable; required), paused (boolean; required), closeOnly (boolean; required), createdAt (string · date-time; required), settings (object · nullable; required)

prelaunch.Prelaunch

- prelaunch.address (string; required)

prelaunch.address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

prelaunch.address.Type: string

- prelaunch.assetName (string; required)

prelaunch.assetName example: string

prelaunch.assetName.Type: string

- prelaunch.startTime (string · date-time · nullable; required)

prelaunch.startTime example: 2026-01-01T00:00:00Z

prelaunch.startTime.Type: string · date-time · nullable

prelaunch.startTime.format: date-time

- prelaunch.endTime (string · date-time · nullable; required)

prelaunch.endTime example: 2026-01-01T00:00:00Z

prelaunch.endTime.Type: string · date-time · nullable

prelaunch.endTime.format: date-time

- prelaunch.paused (boolean; required)

prelaunch.paused example: true

prelaunch.paused.Type: boolean

- prelaunch.closeOnly (boolean; required)

prelaunch.closeOnly example: true

prelaunch.closeOnly.Type: boolean

- prelaunch.createdAt (string · date-time; required)

prelaunch.createdAt example: 2026-01-01T00:00:00Z

prelaunch.createdAt.Type: string · date-time

prelaunch.createdAt.format: date-time

- prelaunch.settings (object · nullable; required)

prelaunch.settings example: {
  "tradingDelayForNonWhitelistUsers": 0,
  "preMarketStatus": "off",
  "showAlert": true,
  "alertType": "warning",
  "alertTitle": "string",
  "alertSubtitle": "string"
}

prelaunch.settings.Type: object · nullable

prelaunch.settings.Required fields: none

- prelaunch.settings.tradingDelayForNonWhitelistUsers (number; optional)

prelaunch.settings.tradingDelayForNonWhitelistUsers example: 0

prelaunch.settings.tradingDelayForNonWhitelistUsers.Type: number

- prelaunch.settings.preMarketStatus (string · enum; optional)

prelaunch.settings.preMarketStatus example: off

prelaunch.settings.preMarketStatus.Type: string · enum

prelaunch.settings.preMarketStatus.Allowed values: ["off","whitelistOnly","allowedForAll"]

- prelaunch.settings.showAlert (boolean; optional)

prelaunch.settings.showAlert example: true

prelaunch.settings.showAlert.Type: boolean

- prelaunch.settings.alertType (string · enum; optional)

prelaunch.settings.alertType example: warning

prelaunch.settings.alertType.Type: string · enum

prelaunch.settings.alertType.Allowed values: ["warning","success","info","error"]

- prelaunch.settings.alertTitle (string; optional)

prelaunch.settings.alertTitle example: string

prelaunch.settings.alertTitle.Type: string

- prelaunch.settings.alertSubtitle (string; optional)

prelaunch.settings.alertSubtitle example: string

prelaunch.settings.alertSubtitle.Type: string

Example



```json
{
  "address": "string",
  "amm": {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "txId": "string",
    "call": "OffchainOracleTick",
    "height": "0",
    "blockTimestamp": "2026-01-01T00:00:00Z",
    "seqno": "0",
    "indexPrice": "0",
    "baseOraclePrice": "0",
    "quoteOraclePrice": "0",
    "quoteAssetReserve": "0",
    "baseAssetReserve": "0",
    "baseAssetReserveWeight": "0",
    "quoteAssetReserveWeight": "0",
    "totalPositionSize": "0",
    "totalLongPositionSize": "0",
    "totalShortPositionSize": "0",
    "openInterestNotional": "0",
    "openInterestShort": "0",
    "openInterestLong": "0",
    "latestLongPremiumFraction": "0",
    "latestShortPremiumFraction": "0",
    "nextFundingBlock": "2026-01-01T00:00:00Z",
    "longFundingRate": "0",
    "shortFundingRate": "0",
    "vpiMarketDepthLong": "0",
    "vpiMarketDepthShort": "0",
    "vpiSpread": "0",
    "vpiCoefficient": "0"
  },
  "change": {
    "quoteVolume": "0",
    "baseVolume": "0",
    "initialPrice": 0
  },
  "incentive": {
    "timestamp": "2026-01-01T00:00:00Z",
    "twapIndexPrice": "0",
    "twapSpotPrice": "0",
    "longFundingRate": "0",
    "shortFundingRate": "0"
  },
  "settings": {
    "fee": "0",
    "executionFee": "0",
    "rolloverFee": "0",
    "fundingPeriod": 0,
    "ammType": "string",
    "minInitMarginRatio": "0",
    "initMarginRatio": "0",
    "maintenanceMarginRatio": "0",
    "liquidationFeeRatio": "0",
    "partialLiquidationRatio": "0",
    "spreadLimit": "0",
    "maxPriceImpact": "0",
    "maxPriceSpread": "0",
    "maxOpenNotional": "0",
    "feeToStakersPercent": "0",
    "maxOracleDelay": 0,
    "fundingMode": 0,
    "oracleMode": 0,
    "positionMode": 0,
    "fundingSettings": {
      "lowFundingFnA": 0,
      "lowFundingFnB": 0,
      "highFundingFnA": 0,
      "highFundingFnB": 0,
      "inflectionPoint": 0
    },
    "isCloseOnly": true,
    "isPaused": true,
    "status": "active"
  },
  "config": {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "imageLink": "string",
    "quoteAsset": "string",
    "baseAsset": "string",
    "name": "string",
    "ticker": "string",
    "vaultAddress": "string",
    "type": "string",
    "tags": [
      "string"
    ],
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "isDayTrading": true,
    "dayTradingLeverageLimit": 0
  },
  "prelaunch": {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "assetName": "string",
    "startTime": "2026-01-01T00:00:00Z",
    "endTime": "2026-01-01T00:00:00Z",
    "paused": true,
    "closeOnly": true,
    "createdAt": "2026-01-01T00:00:00Z",
    "settings": {
      "tradingDelayForNonWhitelistUsers": 0,
      "preMarketStatus": "off",
      "showAlert": true,
      "alertType": "warning",
      "alertTitle": "string",
      "alertSubtitle": "string"
    }
  }
}
```

---

# Place an order

Source: https://docs.storm.tg/developers/operations/placeorder

# Place an order

`POST /v3-node-0/order/place`

Sends a signed message/intent with optional additional order requests to the V3 bundler for processing

## Authorization



## Parameters



## Request body · Trading.api.MessageSendJSONReq

application/json · required

Message request with signature

Schema: Trading.api.MessageSendJSONReq

Type: object

Required fields: none

- builder (string; optional)

builder example: string

builder.Type: string

builder.third-party UI address (optional)

- message (string; optional)

message example: string

message.Type: string

message.base64 str

- order_requests (object[]; optional)

order_requests example: [
  {
    "message": "string",
    "public_key": "string",
    "signature": "string"
  }
]

order_requests.Type: object[]

order_requests.[]Schema: Trading.api.MessageOrderRequest

order_requests.[]Type: object

order_requests.[]Required fields: none

- order_requests.[]message (string; optional)

order_requests.[]message example: string

order_requests.[]message.Type: string

order_requests.[]message.base64 str

- order_requests.[]public_key (string; optional)

order_requests.[]public_key example: string

order_requests.[]public_key.Type: string

order_requests.[]public_key.base64 str

- order_requests.[]signature (string; optional)

order_requests.[]signature example: string

order_requests.[]signature.Type: string

order_requests.[]signature.base64 str

- payment_mode (string; optional)

payment_mode example: string

payment_mode.Type: string

- public_key (string; optional)

public_key example: string

public_key.Type: string

public_key.base64 str

- sa (string; optional)

sa example: string

sa.Type: string

- signature (string; optional)

signature example: string

signature.Type: string

signature.base64 str

Example



```json
{}
```

## Example · cURL

```bash
curl --request POST 'https://api.storm.tg/v3-node-0/order/place' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-raw '{}'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/order/place", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: "{}",
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "POST",
    "https://api.storm.tg/v3-node-0/order/place",
    headers={"Accept":"application/json","Content-Type":"application/json"},
    data="{}",
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.MessageSendResponse

**200** application/json — OK

Schema: Trading.api.MessageSendResponse

Type: object

Required fields: none

- accepted (boolean; optional)

accepted example: true

accepted.Type: boolean

- intent (object; optional)

intent example: {
  "action_phase": "string",
  "builder": {},
  "created_price": {
    "created_at": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "index": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "rfc": {
      "effective_depth": 0,
      "original_k": 0,
      "original_market_depth_long": 0,
      "original_market_depth_short": 0,
      "original_spread": 0,
      "recovery_rate": 0,
      "signed_price": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "velocity_debt": 0
    },
    "settlement": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "timestamp": "string"
  },
  "date": "string",
  "full_message": {
    "message": {
      "created_at": 0,
      "intent": {
        "order": {},
        "smart_account": {},
        "v_amm": {}
      },
      "public_key": [
        0
      ],
      "query_id": {
        "bit_number": 0,
        "shift": 0
      },
      "reference_query_id": {
        "bit_number": 0,
        "shift": 0
      }
    },
    "public_key": "string",
    "signature": [
      0
    ]
  },
  "hash": [
    0
  ],
  "market": {},
  "order": {},
  "order_requests": [
    {
      "full_message": {
        "message": {
          "created_at": 0,
          "intent": {
            "order": {},
            "smart_account": {},
            "v_amm": {}
          },
          "public_key": [
            0
          ],
          "query_id": {
            "bit_number": 0,
            "shift": 0
          },
          "reference_query_id": {
            "bit_number": 0,
            "shift": 0
          }
        },
        "public_key": "string",
        "signature": [
          0
        ]
      },
      "hash": [
        0
      ],
      "order_request": {
        "selector": 0
      },
      "order_request_hash": [
        0
      ],
      "smart_account": {}
    }
  ],
  "payment_mode": 0,
  "price": {
    "created_at": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "index": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "rfc": {
      "effective_depth": 0,
      "original_k": 0,
      "original_market_depth_long": 0,
      "original_market_depth_short": 0,
      "original_spread": 0,
      "recovery_rate": 0,
      "signed_price": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "velocity_debt": 0
    },
    "settlement": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "timestamp": "string"
  },
  "smart_account": {},
  "vault": {}
}

intent.Schema: Trading.types.SettledAction

intent.Type: object

intent.Required fields: none

- intent.action_phase (string; optional)

intent.action_phase example: string

intent.action_phase.Type: string

- intent.builder (object; optional)

intent.builder example: {}

intent.builder.Type: object

intent.builder.Builder is the third-party UI that submitted this intent (unsigned envelope,
like PaymentMode). Earns a rebate only if registered+active. nil = none.

intent.builder.allOf variant 1

intent.builder.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.builder.Type: object

- intent.created_price (object; optional)

intent.created_price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intent.created_price.Schema: Trading.oracle.PriceSigned

intent.created_price.Type: object

intent.created_price.Required fields: none

- intent.created_price.created_at (object; optional)

intent.created_price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.created_at.Schema: Trading.oracle.LatestResponse

intent.created_price.created_at.Type: object

intent.created_price.created_at.Required fields: none

- intent.created_price.created_at.closestPauseAt (integer; optional)

intent.created_price.created_at.closestPauseAt example: 0

intent.created_price.created_at.closestPauseAt.Type: integer

- intent.created_price.created_at.closestUnpauseAt (integer; optional)

intent.created_price.created_at.closestUnpauseAt example: 0

intent.created_price.created_at.closestUnpauseAt.Type: integer

- intent.created_price.created_at.feed (string; optional)

intent.created_price.created_at.feed example: string

intent.created_price.created_at.feed.Type: string

- intent.created_price.created_at.inPause (boolean; optional)

intent.created_price.created_at.inPause example: true

intent.created_price.created_at.inPause.Type: boolean

- intent.created_price.created_at.isOnline (boolean; optional)

intent.created_price.created_at.isOnline example: true

intent.created_price.created_at.isOnline.Type: boolean

- intent.created_price.created_at.k (integer; optional)

intent.created_price.created_at.k example: 0

intent.created_price.created_at.k.Type: integer

- intent.created_price.created_at.marketDepthLong (integer; optional)

intent.created_price.created_at.marketDepthLong example: 0

intent.created_price.created_at.marketDepthLong.Type: integer

- intent.created_price.created_at.marketDepthShort (integer; optional)

intent.created_price.created_at.marketDepthShort example: 0

intent.created_price.created_at.marketDepthShort.Type: integer

- intent.created_price.created_at.pauseAt (integer; optional)

intent.created_price.created_at.pauseAt example: 0

intent.created_price.created_at.pauseAt.Type: integer

- intent.created_price.created_at.pausedAt (integer; optional)

intent.created_price.created_at.pausedAt example: 0

intent.created_price.created_at.pausedAt.Type: integer

- intent.created_price.created_at.price (integer; optional)

intent.created_price.created_at.price example: 0

intent.created_price.created_at.price.Type: integer

- intent.created_price.created_at.result_message (object; optional)

intent.created_price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.created_at.result_message.Type: object

intent.created_price.created_at.result_message.Required fields: none

- intent.created_price.created_at.result_message.price_ref (string; optional)

intent.created_price.created_at.result_message.price_ref example: string

intent.created_price.created_at.result_message.price_ref.Type: string

- intent.created_price.created_at.result_message.signatures_ref (string; optional)

intent.created_price.created_at.result_message.signatures_ref example: string

intent.created_price.created_at.result_message.signatures_ref.Type: string

- intent.created_price.created_at.slot (integer; optional)

intent.created_price.created_at.slot example: 0

intent.created_price.created_at.slot.Type: integer

- intent.created_price.created_at.spread (integer; optional)

intent.created_price.created_at.spread example: 0

intent.created_price.created_at.spread.Type: integer

- intent.created_price.created_at.status (string; optional)

intent.created_price.created_at.status example: string

intent.created_price.created_at.status.Type: string

- intent.created_price.created_at.timestamp (integer; optional)

intent.created_price.created_at.timestamp example: 0

intent.created_price.created_at.timestamp.Type: integer

- intent.created_price.created_at.unpauseAt (integer; optional)

intent.created_price.created_at.unpauseAt example: 0

intent.created_price.created_at.unpauseAt.Type: integer

- intent.created_price.index (object; optional)

intent.created_price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.index.Schema: Trading.oracle.LatestResponse

intent.created_price.index.Type: object

intent.created_price.index.Required fields: none

- intent.created_price.index.closestPauseAt (integer; optional)

intent.created_price.index.closestPauseAt example: 0

intent.created_price.index.closestPauseAt.Type: integer

- intent.created_price.index.closestUnpauseAt (integer; optional)

intent.created_price.index.closestUnpauseAt example: 0

intent.created_price.index.closestUnpauseAt.Type: integer

- intent.created_price.index.feed (string; optional)

intent.created_price.index.feed example: string

intent.created_price.index.feed.Type: string

- intent.created_price.index.inPause (boolean; optional)

intent.created_price.index.inPause example: true

intent.created_price.index.inPause.Type: boolean

- intent.created_price.index.isOnline (boolean; optional)

intent.created_price.index.isOnline example: true

intent.created_price.index.isOnline.Type: boolean

- intent.created_price.index.k (integer; optional)

intent.created_price.index.k example: 0

intent.created_price.index.k.Type: integer

- intent.created_price.index.marketDepthLong (integer; optional)

intent.created_price.index.marketDepthLong example: 0

intent.created_price.index.marketDepthLong.Type: integer

- intent.created_price.index.marketDepthShort (integer; optional)

intent.created_price.index.marketDepthShort example: 0

intent.created_price.index.marketDepthShort.Type: integer

- intent.created_price.index.pauseAt (integer; optional)

intent.created_price.index.pauseAt example: 0

intent.created_price.index.pauseAt.Type: integer

- intent.created_price.index.pausedAt (integer; optional)

intent.created_price.index.pausedAt example: 0

intent.created_price.index.pausedAt.Type: integer

- intent.created_price.index.price (integer; optional)

intent.created_price.index.price example: 0

intent.created_price.index.price.Type: integer

- intent.created_price.index.result_message (object; optional)

intent.created_price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.index.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.index.result_message.Type: object

intent.created_price.index.result_message.Required fields: none

- intent.created_price.index.result_message.price_ref (string; optional)

intent.created_price.index.result_message.price_ref example: string

intent.created_price.index.result_message.price_ref.Type: string

- intent.created_price.index.result_message.signatures_ref (string; optional)

intent.created_price.index.result_message.signatures_ref example: string

intent.created_price.index.result_message.signatures_ref.Type: string

- intent.created_price.index.slot (integer; optional)

intent.created_price.index.slot example: 0

intent.created_price.index.slot.Type: integer

- intent.created_price.index.spread (integer; optional)

intent.created_price.index.spread example: 0

intent.created_price.index.spread.Type: integer

- intent.created_price.index.status (string; optional)

intent.created_price.index.status example: string

intent.created_price.index.status.Type: string

- intent.created_price.index.timestamp (integer; optional)

intent.created_price.index.timestamp example: 0

intent.created_price.index.timestamp.Type: integer

- intent.created_price.index.unpauseAt (integer; optional)

intent.created_price.index.unpauseAt example: 0

intent.created_price.index.unpauseAt.Type: integer

- intent.created_price.rfc (object; optional)

intent.created_price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intent.created_price.rfc.Type: object

intent.created_price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intent.created_price.rfc.allOf variant 1

intent.created_price.rfc.Schema: Trading.oracle.RFQResult

intent.created_price.rfc.Type: object

intent.created_price.rfc.Required fields: none

- intent.created_price.rfc.effective_depth (integer; optional)

intent.created_price.rfc.effective_depth example: 0

intent.created_price.rfc.effective_depth.Type: integer

- intent.created_price.rfc.original_k (integer; optional)

intent.created_price.rfc.original_k example: 0

intent.created_price.rfc.original_k.Type: integer

- intent.created_price.rfc.original_market_depth_long (integer; optional)

intent.created_price.rfc.original_market_depth_long example: 0

intent.created_price.rfc.original_market_depth_long.Type: integer

intent.created_price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intent.created_price.rfc.original_market_depth_short (integer; optional)

intent.created_price.rfc.original_market_depth_short example: 0

intent.created_price.rfc.original_market_depth_short.Type: integer

- intent.created_price.rfc.original_spread (integer; optional)

intent.created_price.rfc.original_spread example: 0

intent.created_price.rfc.original_spread.Type: integer

- intent.created_price.rfc.recovery_rate (number; optional)

intent.created_price.rfc.recovery_rate example: 0

intent.created_price.rfc.recovery_rate.Type: number

- intent.created_price.rfc.signed_price (object; optional)

intent.created_price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.rfc.signed_price.Type: object

intent.created_price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intent.created_price.rfc.signed_price.allOf variant 1

intent.created_price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intent.created_price.rfc.signed_price.Type: object

intent.created_price.rfc.signed_price.Required fields: none

- intent.created_price.rfc.signed_price.closestPauseAt (integer; optional)

intent.created_price.rfc.signed_price.closestPauseAt example: 0

intent.created_price.rfc.signed_price.closestPauseAt.Type: integer

- intent.created_price.rfc.signed_price.closestUnpauseAt (integer; optional)

intent.created_price.rfc.signed_price.closestUnpauseAt example: 0

intent.created_price.rfc.signed_price.closestUnpauseAt.Type: integer

- intent.created_price.rfc.signed_price.feed (string; optional)

intent.created_price.rfc.signed_price.feed example: string

intent.created_price.rfc.signed_price.feed.Type: string

- intent.created_price.rfc.signed_price.inPause (boolean; optional)

intent.created_price.rfc.signed_price.inPause example: true

intent.created_price.rfc.signed_price.inPause.Type: boolean

- intent.created_price.rfc.signed_price.isOnline (boolean; optional)

intent.created_price.rfc.signed_price.isOnline example: true

intent.created_price.rfc.signed_price.isOnline.Type: boolean

- intent.created_price.rfc.signed_price.k (integer; optional)

intent.created_price.rfc.signed_price.k example: 0

intent.created_price.rfc.signed_price.k.Type: integer

- intent.created_price.rfc.signed_price.marketDepthLong (integer; optional)

intent.created_price.rfc.signed_price.marketDepthLong example: 0

intent.created_price.rfc.signed_price.marketDepthLong.Type: integer

- intent.created_price.rfc.signed_price.marketDepthShort (integer; optional)

intent.created_price.rfc.signed_price.marketDepthShort example: 0

intent.created_price.rfc.signed_price.marketDepthShort.Type: integer

- intent.created_price.rfc.signed_price.pauseAt (integer; optional)

intent.created_price.rfc.signed_price.pauseAt example: 0

intent.created_price.rfc.signed_price.pauseAt.Type: integer

- intent.created_price.rfc.signed_price.pausedAt (integer; optional)

intent.created_price.rfc.signed_price.pausedAt example: 0

intent.created_price.rfc.signed_price.pausedAt.Type: integer

- intent.created_price.rfc.signed_price.price (integer; optional)

intent.created_price.rfc.signed_price.price example: 0

intent.created_price.rfc.signed_price.price.Type: integer

- intent.created_price.rfc.signed_price.result_message (object; optional)

intent.created_price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.rfc.signed_price.result_message.Type: object

intent.created_price.rfc.signed_price.result_message.Required fields: none

- intent.created_price.rfc.signed_price.result_message.price_ref (string; optional)

intent.created_price.rfc.signed_price.result_message.price_ref example: string

intent.created_price.rfc.signed_price.result_message.price_ref.Type: string

- intent.created_price.rfc.signed_price.result_message.signatures_ref (string; optional)

intent.created_price.rfc.signed_price.result_message.signatures_ref example: string

intent.created_price.rfc.signed_price.result_message.signatures_ref.Type: string

- intent.created_price.rfc.signed_price.slot (integer; optional)

intent.created_price.rfc.signed_price.slot example: 0

intent.created_price.rfc.signed_price.slot.Type: integer

- intent.created_price.rfc.signed_price.spread (integer; optional)

intent.created_price.rfc.signed_price.spread example: 0

intent.created_price.rfc.signed_price.spread.Type: integer

- intent.created_price.rfc.signed_price.status (string; optional)

intent.created_price.rfc.signed_price.status example: string

intent.created_price.rfc.signed_price.status.Type: string

- intent.created_price.rfc.signed_price.timestamp (integer; optional)

intent.created_price.rfc.signed_price.timestamp example: 0

intent.created_price.rfc.signed_price.timestamp.Type: integer

- intent.created_price.rfc.signed_price.unpauseAt (integer; optional)

intent.created_price.rfc.signed_price.unpauseAt example: 0

intent.created_price.rfc.signed_price.unpauseAt.Type: integer

- intent.created_price.rfc.velocity_debt (integer; optional)

intent.created_price.rfc.velocity_debt example: 0

intent.created_price.rfc.velocity_debt.Type: integer

intent.created_price.rfc.velocity_debt.Velocity calculation results

- intent.created_price.settlement (object; optional)

intent.created_price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.settlement.Schema: Trading.oracle.LatestResponse

intent.created_price.settlement.Type: object

intent.created_price.settlement.Required fields: none

- intent.created_price.settlement.closestPauseAt (integer; optional)

intent.created_price.settlement.closestPauseAt example: 0

intent.created_price.settlement.closestPauseAt.Type: integer

- intent.created_price.settlement.closestUnpauseAt (integer; optional)

intent.created_price.settlement.closestUnpauseAt example: 0

intent.created_price.settlement.closestUnpauseAt.Type: integer

- intent.created_price.settlement.feed (string; optional)

intent.created_price.settlement.feed example: string

intent.created_price.settlement.feed.Type: string

- intent.created_price.settlement.inPause (boolean; optional)

intent.created_price.settlement.inPause example: true

intent.created_price.settlement.inPause.Type: boolean

- intent.created_price.settlement.isOnline (boolean; optional)

intent.created_price.settlement.isOnline example: true

intent.created_price.settlement.isOnline.Type: boolean

- intent.created_price.settlement.k (integer; optional)

intent.created_price.settlement.k example: 0

intent.created_price.settlement.k.Type: integer

- intent.created_price.settlement.marketDepthLong (integer; optional)

intent.created_price.settlement.marketDepthLong example: 0

intent.created_price.settlement.marketDepthLong.Type: integer

- intent.created_price.settlement.marketDepthShort (integer; optional)

intent.created_price.settlement.marketDepthShort example: 0

intent.created_price.settlement.marketDepthShort.Type: integer

- intent.created_price.settlement.pauseAt (integer; optional)

intent.created_price.settlement.pauseAt example: 0

intent.created_price.settlement.pauseAt.Type: integer

- intent.created_price.settlement.pausedAt (integer; optional)

intent.created_price.settlement.pausedAt example: 0

intent.created_price.settlement.pausedAt.Type: integer

- intent.created_price.settlement.price (integer; optional)

intent.created_price.settlement.price example: 0

intent.created_price.settlement.price.Type: integer

- intent.created_price.settlement.result_message (object; optional)

intent.created_price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.settlement.result_message.Type: object

intent.created_price.settlement.result_message.Required fields: none

- intent.created_price.settlement.result_message.price_ref (string; optional)

intent.created_price.settlement.result_message.price_ref example: string

intent.created_price.settlement.result_message.price_ref.Type: string

- intent.created_price.settlement.result_message.signatures_ref (string; optional)

intent.created_price.settlement.result_message.signatures_ref example: string

intent.created_price.settlement.result_message.signatures_ref.Type: string

- intent.created_price.settlement.slot (integer; optional)

intent.created_price.settlement.slot example: 0

intent.created_price.settlement.slot.Type: integer

- intent.created_price.settlement.spread (integer; optional)

intent.created_price.settlement.spread example: 0

intent.created_price.settlement.spread.Type: integer

- intent.created_price.settlement.status (string; optional)

intent.created_price.settlement.status example: string

intent.created_price.settlement.status.Type: string

- intent.created_price.settlement.timestamp (integer; optional)

intent.created_price.settlement.timestamp example: 0

intent.created_price.settlement.timestamp.Type: integer

- intent.created_price.settlement.unpauseAt (integer; optional)

intent.created_price.settlement.unpauseAt example: 0

intent.created_price.settlement.unpauseAt.Type: integer

- intent.created_price.timestamp (string; optional)

intent.created_price.timestamp example: string

intent.created_price.timestamp.Type: string

- intent.date (string; optional)

intent.date example: string

intent.date.Type: string

- intent.full_message (object; optional)

intent.full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intent.full_message.Schema: Trading.smartaccount.SignedMessage

intent.full_message.Type: object

intent.full_message.Required fields: none

- intent.full_message.message (object; optional)

intent.full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intent.full_message.message.Schema: Trading.smartaccount.UserIntent

intent.full_message.message.Type: object

intent.full_message.message.Required fields: none

- intent.full_message.message.created_at (integer; optional)

intent.full_message.message.created_at example: 0

intent.full_message.message.created_at.Type: integer

- intent.full_message.message.intent (object; optional)

intent.full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intent.full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intent.full_message.message.intent.Type: object

intent.full_message.message.intent.Required fields: none

- intent.full_message.message.intent.order (object; optional)

intent.full_message.message.intent.order example: {}

intent.full_message.message.intent.order.Schema: Trading.schemas.Order

intent.full_message.message.intent.order.Type: object

intent.full_message.message.intent.order.Required fields: none

- intent.full_message.message.intent.order.order (any; optional)

intent.full_message.message.intent.order.order.Type: any

- intent.full_message.message.intent.smart_account (object; optional)

intent.full_message.message.intent.smart_account example: {}

intent.full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.full_message.message.intent.smart_account.Type: object

- intent.full_message.message.intent.v_amm (object; optional)

intent.full_message.message.intent.v_amm example: {}

intent.full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.full_message.message.intent.v_amm.Type: object

- intent.full_message.message.public_key (integer[]; optional)

intent.full_message.message.public_key example: [
  0
]

intent.full_message.message.public_key.Type: integer[]

intent.full_message.message.public_key.pk

intent.full_message.message.public_key.[]Type: integer

- intent.full_message.message.query_id (object; optional)

intent.full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.full_message.message.query_id.Schema: Trading.hw.QueryId

intent.full_message.message.query_id.Type: object

intent.full_message.message.query_id.Required fields: none

- intent.full_message.message.query_id.bit_number (integer; optional)

intent.full_message.message.query_id.bit_number example: 0

intent.full_message.message.query_id.bit_number.Type: integer

- intent.full_message.message.query_id.shift (integer; optional)

intent.full_message.message.query_id.shift example: 0

intent.full_message.message.query_id.shift.Type: integer

- intent.full_message.message.reference_query_id (object; optional)

intent.full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intent.full_message.message.reference_query_id.Type: object

intent.full_message.message.reference_query_id.Required fields: none

- intent.full_message.message.reference_query_id.bit_number (integer; optional)

intent.full_message.message.reference_query_id.bit_number example: 0

intent.full_message.message.reference_query_id.bit_number.Type: integer

- intent.full_message.message.reference_query_id.shift (integer; optional)

intent.full_message.message.reference_query_id.shift example: 0

intent.full_message.message.reference_query_id.shift.Type: integer

- intent.full_message.public_key (string; optional)

intent.full_message.public_key example: string

intent.full_message.public_key.Type: string

- intent.full_message.signature (integer[]; optional)

intent.full_message.signature example: [
  0
]

intent.full_message.signature.Type: integer[]

intent.full_message.signature.[]Type: integer

- intent.hash (integer[]; optional)

intent.hash example: [
  0
]

intent.hash.Type: integer[]

intent.hash.[]Type: integer

- intent.market (object; optional)

intent.market example: {}

intent.market.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.market.Type: object

- intent.order (object; optional)

intent.order example: {}

intent.order.Schema: Trading.schemas.Order

intent.order.Type: object

intent.order.Required fields: none

- intent.order.order (any; optional)

intent.order.order.Type: any

- intent.order_requests (object[]; optional)

intent.order_requests example: [
  {
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "order_request": {
      "selector": 0
    },
    "order_request_hash": [
      0
    ],
    "smart_account": {}
  }
]

intent.order_requests.Type: object[]

intent.order_requests.[]Schema: Trading.types.OrderRequestIntent

intent.order_requests.[]Type: object

intent.order_requests.[]Required fields: none

- intent.order_requests.[]full_message (object; optional)

intent.order_requests.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intent.order_requests.[]full_message.Schema: Trading.smartaccount.SignedMessage

intent.order_requests.[]full_message.Type: object

intent.order_requests.[]full_message.Required fields: none

- intent.order_requests.[]full_message.message (object; optional)

intent.order_requests.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intent.order_requests.[]full_message.message.Schema: Trading.smartaccount.UserIntent

intent.order_requests.[]full_message.message.Type: object

intent.order_requests.[]full_message.message.Required fields: none

- intent.order_requests.[]full_message.message.created_at (integer; optional)

intent.order_requests.[]full_message.message.created_at example: 0

intent.order_requests.[]full_message.message.created_at.Type: integer

- intent.order_requests.[]full_message.message.intent (object; optional)

intent.order_requests.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intent.order_requests.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intent.order_requests.[]full_message.message.intent.Type: object

intent.order_requests.[]full_message.message.intent.Required fields: none

- intent.order_requests.[]full_message.message.intent.order (object; optional)

intent.order_requests.[]full_message.message.intent.order example: {}

intent.order_requests.[]full_message.message.intent.order.Schema: Trading.schemas.Order

intent.order_requests.[]full_message.message.intent.order.Type: object

intent.order_requests.[]full_message.message.intent.order.Required fields: none

- intent.order_requests.[]full_message.message.intent.order.order (any; optional)

intent.order_requests.[]full_message.message.intent.order.order.Type: any

- intent.order_requests.[]full_message.message.intent.smart_account (object; optional)

intent.order_requests.[]full_message.message.intent.smart_account example: {}

intent.order_requests.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]full_message.message.intent.smart_account.Type: object

- intent.order_requests.[]full_message.message.intent.v_amm (object; optional)

intent.order_requests.[]full_message.message.intent.v_amm example: {}

intent.order_requests.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]full_message.message.intent.v_amm.Type: object

- intent.order_requests.[]full_message.message.public_key (integer[]; optional)

intent.order_requests.[]full_message.message.public_key example: [
  0
]

intent.order_requests.[]full_message.message.public_key.Type: integer[]

intent.order_requests.[]full_message.message.public_key.pk

intent.order_requests.[]full_message.message.public_key.[]Type: integer

- intent.order_requests.[]full_message.message.query_id (object; optional)

intent.order_requests.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.order_requests.[]full_message.message.query_id.Schema: Trading.hw.QueryId

intent.order_requests.[]full_message.message.query_id.Type: object

intent.order_requests.[]full_message.message.query_id.Required fields: none

- intent.order_requests.[]full_message.message.query_id.bit_number (integer; optional)

intent.order_requests.[]full_message.message.query_id.bit_number example: 0

intent.order_requests.[]full_message.message.query_id.bit_number.Type: integer

- intent.order_requests.[]full_message.message.query_id.shift (integer; optional)

intent.order_requests.[]full_message.message.query_id.shift example: 0

intent.order_requests.[]full_message.message.query_id.shift.Type: integer

- intent.order_requests.[]full_message.message.reference_query_id (object; optional)

intent.order_requests.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.order_requests.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intent.order_requests.[]full_message.message.reference_query_id.Type: object

intent.order_requests.[]full_message.message.reference_query_id.Required fields: none

- intent.order_requests.[]full_message.message.reference_query_id.bit_number (integer; optional)

intent.order_requests.[]full_message.message.reference_query_id.bit_number example: 0

intent.order_requests.[]full_message.message.reference_query_id.bit_number.Type: integer

- intent.order_requests.[]full_message.message.reference_query_id.shift (integer; optional)

intent.order_requests.[]full_message.message.reference_query_id.shift example: 0

intent.order_requests.[]full_message.message.reference_query_id.shift.Type: integer

- intent.order_requests.[]full_message.public_key (string; optional)

intent.order_requests.[]full_message.public_key example: string

intent.order_requests.[]full_message.public_key.Type: string

- intent.order_requests.[]full_message.signature (integer[]; optional)

intent.order_requests.[]full_message.signature example: [
  0
]

intent.order_requests.[]full_message.signature.Type: integer[]

intent.order_requests.[]full_message.signature.[]Type: integer

- intent.order_requests.[]hash (integer[]; optional)

intent.order_requests.[]hash example: [
  0
]

intent.order_requests.[]hash.Type: integer[]

intent.order_requests.[]hash.[]Type: integer

- intent.order_requests.[]order_request (object; optional)

intent.order_requests.[]order_request example: {
  "selector": 0
}

intent.order_requests.[]order_request.Schema: Trading.schemas.OrderRequest

intent.order_requests.[]order_request.Type: object

intent.order_requests.[]order_request.Required fields: none

- intent.order_requests.[]order_request.order (any; optional)

intent.order_requests.[]order_request.order.Type: any

- intent.order_requests.[]order_request.selector (integer; optional)

intent.order_requests.[]order_request.selector example: 0

intent.order_requests.[]order_request.selector.Type: integer

- intent.order_requests.[]order_request_hash (integer[]; optional)

intent.order_requests.[]order_request_hash example: [
  0
]

intent.order_requests.[]order_request_hash.Type: integer[]

intent.order_requests.[]order_request_hash.[]Type: integer

- intent.order_requests.[]smart_account (object; optional)

intent.order_requests.[]smart_account example: {}

intent.order_requests.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]smart_account.Type: object

- intent.payment_mode (integer · int32 · enum; optional)

intent.payment_mode example: 0

intent.payment_mode.Schema: Trading.types.PaymentMode

intent.payment_mode.Type: integer · int32 · enum

intent.payment_mode.Allowed values: [0,1]

intent.payment_mode.format: int32

- intent.price (object; optional)

intent.price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intent.price.Schema: Trading.oracle.PriceSigned

intent.price.Type: object

intent.price.Required fields: none

- intent.price.created_at (object; optional)

intent.price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.created_at.Schema: Trading.oracle.LatestResponse

intent.price.created_at.Type: object

intent.price.created_at.Required fields: none

- intent.price.created_at.closestPauseAt (integer; optional)

intent.price.created_at.closestPauseAt example: 0

intent.price.created_at.closestPauseAt.Type: integer

- intent.price.created_at.closestUnpauseAt (integer; optional)

intent.price.created_at.closestUnpauseAt example: 0

intent.price.created_at.closestUnpauseAt.Type: integer

- intent.price.created_at.feed (string; optional)

intent.price.created_at.feed example: string

intent.price.created_at.feed.Type: string

- intent.price.created_at.inPause (boolean; optional)

intent.price.created_at.inPause example: true

intent.price.created_at.inPause.Type: boolean

- intent.price.created_at.isOnline (boolean; optional)

intent.price.created_at.isOnline example: true

intent.price.created_at.isOnline.Type: boolean

- intent.price.created_at.k (integer; optional)

intent.price.created_at.k example: 0

intent.price.created_at.k.Type: integer

- intent.price.created_at.marketDepthLong (integer; optional)

intent.price.created_at.marketDepthLong example: 0

intent.price.created_at.marketDepthLong.Type: integer

- intent.price.created_at.marketDepthShort (integer; optional)

intent.price.created_at.marketDepthShort example: 0

intent.price.created_at.marketDepthShort.Type: integer

- intent.price.created_at.pauseAt (integer; optional)

intent.price.created_at.pauseAt example: 0

intent.price.created_at.pauseAt.Type: integer

- intent.price.created_at.pausedAt (integer; optional)

intent.price.created_at.pausedAt example: 0

intent.price.created_at.pausedAt.Type: integer

- intent.price.created_at.price (integer; optional)

intent.price.created_at.price example: 0

intent.price.created_at.price.Type: integer

- intent.price.created_at.result_message (object; optional)

intent.price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intent.price.created_at.result_message.Type: object

intent.price.created_at.result_message.Required fields: none

- intent.price.created_at.result_message.price_ref (string; optional)

intent.price.created_at.result_message.price_ref example: string

intent.price.created_at.result_message.price_ref.Type: string

- intent.price.created_at.result_message.signatures_ref (string; optional)

intent.price.created_at.result_message.signatures_ref example: string

intent.price.created_at.result_message.signatures_ref.Type: string

- intent.price.created_at.slot (integer; optional)

intent.price.created_at.slot example: 0

intent.price.created_at.slot.Type: integer

- intent.price.created_at.spread (integer; optional)

intent.price.created_at.spread example: 0

intent.price.created_at.spread.Type: integer

- intent.price.created_at.status (string; optional)

intent.price.created_at.status example: string

intent.price.created_at.status.Type: string

- intent.price.created_at.timestamp (integer; optional)

intent.price.created_at.timestamp example: 0

intent.price.created_at.timestamp.Type: integer

- intent.price.created_at.unpauseAt (integer; optional)

intent.price.created_at.unpauseAt example: 0

intent.price.created_at.unpauseAt.Type: integer

- intent.price.index (object; optional)

intent.price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.index.Schema: Trading.oracle.LatestResponse

intent.price.index.Type: object

intent.price.index.Required fields: none

- intent.price.index.closestPauseAt (integer; optional)

intent.price.index.closestPauseAt example: 0

intent.price.index.closestPauseAt.Type: integer

- intent.price.index.closestUnpauseAt (integer; optional)

intent.price.index.closestUnpauseAt example: 0

intent.price.index.closestUnpauseAt.Type: integer

- intent.price.index.feed (string; optional)

intent.price.index.feed example: string

intent.price.index.feed.Type: string

- intent.price.index.inPause (boolean; optional)

intent.price.index.inPause example: true

intent.price.index.inPause.Type: boolean

- intent.price.index.isOnline (boolean; optional)

intent.price.index.isOnline example: true

intent.price.index.isOnline.Type: boolean

- intent.price.index.k (integer; optional)

intent.price.index.k example: 0

intent.price.index.k.Type: integer

- intent.price.index.marketDepthLong (integer; optional)

intent.price.index.marketDepthLong example: 0

intent.price.index.marketDepthLong.Type: integer

- intent.price.index.marketDepthShort (integer; optional)

intent.price.index.marketDepthShort example: 0

intent.price.index.marketDepthShort.Type: integer

- intent.price.index.pauseAt (integer; optional)

intent.price.index.pauseAt example: 0

intent.price.index.pauseAt.Type: integer

- intent.price.index.pausedAt (integer; optional)

intent.price.index.pausedAt example: 0

intent.price.index.pausedAt.Type: integer

- intent.price.index.price (integer; optional)

intent.price.index.price example: 0

intent.price.index.price.Type: integer

- intent.price.index.result_message (object; optional)

intent.price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.index.result_message.Schema: Trading.oracle.ResultMessage

intent.price.index.result_message.Type: object

intent.price.index.result_message.Required fields: none

- intent.price.index.result_message.price_ref (string; optional)

intent.price.index.result_message.price_ref example: string

intent.price.index.result_message.price_ref.Type: string

- intent.price.index.result_message.signatures_ref (string; optional)

intent.price.index.result_message.signatures_ref example: string

intent.price.index.result_message.signatures_ref.Type: string

- intent.price.index.slot (integer; optional)

intent.price.index.slot example: 0

intent.price.index.slot.Type: integer

- intent.price.index.spread (integer; optional)

intent.price.index.spread example: 0

intent.price.index.spread.Type: integer

- intent.price.index.status (string; optional)

intent.price.index.status example: string

intent.price.index.status.Type: string

- intent.price.index.timestamp (integer; optional)

intent.price.index.timestamp example: 0

intent.price.index.timestamp.Type: integer

- intent.price.index.unpauseAt (integer; optional)

intent.price.index.unpauseAt example: 0

intent.price.index.unpauseAt.Type: integer

- intent.price.rfc (object; optional)

intent.price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intent.price.rfc.Type: object

intent.price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intent.price.rfc.allOf variant 1

intent.price.rfc.Schema: Trading.oracle.RFQResult

intent.price.rfc.Type: object

intent.price.rfc.Required fields: none

- intent.price.rfc.effective_depth (integer; optional)

intent.price.rfc.effective_depth example: 0

intent.price.rfc.effective_depth.Type: integer

- intent.price.rfc.original_k (integer; optional)

intent.price.rfc.original_k example: 0

intent.price.rfc.original_k.Type: integer

- intent.price.rfc.original_market_depth_long (integer; optional)

intent.price.rfc.original_market_depth_long example: 0

intent.price.rfc.original_market_depth_long.Type: integer

intent.price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intent.price.rfc.original_market_depth_short (integer; optional)

intent.price.rfc.original_market_depth_short example: 0

intent.price.rfc.original_market_depth_short.Type: integer

- intent.price.rfc.original_spread (integer; optional)

intent.price.rfc.original_spread example: 0

intent.price.rfc.original_spread.Type: integer

- intent.price.rfc.recovery_rate (number; optional)

intent.price.rfc.recovery_rate example: 0

intent.price.rfc.recovery_rate.Type: number

- intent.price.rfc.signed_price (object; optional)

intent.price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.rfc.signed_price.Type: object

intent.price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intent.price.rfc.signed_price.allOf variant 1

intent.price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intent.price.rfc.signed_price.Type: object

intent.price.rfc.signed_price.Required fields: none

- intent.price.rfc.signed_price.closestPauseAt (integer; optional)

intent.price.rfc.signed_price.closestPauseAt example: 0

intent.price.rfc.signed_price.closestPauseAt.Type: integer

- intent.price.rfc.signed_price.closestUnpauseAt (integer; optional)

intent.price.rfc.signed_price.closestUnpauseAt example: 0

intent.price.rfc.signed_price.closestUnpauseAt.Type: integer

- intent.price.rfc.signed_price.feed (string; optional)

intent.price.rfc.signed_price.feed example: string

intent.price.rfc.signed_price.feed.Type: string

- intent.price.rfc.signed_price.inPause (boolean; optional)

intent.price.rfc.signed_price.inPause example: true

intent.price.rfc.signed_price.inPause.Type: boolean

- intent.price.rfc.signed_price.isOnline (boolean; optional)

intent.price.rfc.signed_price.isOnline example: true

intent.price.rfc.signed_price.isOnline.Type: boolean

- intent.price.rfc.signed_price.k (integer; optional)

intent.price.rfc.signed_price.k example: 0

intent.price.rfc.signed_price.k.Type: integer

- intent.price.rfc.signed_price.marketDepthLong (integer; optional)

intent.price.rfc.signed_price.marketDepthLong example: 0

intent.price.rfc.signed_price.marketDepthLong.Type: integer

- intent.price.rfc.signed_price.marketDepthShort (integer; optional)

intent.price.rfc.signed_price.marketDepthShort example: 0

intent.price.rfc.signed_price.marketDepthShort.Type: integer

- intent.price.rfc.signed_price.pauseAt (integer; optional)

intent.price.rfc.signed_price.pauseAt example: 0

intent.price.rfc.signed_price.pauseAt.Type: integer

- intent.price.rfc.signed_price.pausedAt (integer; optional)

intent.price.rfc.signed_price.pausedAt example: 0

intent.price.rfc.signed_price.pausedAt.Type: integer

- intent.price.rfc.signed_price.price (integer; optional)

intent.price.rfc.signed_price.price example: 0

intent.price.rfc.signed_price.price.Type: integer

- intent.price.rfc.signed_price.result_message (object; optional)

intent.price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intent.price.rfc.signed_price.result_message.Type: object

intent.price.rfc.signed_price.result_message.Required fields: none

- intent.price.rfc.signed_price.result_message.price_ref (string; optional)

intent.price.rfc.signed_price.result_message.price_ref example: string

intent.price.rfc.signed_price.result_message.price_ref.Type: string

- intent.price.rfc.signed_price.result_message.signatures_ref (string; optional)

intent.price.rfc.signed_price.result_message.signatures_ref example: string

intent.price.rfc.signed_price.result_message.signatures_ref.Type: string

- intent.price.rfc.signed_price.slot (integer; optional)

intent.price.rfc.signed_price.slot example: 0

intent.price.rfc.signed_price.slot.Type: integer

- intent.price.rfc.signed_price.spread (integer; optional)

intent.price.rfc.signed_price.spread example: 0

intent.price.rfc.signed_price.spread.Type: integer

- intent.price.rfc.signed_price.status (string; optional)

intent.price.rfc.signed_price.status example: string

intent.price.rfc.signed_price.status.Type: string

- intent.price.rfc.signed_price.timestamp (integer; optional)

intent.price.rfc.signed_price.timestamp example: 0

intent.price.rfc.signed_price.timestamp.Type: integer

- intent.price.rfc.signed_price.unpauseAt (integer; optional)

intent.price.rfc.signed_price.unpauseAt example: 0

intent.price.rfc.signed_price.unpauseAt.Type: integer

- intent.price.rfc.velocity_debt (integer; optional)

intent.price.rfc.velocity_debt example: 0

intent.price.rfc.velocity_debt.Type: integer

intent.price.rfc.velocity_debt.Velocity calculation results

- intent.price.settlement (object; optional)

intent.price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.settlement.Schema: Trading.oracle.LatestResponse

intent.price.settlement.Type: object

intent.price.settlement.Required fields: none

- intent.price.settlement.closestPauseAt (integer; optional)

intent.price.settlement.closestPauseAt example: 0

intent.price.settlement.closestPauseAt.Type: integer

- intent.price.settlement.closestUnpauseAt (integer; optional)

intent.price.settlement.closestUnpauseAt example: 0

intent.price.settlement.closestUnpauseAt.Type: integer

- intent.price.settlement.feed (string; optional)

intent.price.settlement.feed example: string

intent.price.settlement.feed.Type: string

- intent.price.settlement.inPause (boolean; optional)

intent.price.settlement.inPause example: true

intent.price.settlement.inPause.Type: boolean

- intent.price.settlement.isOnline (boolean; optional)

intent.price.settlement.isOnline example: true

intent.price.settlement.isOnline.Type: boolean

- intent.price.settlement.k (integer; optional)

intent.price.settlement.k example: 0

intent.price.settlement.k.Type: integer

- intent.price.settlement.marketDepthLong (integer; optional)

intent.price.settlement.marketDepthLong example: 0

intent.price.settlement.marketDepthLong.Type: integer

- intent.price.settlement.marketDepthShort (integer; optional)

intent.price.settlement.marketDepthShort example: 0

intent.price.settlement.marketDepthShort.Type: integer

- intent.price.settlement.pauseAt (integer; optional)

intent.price.settlement.pauseAt example: 0

intent.price.settlement.pauseAt.Type: integer

- intent.price.settlement.pausedAt (integer; optional)

intent.price.settlement.pausedAt example: 0

intent.price.settlement.pausedAt.Type: integer

- intent.price.settlement.price (integer; optional)

intent.price.settlement.price example: 0

intent.price.settlement.price.Type: integer

- intent.price.settlement.result_message (object; optional)

intent.price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intent.price.settlement.result_message.Type: object

intent.price.settlement.result_message.Required fields: none

- intent.price.settlement.result_message.price_ref (string; optional)

intent.price.settlement.result_message.price_ref example: string

intent.price.settlement.result_message.price_ref.Type: string

- intent.price.settlement.result_message.signatures_ref (string; optional)

intent.price.settlement.result_message.signatures_ref example: string

intent.price.settlement.result_message.signatures_ref.Type: string

- intent.price.settlement.slot (integer; optional)

intent.price.settlement.slot example: 0

intent.price.settlement.slot.Type: integer

- intent.price.settlement.spread (integer; optional)

intent.price.settlement.spread example: 0

intent.price.settlement.spread.Type: integer

- intent.price.settlement.status (string; optional)

intent.price.settlement.status example: string

intent.price.settlement.status.Type: string

- intent.price.settlement.timestamp (integer; optional)

intent.price.settlement.timestamp example: 0

intent.price.settlement.timestamp.Type: integer

- intent.price.settlement.unpauseAt (integer; optional)

intent.price.settlement.unpauseAt example: 0

intent.price.settlement.unpauseAt.Type: integer

- intent.price.timestamp (string; optional)

intent.price.timestamp example: string

intent.price.timestamp.Type: string

- intent.smart_account (object; optional)

intent.smart_account example: {}

intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.smart_account.Type: object

- intent.vault (object; optional)

intent.vault example: {}

intent.vault.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.vault.Type: object

- intent_hash (string; optional)

intent_hash example: string

intent_hash.Type: string

- ok (boolean; optional)

ok example: true

ok.Type: boolean

- trace (object; optional)

trace example: {
  "contract_exit_code": 0,
  "error_contract_interface": "string",
  "execution_snapshot": {
    "accounts": {
      "key": {
        "account_state": {},
        "is_active": true,
        "last_tx_hash": [
          0
        ],
        "last_tx_lt": 0,
        "rawAccount": {
          "code": {},
          "data": {},
          "isActive": true,
          "lastTxHash": [
            0
          ],
          "lastTxLT": 0,
          "state": {
            "address": {},
            "balance": {},
            "extraCurrencies": {},
            "isValid": true,
            "lastTransactionLT": 0,
            "stateHash": [
              0
            ],
            "stateInit": {
              "code": {},
              "data": {},
              "depth": 0,
              "lib": {},
              "tickTock": {
                "tick": true,
                "tock": true
              }
            },
            "status": "string",
            "storageInfo": {
              "duePayment": {},
              "lastPaid": 0,
              "storageUsed": {
                "bitsUsed": {},
                "cellsUsed": {}
              }
            }
          }
        }
      }
    }
  },
  "exit_code": 0,
  "intents": [],
  "logs": [
    {
      "additional_data": {
        "index_price": {}
      },
      "executor_fee_amount": {},
      "executor_fee_rate": 0,
      "fee_to_stakers_percent": 0,
      "funding_payment": 0,
      "last_updated_cpf": 0,
      "log_type": 0,
      "margin": {},
      "open_notional": {},
      "position_fee_amount": {},
      "position_fee_rate": 0,
      "realized_pnl": 0,
      "rollover_fee": 0,
      "size": {}
    }
  ],
  "prices": [],
  "smart_account_state_end": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  },
  "update_position": {
    "jetton_minter": {},
    "notification_payload": {
      "amm_address": {},
      "balance_delta": {},
      "bundle_sender_address": {},
      "direction": 0,
      "position_state": {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    },
    "query_id": 0
  }
}

trace.Schema: Trading.types.TraceResult

trace.Type: object

trace.Required fields: none

- trace.contract_exit_code (integer; optional)

trace.contract_exit_code example: 0

trace.contract_exit_code.Type: integer

trace.contract_exit_code.in try/catch on amm

- trace.error_contract_interface (string; optional)

trace.error_contract_interface example: string

trace.error_contract_interface.Type: string

- trace.execution_snapshot (object; optional)

trace.execution_snapshot example: {
  "accounts": {
    "key": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    }
  }
}

trace.execution_snapshot.Schema: Trading.types.ExecutionSnapshot

trace.execution_snapshot.Type: object

trace.execution_snapshot.Required fields: none

- trace.execution_snapshot.accounts (object; optional)

trace.execution_snapshot.accounts example: {
  "key": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  }
}

trace.execution_snapshot.accounts.Type: object

trace.execution_snapshot.accounts.*.Schema: Trading.types.AccountSnapshot

trace.execution_snapshot.accounts.*.Type: object

trace.execution_snapshot.accounts.*.Required fields: none

- trace.execution_snapshot.accounts.*.account_state (object; optional)

trace.execution_snapshot.accounts.*.account_state example: {}

trace.execution_snapshot.accounts.*.account_state.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.account_state.Type: object

- trace.execution_snapshot.accounts.*.is_active (boolean; optional)

trace.execution_snapshot.accounts.*.is_active example: true

trace.execution_snapshot.accounts.*.is_active.Type: boolean

- trace.execution_snapshot.accounts.*.last_tx_hash (integer[]; optional)

trace.execution_snapshot.accounts.*.last_tx_hash example: [
  0
]

trace.execution_snapshot.accounts.*.last_tx_hash.Type: integer[]

trace.execution_snapshot.accounts.*.last_tx_hash.[]Type: integer

- trace.execution_snapshot.accounts.*.last_tx_lt (integer; optional)

trace.execution_snapshot.accounts.*.last_tx_lt example: 0

trace.execution_snapshot.accounts.*.last_tx_lt.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount (object; optional)

trace.execution_snapshot.accounts.*.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

trace.execution_snapshot.accounts.*.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

trace.execution_snapshot.accounts.*.rawAccount.Type: object

trace.execution_snapshot.accounts.*.rawAccount.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.code (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.code example: {}

trace.execution_snapshot.accounts.*.rawAccount.code.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.code.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.data (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.data example: {}

trace.execution_snapshot.accounts.*.rawAccount.data.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.data.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.isActive (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.isActive example: true

trace.execution_snapshot.accounts.*.rawAccount.isActive.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.lastTxHash (integer · int32[]; optional)

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash example: [
  0
]

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.Type: integer · int32[]

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]Type: integer · int32

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]format: int32

- trace.execution_snapshot.accounts.*.rawAccount.lastTxLT (integer · int64; optional)

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT example: 0

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.Type: integer · int64

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.format: int64

- trace.execution_snapshot.accounts.*.rawAccount.state (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

trace.execution_snapshot.accounts.*.rawAccount.state.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.address (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.address example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.execution_snapshot.accounts.*.rawAccount.state.address.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.balance (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.balance example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.execution_snapshot.accounts.*.rawAccount.state.balance.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.isValid (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.isValid example: true

trace.execution_snapshot.accounts.*.rawAccount.state.isValid.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT (integer · int64; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.Type: integer · int64

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.format: int64

- trace.execution_snapshot.accounts.*.rawAccount.state.stateHash (integer · int32[]; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash example: [
  0
]

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.Type: integer · int32[]

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.has value when frozen

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]Type: integer · int32

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]format: int32

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.has value when active

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.allOf variant 1

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth (integer; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick example: true

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock example: true

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.status (string; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.status example: string

trace.execution_snapshot.accounts.*.rawAccount.state.status.Type: string

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid (integer; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra (any; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra.Type: any

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- trace.exit_code (integer; optional)

trace.exit_code example: 0

trace.exit_code.Type: integer

trace.exit_code.in compute action/phase

- trace.intents (any[]; optional)

trace.intents example: []

trace.intents.Type: any[]

trace.intents.[]Type: any

- trace.logs (object[]; optional)

trace.logs example: [
  {
    "additional_data": {
      "index_price": {}
    },
    "executor_fee_amount": {},
    "executor_fee_rate": 0,
    "fee_to_stakers_percent": 0,
    "funding_payment": 0,
    "last_updated_cpf": 0,
    "log_type": 0,
    "margin": {},
    "open_notional": {},
    "position_fee_amount": {},
    "position_fee_rate": 0,
    "realized_pnl": 0,
    "rollover_fee": 0,
    "size": {}
  }
]

trace.logs.Type: object[]

trace.logs.[]Schema: Trading.vamm.IntentLog

trace.logs.[]Type: object

trace.logs.[]Required fields: none

- trace.logs.[]additional_data (object; optional)

trace.logs.[]additional_data example: {
  "index_price": {}
}

trace.logs.[]additional_data.Schema: Trading.vamm.AdditionalLogData

trace.logs.[]additional_data.Type: object

trace.logs.[]additional_data.Required fields: none

- trace.logs.[]additional_data.index_price (object; optional)

trace.logs.[]additional_data.index_price example: {}

trace.logs.[]additional_data.index_price.Type: object

trace.logs.[]additional_data.index_price.real price of execution, for guaranteed SL/TP/LIQUIDATE/MAX_PNL

trace.logs.[]additional_data.index_price.allOf variant 1

trace.logs.[]additional_data.index_price.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]additional_data.index_price.Type: object

- trace.logs.[]executor_fee_amount (object; optional)

trace.logs.[]executor_fee_amount example: {}

trace.logs.[]executor_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]executor_fee_amount.Type: object

- trace.logs.[]executor_fee_rate (integer; optional)

trace.logs.[]executor_fee_rate example: 0

trace.logs.[]executor_fee_rate.Type: integer

- trace.logs.[]fee_to_stakers_percent (integer; optional)

trace.logs.[]fee_to_stakers_percent example: 0

trace.logs.[]fee_to_stakers_percent.Type: integer

- trace.logs.[]funding_payment (integer; optional)

trace.logs.[]funding_payment example: 0

trace.logs.[]funding_payment.Type: integer

- trace.logs.[]last_updated_cpf (integer; optional)

trace.logs.[]last_updated_cpf example: 0

trace.logs.[]last_updated_cpf.Type: integer

- trace.logs.[]log_type (integer · int32 · enum; optional)

trace.logs.[]log_type example: 0

trace.logs.[]log_type.Schema: Trading.vamm.LogType

trace.logs.[]log_type.Type: integer · int32 · enum

trace.logs.[]log_type.Allowed values: [0,1,2,3]

trace.logs.[]log_type.format: int32

- trace.logs.[]margin (object; optional)

trace.logs.[]margin example: {}

trace.logs.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]margin.Type: object

- trace.logs.[]open_notional (object; optional)

trace.logs.[]open_notional example: {}

trace.logs.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]open_notional.Type: object

- trace.logs.[]position_fee_amount (object; optional)

trace.logs.[]position_fee_amount example: {}

trace.logs.[]position_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]position_fee_amount.Type: object

- trace.logs.[]position_fee_rate (integer; optional)

trace.logs.[]position_fee_rate example: 0

trace.logs.[]position_fee_rate.Type: integer

- trace.logs.[]realized_pnl (integer; optional)

trace.logs.[]realized_pnl example: 0

trace.logs.[]realized_pnl.Type: integer

- trace.logs.[]rollover_fee (integer; optional)

trace.logs.[]rollover_fee example: 0

trace.logs.[]rollover_fee.Type: integer

- trace.logs.[]size (object; optional)

trace.logs.[]size example: {}

trace.logs.[]size.Schema: Trading.big.Int

trace.logs.[]size.Type: object

- trace.prices (any[]; optional)

trace.prices example: []

trace.prices.Type: any[]

trace.prices.[]Type: any

- trace.smart_account_state_end (object; optional)

trace.smart_account_state_end example: {
  "account_state": {},
  "is_active": true,
  "last_tx_hash": [
    0
  ],
  "last_tx_lt": 0,
  "rawAccount": {
    "code": {},
    "data": {},
    "isActive": true,
    "lastTxHash": [
      0
    ],
    "lastTxLT": 0,
    "state": {
      "address": {},
      "balance": {},
      "extraCurrencies": {},
      "isValid": true,
      "lastTransactionLT": 0,
      "stateHash": [
        0
      ],
      "stateInit": {
        "code": {},
        "data": {},
        "depth": 0,
        "lib": {},
        "tickTock": {
          "tick": true,
          "tock": true
        }
      },
      "status": "string",
      "storageInfo": {
        "duePayment": {},
        "lastPaid": 0,
        "storageUsed": {
          "bitsUsed": {},
          "cellsUsed": {}
        }
      }
    }
  }
}

trace.smart_account_state_end.Schema: Trading.types.AccountSnapshot

trace.smart_account_state_end.Type: object

trace.smart_account_state_end.Required fields: none

- trace.smart_account_state_end.account_state (object; optional)

trace.smart_account_state_end.account_state example: {}

trace.smart_account_state_end.account_state.Schema: Trading.cell.Cell

trace.smart_account_state_end.account_state.Type: object

- trace.smart_account_state_end.is_active (boolean; optional)

trace.smart_account_state_end.is_active example: true

trace.smart_account_state_end.is_active.Type: boolean

- trace.smart_account_state_end.last_tx_hash (integer[]; optional)

trace.smart_account_state_end.last_tx_hash example: [
  0
]

trace.smart_account_state_end.last_tx_hash.Type: integer[]

trace.smart_account_state_end.last_tx_hash.[]Type: integer

- trace.smart_account_state_end.last_tx_lt (integer; optional)

trace.smart_account_state_end.last_tx_lt example: 0

trace.smart_account_state_end.last_tx_lt.Type: integer

- trace.smart_account_state_end.rawAccount (object; optional)

trace.smart_account_state_end.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

trace.smart_account_state_end.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

trace.smart_account_state_end.rawAccount.Type: object

trace.smart_account_state_end.rawAccount.Required fields: none

- trace.smart_account_state_end.rawAccount.code (object; optional)

trace.smart_account_state_end.rawAccount.code example: {}

trace.smart_account_state_end.rawAccount.code.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.code.Type: object

- trace.smart_account_state_end.rawAccount.data (object; optional)

trace.smart_account_state_end.rawAccount.data example: {}

trace.smart_account_state_end.rawAccount.data.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.data.Type: object

- trace.smart_account_state_end.rawAccount.isActive (boolean; optional)

trace.smart_account_state_end.rawAccount.isActive example: true

trace.smart_account_state_end.rawAccount.isActive.Type: boolean

- trace.smart_account_state_end.rawAccount.lastTxHash (integer · int32[]; optional)

trace.smart_account_state_end.rawAccount.lastTxHash example: [
  0
]

trace.smart_account_state_end.rawAccount.lastTxHash.Type: integer · int32[]

trace.smart_account_state_end.rawAccount.lastTxHash.[]Type: integer · int32

trace.smart_account_state_end.rawAccount.lastTxHash.[]format: int32

- trace.smart_account_state_end.rawAccount.lastTxLT (integer · int64; optional)

trace.smart_account_state_end.rawAccount.lastTxLT example: 0

trace.smart_account_state_end.rawAccount.lastTxLT.Type: integer · int64

trace.smart_account_state_end.rawAccount.lastTxLT.format: int64

- trace.smart_account_state_end.rawAccount.state (object; optional)

trace.smart_account_state_end.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

trace.smart_account_state_end.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

trace.smart_account_state_end.rawAccount.state.Type: object

trace.smart_account_state_end.rawAccount.state.Required fields: none

- trace.smart_account_state_end.rawAccount.state.address (object; optional)

trace.smart_account_state_end.rawAccount.state.address example: {}

trace.smart_account_state_end.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.smart_account_state_end.rawAccount.state.address.Type: object

- trace.smart_account_state_end.rawAccount.state.balance (object; optional)

trace.smart_account_state_end.rawAccount.state.balance example: {}

trace.smart_account_state_end.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.smart_account_state_end.rawAccount.state.balance.Type: object

- trace.smart_account_state_end.rawAccount.state.extraCurrencies (object; optional)

trace.smart_account_state_end.rawAccount.state.extraCurrencies example: {}

trace.smart_account_state_end.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

trace.smart_account_state_end.rawAccount.state.extraCurrencies.Type: object

- trace.smart_account_state_end.rawAccount.state.isValid (boolean; optional)

trace.smart_account_state_end.rawAccount.state.isValid example: true

trace.smart_account_state_end.rawAccount.state.isValid.Type: boolean

- trace.smart_account_state_end.rawAccount.state.lastTransactionLT (integer · int64; optional)

trace.smart_account_state_end.rawAccount.state.lastTransactionLT example: 0

trace.smart_account_state_end.rawAccount.state.lastTransactionLT.Type: integer · int64

trace.smart_account_state_end.rawAccount.state.lastTransactionLT.format: int64

- trace.smart_account_state_end.rawAccount.state.stateHash (integer · int32[]; optional)

trace.smart_account_state_end.rawAccount.state.stateHash example: [
  0
]

trace.smart_account_state_end.rawAccount.state.stateHash.Type: integer · int32[]

trace.smart_account_state_end.rawAccount.state.stateHash.has value when frozen

trace.smart_account_state_end.rawAccount.state.stateHash.[]Type: integer · int32

trace.smart_account_state_end.rawAccount.state.stateHash.[]format: int32

- trace.smart_account_state_end.rawAccount.state.stateInit (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.has value when active

trace.smart_account_state_end.rawAccount.state.stateInit.allOf variant 1

trace.smart_account_state_end.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.Required fields: none

- trace.smart_account_state_end.rawAccount.state.stateInit.code (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.code example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.state.stateInit.code.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.data (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.data example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.state.stateInit.data.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.depth (integer; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.depth example: 0

trace.smart_account_state_end.rawAccount.state.stateInit.depth.Type: integer

- trace.smart_account_state_end.rawAccount.state.stateInit.lib (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.lib example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

trace.smart_account_state_end.rawAccount.state.stateInit.lib.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Required fields: none

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick example: true

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock example: true

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- trace.smart_account_state_end.rawAccount.state.status (string; optional)

trace.smart_account_state_end.rawAccount.state.status example: string

trace.smart_account_state_end.rawAccount.state.status.Type: string

- trace.smart_account_state_end.rawAccount.state.storageInfo (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

trace.smart_account_state_end.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

trace.smart_account_state_end.rawAccount.state.storageInfo.Type: object

trace.smart_account_state_end.rawAccount.state.storageInfo.Required fields: none

- trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Type: object

- trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid (integer; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid example: 0

trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid.Type: integer

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra (any; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra.Type: any

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Type: object

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Required fields: none

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- trace.update_position (object; optional)

trace.update_position example: {
  "jetton_minter": {},
  "notification_payload": {
    "amm_address": {},
    "balance_delta": {},
    "bundle_sender_address": {},
    "direction": 0,
    "position_state": {
      "direction": 0,
      "discount": 0,
      "fee": 0,
      "last_updated_cumulative_premium": 0,
      "last_updated_timestamp": 0,
      "margin": {},
      "open_notional": {},
      "rebate": 0,
      "size": {}
    }
  },
  "query_id": 0
}

trace.update_position.Schema: Trading.smartaccount.NotifyUpdatePosition

trace.update_position.Type: object

trace.update_position.Required fields: none

- trace.update_position.jetton_minter (object; optional)

trace.update_position.jetton_minter example: {}

trace.update_position.jetton_minter.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.jetton_minter.Type: object

- trace.update_position.notification_payload (object; optional)

trace.update_position.notification_payload example: {
  "amm_address": {},
  "balance_delta": {},
  "bundle_sender_address": {},
  "direction": 0,
  "position_state": {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
}

trace.update_position.notification_payload.Schema: Trading.smartaccount.NotificationPayload

trace.update_position.notification_payload.Type: object

trace.update_position.notification_payload.Required fields: none

- trace.update_position.notification_payload.amm_address (object; optional)

trace.update_position.notification_payload.amm_address example: {}

trace.update_position.notification_payload.amm_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.notification_payload.amm_address.Type: object

- trace.update_position.notification_payload.balance_delta (object; optional)

trace.update_position.notification_payload.balance_delta example: {}

trace.update_position.notification_payload.balance_delta.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.balance_delta.Type: object

- trace.update_position.notification_payload.bundle_sender_address (object; optional)

trace.update_position.notification_payload.bundle_sender_address example: {}

trace.update_position.notification_payload.bundle_sender_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.notification_payload.bundle_sender_address.Type: object

- trace.update_position.notification_payload.direction (integer; optional)

trace.update_position.notification_payload.direction example: 0

trace.update_position.notification_payload.direction.Type: integer

- trace.update_position.notification_payload.position_state (object; optional)

trace.update_position.notification_payload.position_state example: {
  "direction": 0,
  "discount": 0,
  "fee": 0,
  "last_updated_cumulative_premium": 0,
  "last_updated_timestamp": 0,
  "margin": {},
  "open_notional": {},
  "rebate": 0,
  "size": {}
}

trace.update_position.notification_payload.position_state.Schema: Trading.schemas.PositionState

trace.update_position.notification_payload.position_state.Type: object

trace.update_position.notification_payload.position_state.Required fields: none

- trace.update_position.notification_payload.position_state.direction (integer; optional)

trace.update_position.notification_payload.position_state.direction example: 0

trace.update_position.notification_payload.position_state.direction.Type: integer

- trace.update_position.notification_payload.position_state.discount (integer; optional)

trace.update_position.notification_payload.position_state.discount example: 0

trace.update_position.notification_payload.position_state.discount.Type: integer

- trace.update_position.notification_payload.position_state.fee (integer; optional)

trace.update_position.notification_payload.position_state.fee example: 0

trace.update_position.notification_payload.position_state.fee.Type: integer

- trace.update_position.notification_payload.position_state.last_updated_cumulative_premium (integer; optional)

trace.update_position.notification_payload.position_state.last_updated_cumulative_premium example: 0

trace.update_position.notification_payload.position_state.last_updated_cumulative_premium.Type: integer

- trace.update_position.notification_payload.position_state.last_updated_timestamp (integer; optional)

trace.update_position.notification_payload.position_state.last_updated_timestamp example: 0

trace.update_position.notification_payload.position_state.last_updated_timestamp.Type: integer

- trace.update_position.notification_payload.position_state.margin (object; optional)

trace.update_position.notification_payload.position_state.margin example: {}

trace.update_position.notification_payload.position_state.margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.position_state.margin.Type: object

- trace.update_position.notification_payload.position_state.open_notional (object; optional)

trace.update_position.notification_payload.position_state.open_notional example: {}

trace.update_position.notification_payload.position_state.open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.position_state.open_notional.Type: object

- trace.update_position.notification_payload.position_state.rebate (integer; optional)

trace.update_position.notification_payload.position_state.rebate example: 0

trace.update_position.notification_payload.position_state.rebate.Type: integer

- trace.update_position.notification_payload.position_state.size (object; optional)

trace.update_position.notification_payload.position_state.size example: {}

trace.update_position.notification_payload.position_state.size.Schema: Trading.big.Int

trace.update_position.notification_payload.position_state.size.Type: object

- trace.update_position.query_id (integer; optional)

trace.update_position.query_id example: 0

trace.update_position.query_id.Type: integer

Example



```json
{
  "accepted": true,
  "intent": {
    "action_phase": "string",
    "builder": {},
    "created_price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "date": "string",
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "market": {},
    "order": {},
    "order_requests": [
      {
        "full_message": {
          "message": {
            "created_at": 0,
            "intent": {
              "order": {},
              "smart_account": {},
              "v_amm": {}
            },
            "public_key": [
              0
            ],
            "query_id": {
              "bit_number": 0,
              "shift": 0
            },
            "reference_query_id": {
              "bit_number": 0,
              "shift": 0
            }
          },
          "public_key": "string",
          "signature": [
            0
          ]
        },
        "hash": [
          0
        ],
        "order_request": {
          "selector": 0
        },
        "order_request_hash": [
          0
        ],
        "smart_account": {}
      }
    ],
    "payment_mode": 0,
    "price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "smart_account": {},
    "vault": {}
  },
  "intent_hash": "string",
  "ok": true,
  "trace": {
    "contract_exit_code": 0,
    "error_contract_interface": "string",
    "execution_snapshot": {
      "accounts": {
        "key": {
          "account_state": {},
          "is_active": true,
          "last_tx_hash": [
            0
          ],
          "last_tx_lt": 0,
          "rawAccount": {
            "code": {},
            "data": {},
            "isActive": true,
            "lastTxHash": [
              0
            ],
            "lastTxLT": 0,
            "state": {
              "address": {},
              "balance": {},
              "extraCurrencies": {},
              "isValid": true,
              "lastTransactionLT": 0,
              "stateHash": [
                0
              ],
              "stateInit": {
                "code": {},
                "data": {},
                "depth": 0,
                "lib": {},
                "tickTock": {
                  "tick": true,
                  "tock": true
                }
              },
              "status": "string",
              "storageInfo": {
                "duePayment": {},
                "lastPaid": 0,
                "storageUsed": {
                  "bitsUsed": {},
                  "cellsUsed": {}
                }
              }
            }
          }
        }
      }
    },
    "exit_code": 0,
    "intents": [],
    "logs": [
      {
        "additional_data": {
          "index_price": {}
        },
        "executor_fee_amount": {},
        "executor_fee_rate": 0,
        "fee_to_stakers_percent": 0,
        "funding_payment": 0,
        "last_updated_cpf": 0,
        "log_type": 0,
        "margin": {},
        "open_notional": {},
        "position_fee_amount": {},
        "position_fee_rate": 0,
        "realized_pnl": 0,
        "rollover_fee": 0,
        "size": {}
      }
    ],
    "prices": [],
    "smart_account_state_end": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    },
    "update_position": {
      "jetton_minter": {},
      "notification_payload": {
        "amm_address": {},
        "balance_delta": {},
        "bundle_sender_address": {},
        "direction": 0,
        "position_state": {
          "direction": 0,
          "discount": 0,
          "fee": 0,
          "last_updated_cumulative_premium": 0,
          "last_updated_timestamp": 0,
          "margin": {},
          "open_notional": {},
          "rebate": 0,
          "size": {}
        }
      },
      "query_id": 0
    }
  }
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Cancel an order

Source: https://docs.storm.tg/developers/operations/cancelorder

# Cancel an order

`POST /v3-node-0/order/cancel`

Cancels an existing order using a signed cancel message

## Authorization



## Parameters



## Request body · Trading.api.MessageCancelOrder

application/json · required

Cancel order request with signature

Schema: Trading.api.MessageCancelOrder

Type: object

Required fields: none

- message (string; optional)

message example: string

message.Type: string

message.base64 str

- public_key (string; optional)

public_key example: string

public_key.Type: string

public_key.base64 str

- sa (string; optional)

sa example: string

sa.Type: string

- signature (string; optional)

signature example: string

signature.Type: string

signature.base64 str

Example



```json
{}
```

## Example · cURL

```bash
curl --request POST 'https://api.storm.tg/v3-node-0/order/cancel' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-raw '{}'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/order/cancel", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: "{}",
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "POST",
    "https://api.storm.tg/v3-node-0/order/cancel",
    headers={"Accept":"application/json","Content-Type":"application/json"},
    data="{}",
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.MessageSendResponse

**200** application/json — OK

Schema: Trading.api.MessageSendResponse

Type: object

Required fields: none

- accepted (boolean; optional)

accepted example: true

accepted.Type: boolean

- intent (object; optional)

intent example: {
  "action_phase": "string",
  "builder": {},
  "created_price": {
    "created_at": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "index": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "rfc": {
      "effective_depth": 0,
      "original_k": 0,
      "original_market_depth_long": 0,
      "original_market_depth_short": 0,
      "original_spread": 0,
      "recovery_rate": 0,
      "signed_price": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "velocity_debt": 0
    },
    "settlement": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "timestamp": "string"
  },
  "date": "string",
  "full_message": {
    "message": {
      "created_at": 0,
      "intent": {
        "order": {},
        "smart_account": {},
        "v_amm": {}
      },
      "public_key": [
        0
      ],
      "query_id": {
        "bit_number": 0,
        "shift": 0
      },
      "reference_query_id": {
        "bit_number": 0,
        "shift": 0
      }
    },
    "public_key": "string",
    "signature": [
      0
    ]
  },
  "hash": [
    0
  ],
  "market": {},
  "order": {},
  "order_requests": [
    {
      "full_message": {
        "message": {
          "created_at": 0,
          "intent": {
            "order": {},
            "smart_account": {},
            "v_amm": {}
          },
          "public_key": [
            0
          ],
          "query_id": {
            "bit_number": 0,
            "shift": 0
          },
          "reference_query_id": {
            "bit_number": 0,
            "shift": 0
          }
        },
        "public_key": "string",
        "signature": [
          0
        ]
      },
      "hash": [
        0
      ],
      "order_request": {
        "selector": 0
      },
      "order_request_hash": [
        0
      ],
      "smart_account": {}
    }
  ],
  "payment_mode": 0,
  "price": {
    "created_at": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "index": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "rfc": {
      "effective_depth": 0,
      "original_k": 0,
      "original_market_depth_long": 0,
      "original_market_depth_short": 0,
      "original_spread": 0,
      "recovery_rate": 0,
      "signed_price": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "velocity_debt": 0
    },
    "settlement": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "timestamp": "string"
  },
  "smart_account": {},
  "vault": {}
}

intent.Schema: Trading.types.SettledAction

intent.Type: object

intent.Required fields: none

- intent.action_phase (string; optional)

intent.action_phase example: string

intent.action_phase.Type: string

- intent.builder (object; optional)

intent.builder example: {}

intent.builder.Type: object

intent.builder.Builder is the third-party UI that submitted this intent (unsigned envelope,
like PaymentMode). Earns a rebate only if registered+active. nil = none.

intent.builder.allOf variant 1

intent.builder.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.builder.Type: object

- intent.created_price (object; optional)

intent.created_price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intent.created_price.Schema: Trading.oracle.PriceSigned

intent.created_price.Type: object

intent.created_price.Required fields: none

- intent.created_price.created_at (object; optional)

intent.created_price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.created_at.Schema: Trading.oracle.LatestResponse

intent.created_price.created_at.Type: object

intent.created_price.created_at.Required fields: none

- intent.created_price.created_at.closestPauseAt (integer; optional)

intent.created_price.created_at.closestPauseAt example: 0

intent.created_price.created_at.closestPauseAt.Type: integer

- intent.created_price.created_at.closestUnpauseAt (integer; optional)

intent.created_price.created_at.closestUnpauseAt example: 0

intent.created_price.created_at.closestUnpauseAt.Type: integer

- intent.created_price.created_at.feed (string; optional)

intent.created_price.created_at.feed example: string

intent.created_price.created_at.feed.Type: string

- intent.created_price.created_at.inPause (boolean; optional)

intent.created_price.created_at.inPause example: true

intent.created_price.created_at.inPause.Type: boolean

- intent.created_price.created_at.isOnline (boolean; optional)

intent.created_price.created_at.isOnline example: true

intent.created_price.created_at.isOnline.Type: boolean

- intent.created_price.created_at.k (integer; optional)

intent.created_price.created_at.k example: 0

intent.created_price.created_at.k.Type: integer

- intent.created_price.created_at.marketDepthLong (integer; optional)

intent.created_price.created_at.marketDepthLong example: 0

intent.created_price.created_at.marketDepthLong.Type: integer

- intent.created_price.created_at.marketDepthShort (integer; optional)

intent.created_price.created_at.marketDepthShort example: 0

intent.created_price.created_at.marketDepthShort.Type: integer

- intent.created_price.created_at.pauseAt (integer; optional)

intent.created_price.created_at.pauseAt example: 0

intent.created_price.created_at.pauseAt.Type: integer

- intent.created_price.created_at.pausedAt (integer; optional)

intent.created_price.created_at.pausedAt example: 0

intent.created_price.created_at.pausedAt.Type: integer

- intent.created_price.created_at.price (integer; optional)

intent.created_price.created_at.price example: 0

intent.created_price.created_at.price.Type: integer

- intent.created_price.created_at.result_message (object; optional)

intent.created_price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.created_at.result_message.Type: object

intent.created_price.created_at.result_message.Required fields: none

- intent.created_price.created_at.result_message.price_ref (string; optional)

intent.created_price.created_at.result_message.price_ref example: string

intent.created_price.created_at.result_message.price_ref.Type: string

- intent.created_price.created_at.result_message.signatures_ref (string; optional)

intent.created_price.created_at.result_message.signatures_ref example: string

intent.created_price.created_at.result_message.signatures_ref.Type: string

- intent.created_price.created_at.slot (integer; optional)

intent.created_price.created_at.slot example: 0

intent.created_price.created_at.slot.Type: integer

- intent.created_price.created_at.spread (integer; optional)

intent.created_price.created_at.spread example: 0

intent.created_price.created_at.spread.Type: integer

- intent.created_price.created_at.status (string; optional)

intent.created_price.created_at.status example: string

intent.created_price.created_at.status.Type: string

- intent.created_price.created_at.timestamp (integer; optional)

intent.created_price.created_at.timestamp example: 0

intent.created_price.created_at.timestamp.Type: integer

- intent.created_price.created_at.unpauseAt (integer; optional)

intent.created_price.created_at.unpauseAt example: 0

intent.created_price.created_at.unpauseAt.Type: integer

- intent.created_price.index (object; optional)

intent.created_price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.index.Schema: Trading.oracle.LatestResponse

intent.created_price.index.Type: object

intent.created_price.index.Required fields: none

- intent.created_price.index.closestPauseAt (integer; optional)

intent.created_price.index.closestPauseAt example: 0

intent.created_price.index.closestPauseAt.Type: integer

- intent.created_price.index.closestUnpauseAt (integer; optional)

intent.created_price.index.closestUnpauseAt example: 0

intent.created_price.index.closestUnpauseAt.Type: integer

- intent.created_price.index.feed (string; optional)

intent.created_price.index.feed example: string

intent.created_price.index.feed.Type: string

- intent.created_price.index.inPause (boolean; optional)

intent.created_price.index.inPause example: true

intent.created_price.index.inPause.Type: boolean

- intent.created_price.index.isOnline (boolean; optional)

intent.created_price.index.isOnline example: true

intent.created_price.index.isOnline.Type: boolean

- intent.created_price.index.k (integer; optional)

intent.created_price.index.k example: 0

intent.created_price.index.k.Type: integer

- intent.created_price.index.marketDepthLong (integer; optional)

intent.created_price.index.marketDepthLong example: 0

intent.created_price.index.marketDepthLong.Type: integer

- intent.created_price.index.marketDepthShort (integer; optional)

intent.created_price.index.marketDepthShort example: 0

intent.created_price.index.marketDepthShort.Type: integer

- intent.created_price.index.pauseAt (integer; optional)

intent.created_price.index.pauseAt example: 0

intent.created_price.index.pauseAt.Type: integer

- intent.created_price.index.pausedAt (integer; optional)

intent.created_price.index.pausedAt example: 0

intent.created_price.index.pausedAt.Type: integer

- intent.created_price.index.price (integer; optional)

intent.created_price.index.price example: 0

intent.created_price.index.price.Type: integer

- intent.created_price.index.result_message (object; optional)

intent.created_price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.index.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.index.result_message.Type: object

intent.created_price.index.result_message.Required fields: none

- intent.created_price.index.result_message.price_ref (string; optional)

intent.created_price.index.result_message.price_ref example: string

intent.created_price.index.result_message.price_ref.Type: string

- intent.created_price.index.result_message.signatures_ref (string; optional)

intent.created_price.index.result_message.signatures_ref example: string

intent.created_price.index.result_message.signatures_ref.Type: string

- intent.created_price.index.slot (integer; optional)

intent.created_price.index.slot example: 0

intent.created_price.index.slot.Type: integer

- intent.created_price.index.spread (integer; optional)

intent.created_price.index.spread example: 0

intent.created_price.index.spread.Type: integer

- intent.created_price.index.status (string; optional)

intent.created_price.index.status example: string

intent.created_price.index.status.Type: string

- intent.created_price.index.timestamp (integer; optional)

intent.created_price.index.timestamp example: 0

intent.created_price.index.timestamp.Type: integer

- intent.created_price.index.unpauseAt (integer; optional)

intent.created_price.index.unpauseAt example: 0

intent.created_price.index.unpauseAt.Type: integer

- intent.created_price.rfc (object; optional)

intent.created_price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intent.created_price.rfc.Type: object

intent.created_price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intent.created_price.rfc.allOf variant 1

intent.created_price.rfc.Schema: Trading.oracle.RFQResult

intent.created_price.rfc.Type: object

intent.created_price.rfc.Required fields: none

- intent.created_price.rfc.effective_depth (integer; optional)

intent.created_price.rfc.effective_depth example: 0

intent.created_price.rfc.effective_depth.Type: integer

- intent.created_price.rfc.original_k (integer; optional)

intent.created_price.rfc.original_k example: 0

intent.created_price.rfc.original_k.Type: integer

- intent.created_price.rfc.original_market_depth_long (integer; optional)

intent.created_price.rfc.original_market_depth_long example: 0

intent.created_price.rfc.original_market_depth_long.Type: integer

intent.created_price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intent.created_price.rfc.original_market_depth_short (integer; optional)

intent.created_price.rfc.original_market_depth_short example: 0

intent.created_price.rfc.original_market_depth_short.Type: integer

- intent.created_price.rfc.original_spread (integer; optional)

intent.created_price.rfc.original_spread example: 0

intent.created_price.rfc.original_spread.Type: integer

- intent.created_price.rfc.recovery_rate (number; optional)

intent.created_price.rfc.recovery_rate example: 0

intent.created_price.rfc.recovery_rate.Type: number

- intent.created_price.rfc.signed_price (object; optional)

intent.created_price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.rfc.signed_price.Type: object

intent.created_price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intent.created_price.rfc.signed_price.allOf variant 1

intent.created_price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intent.created_price.rfc.signed_price.Type: object

intent.created_price.rfc.signed_price.Required fields: none

- intent.created_price.rfc.signed_price.closestPauseAt (integer; optional)

intent.created_price.rfc.signed_price.closestPauseAt example: 0

intent.created_price.rfc.signed_price.closestPauseAt.Type: integer

- intent.created_price.rfc.signed_price.closestUnpauseAt (integer; optional)

intent.created_price.rfc.signed_price.closestUnpauseAt example: 0

intent.created_price.rfc.signed_price.closestUnpauseAt.Type: integer

- intent.created_price.rfc.signed_price.feed (string; optional)

intent.created_price.rfc.signed_price.feed example: string

intent.created_price.rfc.signed_price.feed.Type: string

- intent.created_price.rfc.signed_price.inPause (boolean; optional)

intent.created_price.rfc.signed_price.inPause example: true

intent.created_price.rfc.signed_price.inPause.Type: boolean

- intent.created_price.rfc.signed_price.isOnline (boolean; optional)

intent.created_price.rfc.signed_price.isOnline example: true

intent.created_price.rfc.signed_price.isOnline.Type: boolean

- intent.created_price.rfc.signed_price.k (integer; optional)

intent.created_price.rfc.signed_price.k example: 0

intent.created_price.rfc.signed_price.k.Type: integer

- intent.created_price.rfc.signed_price.marketDepthLong (integer; optional)

intent.created_price.rfc.signed_price.marketDepthLong example: 0

intent.created_price.rfc.signed_price.marketDepthLong.Type: integer

- intent.created_price.rfc.signed_price.marketDepthShort (integer; optional)

intent.created_price.rfc.signed_price.marketDepthShort example: 0

intent.created_price.rfc.signed_price.marketDepthShort.Type: integer

- intent.created_price.rfc.signed_price.pauseAt (integer; optional)

intent.created_price.rfc.signed_price.pauseAt example: 0

intent.created_price.rfc.signed_price.pauseAt.Type: integer

- intent.created_price.rfc.signed_price.pausedAt (integer; optional)

intent.created_price.rfc.signed_price.pausedAt example: 0

intent.created_price.rfc.signed_price.pausedAt.Type: integer

- intent.created_price.rfc.signed_price.price (integer; optional)

intent.created_price.rfc.signed_price.price example: 0

intent.created_price.rfc.signed_price.price.Type: integer

- intent.created_price.rfc.signed_price.result_message (object; optional)

intent.created_price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.rfc.signed_price.result_message.Type: object

intent.created_price.rfc.signed_price.result_message.Required fields: none

- intent.created_price.rfc.signed_price.result_message.price_ref (string; optional)

intent.created_price.rfc.signed_price.result_message.price_ref example: string

intent.created_price.rfc.signed_price.result_message.price_ref.Type: string

- intent.created_price.rfc.signed_price.result_message.signatures_ref (string; optional)

intent.created_price.rfc.signed_price.result_message.signatures_ref example: string

intent.created_price.rfc.signed_price.result_message.signatures_ref.Type: string

- intent.created_price.rfc.signed_price.slot (integer; optional)

intent.created_price.rfc.signed_price.slot example: 0

intent.created_price.rfc.signed_price.slot.Type: integer

- intent.created_price.rfc.signed_price.spread (integer; optional)

intent.created_price.rfc.signed_price.spread example: 0

intent.created_price.rfc.signed_price.spread.Type: integer

- intent.created_price.rfc.signed_price.status (string; optional)

intent.created_price.rfc.signed_price.status example: string

intent.created_price.rfc.signed_price.status.Type: string

- intent.created_price.rfc.signed_price.timestamp (integer; optional)

intent.created_price.rfc.signed_price.timestamp example: 0

intent.created_price.rfc.signed_price.timestamp.Type: integer

- intent.created_price.rfc.signed_price.unpauseAt (integer; optional)

intent.created_price.rfc.signed_price.unpauseAt example: 0

intent.created_price.rfc.signed_price.unpauseAt.Type: integer

- intent.created_price.rfc.velocity_debt (integer; optional)

intent.created_price.rfc.velocity_debt example: 0

intent.created_price.rfc.velocity_debt.Type: integer

intent.created_price.rfc.velocity_debt.Velocity calculation results

- intent.created_price.settlement (object; optional)

intent.created_price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.created_price.settlement.Schema: Trading.oracle.LatestResponse

intent.created_price.settlement.Type: object

intent.created_price.settlement.Required fields: none

- intent.created_price.settlement.closestPauseAt (integer; optional)

intent.created_price.settlement.closestPauseAt example: 0

intent.created_price.settlement.closestPauseAt.Type: integer

- intent.created_price.settlement.closestUnpauseAt (integer; optional)

intent.created_price.settlement.closestUnpauseAt example: 0

intent.created_price.settlement.closestUnpauseAt.Type: integer

- intent.created_price.settlement.feed (string; optional)

intent.created_price.settlement.feed example: string

intent.created_price.settlement.feed.Type: string

- intent.created_price.settlement.inPause (boolean; optional)

intent.created_price.settlement.inPause example: true

intent.created_price.settlement.inPause.Type: boolean

- intent.created_price.settlement.isOnline (boolean; optional)

intent.created_price.settlement.isOnline example: true

intent.created_price.settlement.isOnline.Type: boolean

- intent.created_price.settlement.k (integer; optional)

intent.created_price.settlement.k example: 0

intent.created_price.settlement.k.Type: integer

- intent.created_price.settlement.marketDepthLong (integer; optional)

intent.created_price.settlement.marketDepthLong example: 0

intent.created_price.settlement.marketDepthLong.Type: integer

- intent.created_price.settlement.marketDepthShort (integer; optional)

intent.created_price.settlement.marketDepthShort example: 0

intent.created_price.settlement.marketDepthShort.Type: integer

- intent.created_price.settlement.pauseAt (integer; optional)

intent.created_price.settlement.pauseAt example: 0

intent.created_price.settlement.pauseAt.Type: integer

- intent.created_price.settlement.pausedAt (integer; optional)

intent.created_price.settlement.pausedAt example: 0

intent.created_price.settlement.pausedAt.Type: integer

- intent.created_price.settlement.price (integer; optional)

intent.created_price.settlement.price example: 0

intent.created_price.settlement.price.Type: integer

- intent.created_price.settlement.result_message (object; optional)

intent.created_price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.created_price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intent.created_price.settlement.result_message.Type: object

intent.created_price.settlement.result_message.Required fields: none

- intent.created_price.settlement.result_message.price_ref (string; optional)

intent.created_price.settlement.result_message.price_ref example: string

intent.created_price.settlement.result_message.price_ref.Type: string

- intent.created_price.settlement.result_message.signatures_ref (string; optional)

intent.created_price.settlement.result_message.signatures_ref example: string

intent.created_price.settlement.result_message.signatures_ref.Type: string

- intent.created_price.settlement.slot (integer; optional)

intent.created_price.settlement.slot example: 0

intent.created_price.settlement.slot.Type: integer

- intent.created_price.settlement.spread (integer; optional)

intent.created_price.settlement.spread example: 0

intent.created_price.settlement.spread.Type: integer

- intent.created_price.settlement.status (string; optional)

intent.created_price.settlement.status example: string

intent.created_price.settlement.status.Type: string

- intent.created_price.settlement.timestamp (integer; optional)

intent.created_price.settlement.timestamp example: 0

intent.created_price.settlement.timestamp.Type: integer

- intent.created_price.settlement.unpauseAt (integer; optional)

intent.created_price.settlement.unpauseAt example: 0

intent.created_price.settlement.unpauseAt.Type: integer

- intent.created_price.timestamp (string; optional)

intent.created_price.timestamp example: string

intent.created_price.timestamp.Type: string

- intent.date (string; optional)

intent.date example: string

intent.date.Type: string

- intent.full_message (object; optional)

intent.full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intent.full_message.Schema: Trading.smartaccount.SignedMessage

intent.full_message.Type: object

intent.full_message.Required fields: none

- intent.full_message.message (object; optional)

intent.full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intent.full_message.message.Schema: Trading.smartaccount.UserIntent

intent.full_message.message.Type: object

intent.full_message.message.Required fields: none

- intent.full_message.message.created_at (integer; optional)

intent.full_message.message.created_at example: 0

intent.full_message.message.created_at.Type: integer

- intent.full_message.message.intent (object; optional)

intent.full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intent.full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intent.full_message.message.intent.Type: object

intent.full_message.message.intent.Required fields: none

- intent.full_message.message.intent.order (object; optional)

intent.full_message.message.intent.order example: {}

intent.full_message.message.intent.order.Schema: Trading.schemas.Order

intent.full_message.message.intent.order.Type: object

intent.full_message.message.intent.order.Required fields: none

- intent.full_message.message.intent.order.order (any; optional)

intent.full_message.message.intent.order.order.Type: any

- intent.full_message.message.intent.smart_account (object; optional)

intent.full_message.message.intent.smart_account example: {}

intent.full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.full_message.message.intent.smart_account.Type: object

- intent.full_message.message.intent.v_amm (object; optional)

intent.full_message.message.intent.v_amm example: {}

intent.full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.full_message.message.intent.v_amm.Type: object

- intent.full_message.message.public_key (integer[]; optional)

intent.full_message.message.public_key example: [
  0
]

intent.full_message.message.public_key.Type: integer[]

intent.full_message.message.public_key.pk

intent.full_message.message.public_key.[]Type: integer

- intent.full_message.message.query_id (object; optional)

intent.full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.full_message.message.query_id.Schema: Trading.hw.QueryId

intent.full_message.message.query_id.Type: object

intent.full_message.message.query_id.Required fields: none

- intent.full_message.message.query_id.bit_number (integer; optional)

intent.full_message.message.query_id.bit_number example: 0

intent.full_message.message.query_id.bit_number.Type: integer

- intent.full_message.message.query_id.shift (integer; optional)

intent.full_message.message.query_id.shift example: 0

intent.full_message.message.query_id.shift.Type: integer

- intent.full_message.message.reference_query_id (object; optional)

intent.full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intent.full_message.message.reference_query_id.Type: object

intent.full_message.message.reference_query_id.Required fields: none

- intent.full_message.message.reference_query_id.bit_number (integer; optional)

intent.full_message.message.reference_query_id.bit_number example: 0

intent.full_message.message.reference_query_id.bit_number.Type: integer

- intent.full_message.message.reference_query_id.shift (integer; optional)

intent.full_message.message.reference_query_id.shift example: 0

intent.full_message.message.reference_query_id.shift.Type: integer

- intent.full_message.public_key (string; optional)

intent.full_message.public_key example: string

intent.full_message.public_key.Type: string

- intent.full_message.signature (integer[]; optional)

intent.full_message.signature example: [
  0
]

intent.full_message.signature.Type: integer[]

intent.full_message.signature.[]Type: integer

- intent.hash (integer[]; optional)

intent.hash example: [
  0
]

intent.hash.Type: integer[]

intent.hash.[]Type: integer

- intent.market (object; optional)

intent.market example: {}

intent.market.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.market.Type: object

- intent.order (object; optional)

intent.order example: {}

intent.order.Schema: Trading.schemas.Order

intent.order.Type: object

intent.order.Required fields: none

- intent.order.order (any; optional)

intent.order.order.Type: any

- intent.order_requests (object[]; optional)

intent.order_requests example: [
  {
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "order_request": {
      "selector": 0
    },
    "order_request_hash": [
      0
    ],
    "smart_account": {}
  }
]

intent.order_requests.Type: object[]

intent.order_requests.[]Schema: Trading.types.OrderRequestIntent

intent.order_requests.[]Type: object

intent.order_requests.[]Required fields: none

- intent.order_requests.[]full_message (object; optional)

intent.order_requests.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intent.order_requests.[]full_message.Schema: Trading.smartaccount.SignedMessage

intent.order_requests.[]full_message.Type: object

intent.order_requests.[]full_message.Required fields: none

- intent.order_requests.[]full_message.message (object; optional)

intent.order_requests.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intent.order_requests.[]full_message.message.Schema: Trading.smartaccount.UserIntent

intent.order_requests.[]full_message.message.Type: object

intent.order_requests.[]full_message.message.Required fields: none

- intent.order_requests.[]full_message.message.created_at (integer; optional)

intent.order_requests.[]full_message.message.created_at example: 0

intent.order_requests.[]full_message.message.created_at.Type: integer

- intent.order_requests.[]full_message.message.intent (object; optional)

intent.order_requests.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intent.order_requests.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intent.order_requests.[]full_message.message.intent.Type: object

intent.order_requests.[]full_message.message.intent.Required fields: none

- intent.order_requests.[]full_message.message.intent.order (object; optional)

intent.order_requests.[]full_message.message.intent.order example: {}

intent.order_requests.[]full_message.message.intent.order.Schema: Trading.schemas.Order

intent.order_requests.[]full_message.message.intent.order.Type: object

intent.order_requests.[]full_message.message.intent.order.Required fields: none

- intent.order_requests.[]full_message.message.intent.order.order (any; optional)

intent.order_requests.[]full_message.message.intent.order.order.Type: any

- intent.order_requests.[]full_message.message.intent.smart_account (object; optional)

intent.order_requests.[]full_message.message.intent.smart_account example: {}

intent.order_requests.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]full_message.message.intent.smart_account.Type: object

- intent.order_requests.[]full_message.message.intent.v_amm (object; optional)

intent.order_requests.[]full_message.message.intent.v_amm example: {}

intent.order_requests.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]full_message.message.intent.v_amm.Type: object

- intent.order_requests.[]full_message.message.public_key (integer[]; optional)

intent.order_requests.[]full_message.message.public_key example: [
  0
]

intent.order_requests.[]full_message.message.public_key.Type: integer[]

intent.order_requests.[]full_message.message.public_key.pk

intent.order_requests.[]full_message.message.public_key.[]Type: integer

- intent.order_requests.[]full_message.message.query_id (object; optional)

intent.order_requests.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.order_requests.[]full_message.message.query_id.Schema: Trading.hw.QueryId

intent.order_requests.[]full_message.message.query_id.Type: object

intent.order_requests.[]full_message.message.query_id.Required fields: none

- intent.order_requests.[]full_message.message.query_id.bit_number (integer; optional)

intent.order_requests.[]full_message.message.query_id.bit_number example: 0

intent.order_requests.[]full_message.message.query_id.bit_number.Type: integer

- intent.order_requests.[]full_message.message.query_id.shift (integer; optional)

intent.order_requests.[]full_message.message.query_id.shift example: 0

intent.order_requests.[]full_message.message.query_id.shift.Type: integer

- intent.order_requests.[]full_message.message.reference_query_id (object; optional)

intent.order_requests.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intent.order_requests.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intent.order_requests.[]full_message.message.reference_query_id.Type: object

intent.order_requests.[]full_message.message.reference_query_id.Required fields: none

- intent.order_requests.[]full_message.message.reference_query_id.bit_number (integer; optional)

intent.order_requests.[]full_message.message.reference_query_id.bit_number example: 0

intent.order_requests.[]full_message.message.reference_query_id.bit_number.Type: integer

- intent.order_requests.[]full_message.message.reference_query_id.shift (integer; optional)

intent.order_requests.[]full_message.message.reference_query_id.shift example: 0

intent.order_requests.[]full_message.message.reference_query_id.shift.Type: integer

- intent.order_requests.[]full_message.public_key (string; optional)

intent.order_requests.[]full_message.public_key example: string

intent.order_requests.[]full_message.public_key.Type: string

- intent.order_requests.[]full_message.signature (integer[]; optional)

intent.order_requests.[]full_message.signature example: [
  0
]

intent.order_requests.[]full_message.signature.Type: integer[]

intent.order_requests.[]full_message.signature.[]Type: integer

- intent.order_requests.[]hash (integer[]; optional)

intent.order_requests.[]hash example: [
  0
]

intent.order_requests.[]hash.Type: integer[]

intent.order_requests.[]hash.[]Type: integer

- intent.order_requests.[]order_request (object; optional)

intent.order_requests.[]order_request example: {
  "selector": 0
}

intent.order_requests.[]order_request.Schema: Trading.schemas.OrderRequest

intent.order_requests.[]order_request.Type: object

intent.order_requests.[]order_request.Required fields: none

- intent.order_requests.[]order_request.order (any; optional)

intent.order_requests.[]order_request.order.Type: any

- intent.order_requests.[]order_request.selector (integer; optional)

intent.order_requests.[]order_request.selector example: 0

intent.order_requests.[]order_request.selector.Type: integer

- intent.order_requests.[]order_request_hash (integer[]; optional)

intent.order_requests.[]order_request_hash example: [
  0
]

intent.order_requests.[]order_request_hash.Type: integer[]

intent.order_requests.[]order_request_hash.[]Type: integer

- intent.order_requests.[]smart_account (object; optional)

intent.order_requests.[]smart_account example: {}

intent.order_requests.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.order_requests.[]smart_account.Type: object

- intent.payment_mode (integer · int32 · enum; optional)

intent.payment_mode example: 0

intent.payment_mode.Schema: Trading.types.PaymentMode

intent.payment_mode.Type: integer · int32 · enum

intent.payment_mode.Allowed values: [0,1]

intent.payment_mode.format: int32

- intent.price (object; optional)

intent.price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intent.price.Schema: Trading.oracle.PriceSigned

intent.price.Type: object

intent.price.Required fields: none

- intent.price.created_at (object; optional)

intent.price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.created_at.Schema: Trading.oracle.LatestResponse

intent.price.created_at.Type: object

intent.price.created_at.Required fields: none

- intent.price.created_at.closestPauseAt (integer; optional)

intent.price.created_at.closestPauseAt example: 0

intent.price.created_at.closestPauseAt.Type: integer

- intent.price.created_at.closestUnpauseAt (integer; optional)

intent.price.created_at.closestUnpauseAt example: 0

intent.price.created_at.closestUnpauseAt.Type: integer

- intent.price.created_at.feed (string; optional)

intent.price.created_at.feed example: string

intent.price.created_at.feed.Type: string

- intent.price.created_at.inPause (boolean; optional)

intent.price.created_at.inPause example: true

intent.price.created_at.inPause.Type: boolean

- intent.price.created_at.isOnline (boolean; optional)

intent.price.created_at.isOnline example: true

intent.price.created_at.isOnline.Type: boolean

- intent.price.created_at.k (integer; optional)

intent.price.created_at.k example: 0

intent.price.created_at.k.Type: integer

- intent.price.created_at.marketDepthLong (integer; optional)

intent.price.created_at.marketDepthLong example: 0

intent.price.created_at.marketDepthLong.Type: integer

- intent.price.created_at.marketDepthShort (integer; optional)

intent.price.created_at.marketDepthShort example: 0

intent.price.created_at.marketDepthShort.Type: integer

- intent.price.created_at.pauseAt (integer; optional)

intent.price.created_at.pauseAt example: 0

intent.price.created_at.pauseAt.Type: integer

- intent.price.created_at.pausedAt (integer; optional)

intent.price.created_at.pausedAt example: 0

intent.price.created_at.pausedAt.Type: integer

- intent.price.created_at.price (integer; optional)

intent.price.created_at.price example: 0

intent.price.created_at.price.Type: integer

- intent.price.created_at.result_message (object; optional)

intent.price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intent.price.created_at.result_message.Type: object

intent.price.created_at.result_message.Required fields: none

- intent.price.created_at.result_message.price_ref (string; optional)

intent.price.created_at.result_message.price_ref example: string

intent.price.created_at.result_message.price_ref.Type: string

- intent.price.created_at.result_message.signatures_ref (string; optional)

intent.price.created_at.result_message.signatures_ref example: string

intent.price.created_at.result_message.signatures_ref.Type: string

- intent.price.created_at.slot (integer; optional)

intent.price.created_at.slot example: 0

intent.price.created_at.slot.Type: integer

- intent.price.created_at.spread (integer; optional)

intent.price.created_at.spread example: 0

intent.price.created_at.spread.Type: integer

- intent.price.created_at.status (string; optional)

intent.price.created_at.status example: string

intent.price.created_at.status.Type: string

- intent.price.created_at.timestamp (integer; optional)

intent.price.created_at.timestamp example: 0

intent.price.created_at.timestamp.Type: integer

- intent.price.created_at.unpauseAt (integer; optional)

intent.price.created_at.unpauseAt example: 0

intent.price.created_at.unpauseAt.Type: integer

- intent.price.index (object; optional)

intent.price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.index.Schema: Trading.oracle.LatestResponse

intent.price.index.Type: object

intent.price.index.Required fields: none

- intent.price.index.closestPauseAt (integer; optional)

intent.price.index.closestPauseAt example: 0

intent.price.index.closestPauseAt.Type: integer

- intent.price.index.closestUnpauseAt (integer; optional)

intent.price.index.closestUnpauseAt example: 0

intent.price.index.closestUnpauseAt.Type: integer

- intent.price.index.feed (string; optional)

intent.price.index.feed example: string

intent.price.index.feed.Type: string

- intent.price.index.inPause (boolean; optional)

intent.price.index.inPause example: true

intent.price.index.inPause.Type: boolean

- intent.price.index.isOnline (boolean; optional)

intent.price.index.isOnline example: true

intent.price.index.isOnline.Type: boolean

- intent.price.index.k (integer; optional)

intent.price.index.k example: 0

intent.price.index.k.Type: integer

- intent.price.index.marketDepthLong (integer; optional)

intent.price.index.marketDepthLong example: 0

intent.price.index.marketDepthLong.Type: integer

- intent.price.index.marketDepthShort (integer; optional)

intent.price.index.marketDepthShort example: 0

intent.price.index.marketDepthShort.Type: integer

- intent.price.index.pauseAt (integer; optional)

intent.price.index.pauseAt example: 0

intent.price.index.pauseAt.Type: integer

- intent.price.index.pausedAt (integer; optional)

intent.price.index.pausedAt example: 0

intent.price.index.pausedAt.Type: integer

- intent.price.index.price (integer; optional)

intent.price.index.price example: 0

intent.price.index.price.Type: integer

- intent.price.index.result_message (object; optional)

intent.price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.index.result_message.Schema: Trading.oracle.ResultMessage

intent.price.index.result_message.Type: object

intent.price.index.result_message.Required fields: none

- intent.price.index.result_message.price_ref (string; optional)

intent.price.index.result_message.price_ref example: string

intent.price.index.result_message.price_ref.Type: string

- intent.price.index.result_message.signatures_ref (string; optional)

intent.price.index.result_message.signatures_ref example: string

intent.price.index.result_message.signatures_ref.Type: string

- intent.price.index.slot (integer; optional)

intent.price.index.slot example: 0

intent.price.index.slot.Type: integer

- intent.price.index.spread (integer; optional)

intent.price.index.spread example: 0

intent.price.index.spread.Type: integer

- intent.price.index.status (string; optional)

intent.price.index.status example: string

intent.price.index.status.Type: string

- intent.price.index.timestamp (integer; optional)

intent.price.index.timestamp example: 0

intent.price.index.timestamp.Type: integer

- intent.price.index.unpauseAt (integer; optional)

intent.price.index.unpauseAt example: 0

intent.price.index.unpauseAt.Type: integer

- intent.price.rfc (object; optional)

intent.price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intent.price.rfc.Type: object

intent.price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intent.price.rfc.allOf variant 1

intent.price.rfc.Schema: Trading.oracle.RFQResult

intent.price.rfc.Type: object

intent.price.rfc.Required fields: none

- intent.price.rfc.effective_depth (integer; optional)

intent.price.rfc.effective_depth example: 0

intent.price.rfc.effective_depth.Type: integer

- intent.price.rfc.original_k (integer; optional)

intent.price.rfc.original_k example: 0

intent.price.rfc.original_k.Type: integer

- intent.price.rfc.original_market_depth_long (integer; optional)

intent.price.rfc.original_market_depth_long example: 0

intent.price.rfc.original_market_depth_long.Type: integer

intent.price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intent.price.rfc.original_market_depth_short (integer; optional)

intent.price.rfc.original_market_depth_short example: 0

intent.price.rfc.original_market_depth_short.Type: integer

- intent.price.rfc.original_spread (integer; optional)

intent.price.rfc.original_spread example: 0

intent.price.rfc.original_spread.Type: integer

- intent.price.rfc.recovery_rate (number; optional)

intent.price.rfc.recovery_rate example: 0

intent.price.rfc.recovery_rate.Type: number

- intent.price.rfc.signed_price (object; optional)

intent.price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.rfc.signed_price.Type: object

intent.price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intent.price.rfc.signed_price.allOf variant 1

intent.price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intent.price.rfc.signed_price.Type: object

intent.price.rfc.signed_price.Required fields: none

- intent.price.rfc.signed_price.closestPauseAt (integer; optional)

intent.price.rfc.signed_price.closestPauseAt example: 0

intent.price.rfc.signed_price.closestPauseAt.Type: integer

- intent.price.rfc.signed_price.closestUnpauseAt (integer; optional)

intent.price.rfc.signed_price.closestUnpauseAt example: 0

intent.price.rfc.signed_price.closestUnpauseAt.Type: integer

- intent.price.rfc.signed_price.feed (string; optional)

intent.price.rfc.signed_price.feed example: string

intent.price.rfc.signed_price.feed.Type: string

- intent.price.rfc.signed_price.inPause (boolean; optional)

intent.price.rfc.signed_price.inPause example: true

intent.price.rfc.signed_price.inPause.Type: boolean

- intent.price.rfc.signed_price.isOnline (boolean; optional)

intent.price.rfc.signed_price.isOnline example: true

intent.price.rfc.signed_price.isOnline.Type: boolean

- intent.price.rfc.signed_price.k (integer; optional)

intent.price.rfc.signed_price.k example: 0

intent.price.rfc.signed_price.k.Type: integer

- intent.price.rfc.signed_price.marketDepthLong (integer; optional)

intent.price.rfc.signed_price.marketDepthLong example: 0

intent.price.rfc.signed_price.marketDepthLong.Type: integer

- intent.price.rfc.signed_price.marketDepthShort (integer; optional)

intent.price.rfc.signed_price.marketDepthShort example: 0

intent.price.rfc.signed_price.marketDepthShort.Type: integer

- intent.price.rfc.signed_price.pauseAt (integer; optional)

intent.price.rfc.signed_price.pauseAt example: 0

intent.price.rfc.signed_price.pauseAt.Type: integer

- intent.price.rfc.signed_price.pausedAt (integer; optional)

intent.price.rfc.signed_price.pausedAt example: 0

intent.price.rfc.signed_price.pausedAt.Type: integer

- intent.price.rfc.signed_price.price (integer; optional)

intent.price.rfc.signed_price.price example: 0

intent.price.rfc.signed_price.price.Type: integer

- intent.price.rfc.signed_price.result_message (object; optional)

intent.price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intent.price.rfc.signed_price.result_message.Type: object

intent.price.rfc.signed_price.result_message.Required fields: none

- intent.price.rfc.signed_price.result_message.price_ref (string; optional)

intent.price.rfc.signed_price.result_message.price_ref example: string

intent.price.rfc.signed_price.result_message.price_ref.Type: string

- intent.price.rfc.signed_price.result_message.signatures_ref (string; optional)

intent.price.rfc.signed_price.result_message.signatures_ref example: string

intent.price.rfc.signed_price.result_message.signatures_ref.Type: string

- intent.price.rfc.signed_price.slot (integer; optional)

intent.price.rfc.signed_price.slot example: 0

intent.price.rfc.signed_price.slot.Type: integer

- intent.price.rfc.signed_price.spread (integer; optional)

intent.price.rfc.signed_price.spread example: 0

intent.price.rfc.signed_price.spread.Type: integer

- intent.price.rfc.signed_price.status (string; optional)

intent.price.rfc.signed_price.status example: string

intent.price.rfc.signed_price.status.Type: string

- intent.price.rfc.signed_price.timestamp (integer; optional)

intent.price.rfc.signed_price.timestamp example: 0

intent.price.rfc.signed_price.timestamp.Type: integer

- intent.price.rfc.signed_price.unpauseAt (integer; optional)

intent.price.rfc.signed_price.unpauseAt example: 0

intent.price.rfc.signed_price.unpauseAt.Type: integer

- intent.price.rfc.velocity_debt (integer; optional)

intent.price.rfc.velocity_debt example: 0

intent.price.rfc.velocity_debt.Type: integer

intent.price.rfc.velocity_debt.Velocity calculation results

- intent.price.settlement (object; optional)

intent.price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intent.price.settlement.Schema: Trading.oracle.LatestResponse

intent.price.settlement.Type: object

intent.price.settlement.Required fields: none

- intent.price.settlement.closestPauseAt (integer; optional)

intent.price.settlement.closestPauseAt example: 0

intent.price.settlement.closestPauseAt.Type: integer

- intent.price.settlement.closestUnpauseAt (integer; optional)

intent.price.settlement.closestUnpauseAt example: 0

intent.price.settlement.closestUnpauseAt.Type: integer

- intent.price.settlement.feed (string; optional)

intent.price.settlement.feed example: string

intent.price.settlement.feed.Type: string

- intent.price.settlement.inPause (boolean; optional)

intent.price.settlement.inPause example: true

intent.price.settlement.inPause.Type: boolean

- intent.price.settlement.isOnline (boolean; optional)

intent.price.settlement.isOnline example: true

intent.price.settlement.isOnline.Type: boolean

- intent.price.settlement.k (integer; optional)

intent.price.settlement.k example: 0

intent.price.settlement.k.Type: integer

- intent.price.settlement.marketDepthLong (integer; optional)

intent.price.settlement.marketDepthLong example: 0

intent.price.settlement.marketDepthLong.Type: integer

- intent.price.settlement.marketDepthShort (integer; optional)

intent.price.settlement.marketDepthShort example: 0

intent.price.settlement.marketDepthShort.Type: integer

- intent.price.settlement.pauseAt (integer; optional)

intent.price.settlement.pauseAt example: 0

intent.price.settlement.pauseAt.Type: integer

- intent.price.settlement.pausedAt (integer; optional)

intent.price.settlement.pausedAt example: 0

intent.price.settlement.pausedAt.Type: integer

- intent.price.settlement.price (integer; optional)

intent.price.settlement.price example: 0

intent.price.settlement.price.Type: integer

- intent.price.settlement.result_message (object; optional)

intent.price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intent.price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intent.price.settlement.result_message.Type: object

intent.price.settlement.result_message.Required fields: none

- intent.price.settlement.result_message.price_ref (string; optional)

intent.price.settlement.result_message.price_ref example: string

intent.price.settlement.result_message.price_ref.Type: string

- intent.price.settlement.result_message.signatures_ref (string; optional)

intent.price.settlement.result_message.signatures_ref example: string

intent.price.settlement.result_message.signatures_ref.Type: string

- intent.price.settlement.slot (integer; optional)

intent.price.settlement.slot example: 0

intent.price.settlement.slot.Type: integer

- intent.price.settlement.spread (integer; optional)

intent.price.settlement.spread example: 0

intent.price.settlement.spread.Type: integer

- intent.price.settlement.status (string; optional)

intent.price.settlement.status example: string

intent.price.settlement.status.Type: string

- intent.price.settlement.timestamp (integer; optional)

intent.price.settlement.timestamp example: 0

intent.price.settlement.timestamp.Type: integer

- intent.price.settlement.unpauseAt (integer; optional)

intent.price.settlement.unpauseAt example: 0

intent.price.settlement.unpauseAt.Type: integer

- intent.price.timestamp (string; optional)

intent.price.timestamp example: string

intent.price.timestamp.Type: string

- intent.smart_account (object; optional)

intent.smart_account example: {}

intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.smart_account.Type: object

- intent.vault (object; optional)

intent.vault example: {}

intent.vault.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intent.vault.Type: object

- intent_hash (string; optional)

intent_hash example: string

intent_hash.Type: string

- ok (boolean; optional)

ok example: true

ok.Type: boolean

- trace (object; optional)

trace example: {
  "contract_exit_code": 0,
  "error_contract_interface": "string",
  "execution_snapshot": {
    "accounts": {
      "key": {
        "account_state": {},
        "is_active": true,
        "last_tx_hash": [
          0
        ],
        "last_tx_lt": 0,
        "rawAccount": {
          "code": {},
          "data": {},
          "isActive": true,
          "lastTxHash": [
            0
          ],
          "lastTxLT": 0,
          "state": {
            "address": {},
            "balance": {},
            "extraCurrencies": {},
            "isValid": true,
            "lastTransactionLT": 0,
            "stateHash": [
              0
            ],
            "stateInit": {
              "code": {},
              "data": {},
              "depth": 0,
              "lib": {},
              "tickTock": {
                "tick": true,
                "tock": true
              }
            },
            "status": "string",
            "storageInfo": {
              "duePayment": {},
              "lastPaid": 0,
              "storageUsed": {
                "bitsUsed": {},
                "cellsUsed": {}
              }
            }
          }
        }
      }
    }
  },
  "exit_code": 0,
  "intents": [],
  "logs": [
    {
      "additional_data": {
        "index_price": {}
      },
      "executor_fee_amount": {},
      "executor_fee_rate": 0,
      "fee_to_stakers_percent": 0,
      "funding_payment": 0,
      "last_updated_cpf": 0,
      "log_type": 0,
      "margin": {},
      "open_notional": {},
      "position_fee_amount": {},
      "position_fee_rate": 0,
      "realized_pnl": 0,
      "rollover_fee": 0,
      "size": {}
    }
  ],
  "prices": [],
  "smart_account_state_end": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  },
  "update_position": {
    "jetton_minter": {},
    "notification_payload": {
      "amm_address": {},
      "balance_delta": {},
      "bundle_sender_address": {},
      "direction": 0,
      "position_state": {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    },
    "query_id": 0
  }
}

trace.Schema: Trading.types.TraceResult

trace.Type: object

trace.Required fields: none

- trace.contract_exit_code (integer; optional)

trace.contract_exit_code example: 0

trace.contract_exit_code.Type: integer

trace.contract_exit_code.in try/catch on amm

- trace.error_contract_interface (string; optional)

trace.error_contract_interface example: string

trace.error_contract_interface.Type: string

- trace.execution_snapshot (object; optional)

trace.execution_snapshot example: {
  "accounts": {
    "key": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    }
  }
}

trace.execution_snapshot.Schema: Trading.types.ExecutionSnapshot

trace.execution_snapshot.Type: object

trace.execution_snapshot.Required fields: none

- trace.execution_snapshot.accounts (object; optional)

trace.execution_snapshot.accounts example: {
  "key": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  }
}

trace.execution_snapshot.accounts.Type: object

trace.execution_snapshot.accounts.*.Schema: Trading.types.AccountSnapshot

trace.execution_snapshot.accounts.*.Type: object

trace.execution_snapshot.accounts.*.Required fields: none

- trace.execution_snapshot.accounts.*.account_state (object; optional)

trace.execution_snapshot.accounts.*.account_state example: {}

trace.execution_snapshot.accounts.*.account_state.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.account_state.Type: object

- trace.execution_snapshot.accounts.*.is_active (boolean; optional)

trace.execution_snapshot.accounts.*.is_active example: true

trace.execution_snapshot.accounts.*.is_active.Type: boolean

- trace.execution_snapshot.accounts.*.last_tx_hash (integer[]; optional)

trace.execution_snapshot.accounts.*.last_tx_hash example: [
  0
]

trace.execution_snapshot.accounts.*.last_tx_hash.Type: integer[]

trace.execution_snapshot.accounts.*.last_tx_hash.[]Type: integer

- trace.execution_snapshot.accounts.*.last_tx_lt (integer; optional)

trace.execution_snapshot.accounts.*.last_tx_lt example: 0

trace.execution_snapshot.accounts.*.last_tx_lt.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount (object; optional)

trace.execution_snapshot.accounts.*.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

trace.execution_snapshot.accounts.*.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

trace.execution_snapshot.accounts.*.rawAccount.Type: object

trace.execution_snapshot.accounts.*.rawAccount.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.code (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.code example: {}

trace.execution_snapshot.accounts.*.rawAccount.code.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.code.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.data (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.data example: {}

trace.execution_snapshot.accounts.*.rawAccount.data.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.data.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.isActive (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.isActive example: true

trace.execution_snapshot.accounts.*.rawAccount.isActive.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.lastTxHash (integer · int32[]; optional)

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash example: [
  0
]

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.Type: integer · int32[]

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]Type: integer · int32

trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]format: int32

- trace.execution_snapshot.accounts.*.rawAccount.lastTxLT (integer · int64; optional)

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT example: 0

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.Type: integer · int64

trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.format: int64

- trace.execution_snapshot.accounts.*.rawAccount.state (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

trace.execution_snapshot.accounts.*.rawAccount.state.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.address (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.address example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.execution_snapshot.accounts.*.rawAccount.state.address.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.balance (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.balance example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.execution_snapshot.accounts.*.rawAccount.state.balance.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.isValid (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.isValid example: true

trace.execution_snapshot.accounts.*.rawAccount.state.isValid.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT (integer · int64; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.Type: integer · int64

trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.format: int64

- trace.execution_snapshot.accounts.*.rawAccount.state.stateHash (integer · int32[]; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash example: [
  0
]

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.Type: integer · int32[]

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.has value when frozen

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]Type: integer · int32

trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]format: int32

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.has value when active

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.allOf variant 1

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth (integer; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick example: true

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock example: true

trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- trace.execution_snapshot.accounts.*.rawAccount.state.status (string; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.status example: string

trace.execution_snapshot.accounts.*.rawAccount.state.status.Type: string

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid (integer; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid example: 0

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid.Type: integer

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra (any; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra.Type: any

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Type: object

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Required fields: none

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- trace.exit_code (integer; optional)

trace.exit_code example: 0

trace.exit_code.Type: integer

trace.exit_code.in compute action/phase

- trace.intents (any[]; optional)

trace.intents example: []

trace.intents.Type: any[]

trace.intents.[]Type: any

- trace.logs (object[]; optional)

trace.logs example: [
  {
    "additional_data": {
      "index_price": {}
    },
    "executor_fee_amount": {},
    "executor_fee_rate": 0,
    "fee_to_stakers_percent": 0,
    "funding_payment": 0,
    "last_updated_cpf": 0,
    "log_type": 0,
    "margin": {},
    "open_notional": {},
    "position_fee_amount": {},
    "position_fee_rate": 0,
    "realized_pnl": 0,
    "rollover_fee": 0,
    "size": {}
  }
]

trace.logs.Type: object[]

trace.logs.[]Schema: Trading.vamm.IntentLog

trace.logs.[]Type: object

trace.logs.[]Required fields: none

- trace.logs.[]additional_data (object; optional)

trace.logs.[]additional_data example: {
  "index_price": {}
}

trace.logs.[]additional_data.Schema: Trading.vamm.AdditionalLogData

trace.logs.[]additional_data.Type: object

trace.logs.[]additional_data.Required fields: none

- trace.logs.[]additional_data.index_price (object; optional)

trace.logs.[]additional_data.index_price example: {}

trace.logs.[]additional_data.index_price.Type: object

trace.logs.[]additional_data.index_price.real price of execution, for guaranteed SL/TP/LIQUIDATE/MAX_PNL

trace.logs.[]additional_data.index_price.allOf variant 1

trace.logs.[]additional_data.index_price.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]additional_data.index_price.Type: object

- trace.logs.[]executor_fee_amount (object; optional)

trace.logs.[]executor_fee_amount example: {}

trace.logs.[]executor_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]executor_fee_amount.Type: object

- trace.logs.[]executor_fee_rate (integer; optional)

trace.logs.[]executor_fee_rate example: 0

trace.logs.[]executor_fee_rate.Type: integer

- trace.logs.[]fee_to_stakers_percent (integer; optional)

trace.logs.[]fee_to_stakers_percent example: 0

trace.logs.[]fee_to_stakers_percent.Type: integer

- trace.logs.[]funding_payment (integer; optional)

trace.logs.[]funding_payment example: 0

trace.logs.[]funding_payment.Type: integer

- trace.logs.[]last_updated_cpf (integer; optional)

trace.logs.[]last_updated_cpf example: 0

trace.logs.[]last_updated_cpf.Type: integer

- trace.logs.[]log_type (integer · int32 · enum; optional)

trace.logs.[]log_type example: 0

trace.logs.[]log_type.Schema: Trading.vamm.LogType

trace.logs.[]log_type.Type: integer · int32 · enum

trace.logs.[]log_type.Allowed values: [0,1,2,3]

trace.logs.[]log_type.format: int32

- trace.logs.[]margin (object; optional)

trace.logs.[]margin example: {}

trace.logs.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]margin.Type: object

- trace.logs.[]open_notional (object; optional)

trace.logs.[]open_notional example: {}

trace.logs.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]open_notional.Type: object

- trace.logs.[]position_fee_amount (object; optional)

trace.logs.[]position_fee_amount example: {}

trace.logs.[]position_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.logs.[]position_fee_amount.Type: object

- trace.logs.[]position_fee_rate (integer; optional)

trace.logs.[]position_fee_rate example: 0

trace.logs.[]position_fee_rate.Type: integer

- trace.logs.[]realized_pnl (integer; optional)

trace.logs.[]realized_pnl example: 0

trace.logs.[]realized_pnl.Type: integer

- trace.logs.[]rollover_fee (integer; optional)

trace.logs.[]rollover_fee example: 0

trace.logs.[]rollover_fee.Type: integer

- trace.logs.[]size (object; optional)

trace.logs.[]size example: {}

trace.logs.[]size.Schema: Trading.big.Int

trace.logs.[]size.Type: object

- trace.prices (any[]; optional)

trace.prices example: []

trace.prices.Type: any[]

trace.prices.[]Type: any

- trace.smart_account_state_end (object; optional)

trace.smart_account_state_end example: {
  "account_state": {},
  "is_active": true,
  "last_tx_hash": [
    0
  ],
  "last_tx_lt": 0,
  "rawAccount": {
    "code": {},
    "data": {},
    "isActive": true,
    "lastTxHash": [
      0
    ],
    "lastTxLT": 0,
    "state": {
      "address": {},
      "balance": {},
      "extraCurrencies": {},
      "isValid": true,
      "lastTransactionLT": 0,
      "stateHash": [
        0
      ],
      "stateInit": {
        "code": {},
        "data": {},
        "depth": 0,
        "lib": {},
        "tickTock": {
          "tick": true,
          "tock": true
        }
      },
      "status": "string",
      "storageInfo": {
        "duePayment": {},
        "lastPaid": 0,
        "storageUsed": {
          "bitsUsed": {},
          "cellsUsed": {}
        }
      }
    }
  }
}

trace.smart_account_state_end.Schema: Trading.types.AccountSnapshot

trace.smart_account_state_end.Type: object

trace.smart_account_state_end.Required fields: none

- trace.smart_account_state_end.account_state (object; optional)

trace.smart_account_state_end.account_state example: {}

trace.smart_account_state_end.account_state.Schema: Trading.cell.Cell

trace.smart_account_state_end.account_state.Type: object

- trace.smart_account_state_end.is_active (boolean; optional)

trace.smart_account_state_end.is_active example: true

trace.smart_account_state_end.is_active.Type: boolean

- trace.smart_account_state_end.last_tx_hash (integer[]; optional)

trace.smart_account_state_end.last_tx_hash example: [
  0
]

trace.smart_account_state_end.last_tx_hash.Type: integer[]

trace.smart_account_state_end.last_tx_hash.[]Type: integer

- trace.smart_account_state_end.last_tx_lt (integer; optional)

trace.smart_account_state_end.last_tx_lt example: 0

trace.smart_account_state_end.last_tx_lt.Type: integer

- trace.smart_account_state_end.rawAccount (object; optional)

trace.smart_account_state_end.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

trace.smart_account_state_end.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

trace.smart_account_state_end.rawAccount.Type: object

trace.smart_account_state_end.rawAccount.Required fields: none

- trace.smart_account_state_end.rawAccount.code (object; optional)

trace.smart_account_state_end.rawAccount.code example: {}

trace.smart_account_state_end.rawAccount.code.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.code.Type: object

- trace.smart_account_state_end.rawAccount.data (object; optional)

trace.smart_account_state_end.rawAccount.data example: {}

trace.smart_account_state_end.rawAccount.data.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.data.Type: object

- trace.smart_account_state_end.rawAccount.isActive (boolean; optional)

trace.smart_account_state_end.rawAccount.isActive example: true

trace.smart_account_state_end.rawAccount.isActive.Type: boolean

- trace.smart_account_state_end.rawAccount.lastTxHash (integer · int32[]; optional)

trace.smart_account_state_end.rawAccount.lastTxHash example: [
  0
]

trace.smart_account_state_end.rawAccount.lastTxHash.Type: integer · int32[]

trace.smart_account_state_end.rawAccount.lastTxHash.[]Type: integer · int32

trace.smart_account_state_end.rawAccount.lastTxHash.[]format: int32

- trace.smart_account_state_end.rawAccount.lastTxLT (integer · int64; optional)

trace.smart_account_state_end.rawAccount.lastTxLT example: 0

trace.smart_account_state_end.rawAccount.lastTxLT.Type: integer · int64

trace.smart_account_state_end.rawAccount.lastTxLT.format: int64

- trace.smart_account_state_end.rawAccount.state (object; optional)

trace.smart_account_state_end.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

trace.smart_account_state_end.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

trace.smart_account_state_end.rawAccount.state.Type: object

trace.smart_account_state_end.rawAccount.state.Required fields: none

- trace.smart_account_state_end.rawAccount.state.address (object; optional)

trace.smart_account_state_end.rawAccount.state.address example: {}

trace.smart_account_state_end.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.smart_account_state_end.rawAccount.state.address.Type: object

- trace.smart_account_state_end.rawAccount.state.balance (object; optional)

trace.smart_account_state_end.rawAccount.state.balance example: {}

trace.smart_account_state_end.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.smart_account_state_end.rawAccount.state.balance.Type: object

- trace.smart_account_state_end.rawAccount.state.extraCurrencies (object; optional)

trace.smart_account_state_end.rawAccount.state.extraCurrencies example: {}

trace.smart_account_state_end.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

trace.smart_account_state_end.rawAccount.state.extraCurrencies.Type: object

- trace.smart_account_state_end.rawAccount.state.isValid (boolean; optional)

trace.smart_account_state_end.rawAccount.state.isValid example: true

trace.smart_account_state_end.rawAccount.state.isValid.Type: boolean

- trace.smart_account_state_end.rawAccount.state.lastTransactionLT (integer · int64; optional)

trace.smart_account_state_end.rawAccount.state.lastTransactionLT example: 0

trace.smart_account_state_end.rawAccount.state.lastTransactionLT.Type: integer · int64

trace.smart_account_state_end.rawAccount.state.lastTransactionLT.format: int64

- trace.smart_account_state_end.rawAccount.state.stateHash (integer · int32[]; optional)

trace.smart_account_state_end.rawAccount.state.stateHash example: [
  0
]

trace.smart_account_state_end.rawAccount.state.stateHash.Type: integer · int32[]

trace.smart_account_state_end.rawAccount.state.stateHash.has value when frozen

trace.smart_account_state_end.rawAccount.state.stateHash.[]Type: integer · int32

trace.smart_account_state_end.rawAccount.state.stateHash.[]format: int32

- trace.smart_account_state_end.rawAccount.state.stateInit (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.has value when active

trace.smart_account_state_end.rawAccount.state.stateInit.allOf variant 1

trace.smart_account_state_end.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.Required fields: none

- trace.smart_account_state_end.rawAccount.state.stateInit.code (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.code example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.state.stateInit.code.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.data (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.data example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

trace.smart_account_state_end.rawAccount.state.stateInit.data.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.depth (integer; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.depth example: 0

trace.smart_account_state_end.rawAccount.state.stateInit.depth.Type: integer

- trace.smart_account_state_end.rawAccount.state.stateInit.lib (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.lib example: {}

trace.smart_account_state_end.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

trace.smart_account_state_end.rawAccount.state.stateInit.lib.Type: object

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock (object; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Type: object

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Required fields: none

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick example: true

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock example: true

trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- trace.smart_account_state_end.rawAccount.state.status (string; optional)

trace.smart_account_state_end.rawAccount.state.status example: string

trace.smart_account_state_end.rawAccount.state.status.Type: string

- trace.smart_account_state_end.rawAccount.state.storageInfo (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

trace.smart_account_state_end.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

trace.smart_account_state_end.rawAccount.state.storageInfo.Type: object

trace.smart_account_state_end.rawAccount.state.storageInfo.Required fields: none

- trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Type: object

- trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid (integer; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid example: 0

trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid.Type: integer

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra (any; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra.Type: any

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Type: object

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Required fields: none

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- trace.update_position (object; optional)

trace.update_position example: {
  "jetton_minter": {},
  "notification_payload": {
    "amm_address": {},
    "balance_delta": {},
    "bundle_sender_address": {},
    "direction": 0,
    "position_state": {
      "direction": 0,
      "discount": 0,
      "fee": 0,
      "last_updated_cumulative_premium": 0,
      "last_updated_timestamp": 0,
      "margin": {},
      "open_notional": {},
      "rebate": 0,
      "size": {}
    }
  },
  "query_id": 0
}

trace.update_position.Schema: Trading.smartaccount.NotifyUpdatePosition

trace.update_position.Type: object

trace.update_position.Required fields: none

- trace.update_position.jetton_minter (object; optional)

trace.update_position.jetton_minter example: {}

trace.update_position.jetton_minter.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.jetton_minter.Type: object

- trace.update_position.notification_payload (object; optional)

trace.update_position.notification_payload example: {
  "amm_address": {},
  "balance_delta": {},
  "bundle_sender_address": {},
  "direction": 0,
  "position_state": {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
}

trace.update_position.notification_payload.Schema: Trading.smartaccount.NotificationPayload

trace.update_position.notification_payload.Type: object

trace.update_position.notification_payload.Required fields: none

- trace.update_position.notification_payload.amm_address (object; optional)

trace.update_position.notification_payload.amm_address example: {}

trace.update_position.notification_payload.amm_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.notification_payload.amm_address.Type: object

- trace.update_position.notification_payload.balance_delta (object; optional)

trace.update_position.notification_payload.balance_delta example: {}

trace.update_position.notification_payload.balance_delta.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.balance_delta.Type: object

- trace.update_position.notification_payload.bundle_sender_address (object; optional)

trace.update_position.notification_payload.bundle_sender_address example: {}

trace.update_position.notification_payload.bundle_sender_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

trace.update_position.notification_payload.bundle_sender_address.Type: object

- trace.update_position.notification_payload.direction (integer; optional)

trace.update_position.notification_payload.direction example: 0

trace.update_position.notification_payload.direction.Type: integer

- trace.update_position.notification_payload.position_state (object; optional)

trace.update_position.notification_payload.position_state example: {
  "direction": 0,
  "discount": 0,
  "fee": 0,
  "last_updated_cumulative_premium": 0,
  "last_updated_timestamp": 0,
  "margin": {},
  "open_notional": {},
  "rebate": 0,
  "size": {}
}

trace.update_position.notification_payload.position_state.Schema: Trading.schemas.PositionState

trace.update_position.notification_payload.position_state.Type: object

trace.update_position.notification_payload.position_state.Required fields: none

- trace.update_position.notification_payload.position_state.direction (integer; optional)

trace.update_position.notification_payload.position_state.direction example: 0

trace.update_position.notification_payload.position_state.direction.Type: integer

- trace.update_position.notification_payload.position_state.discount (integer; optional)

trace.update_position.notification_payload.position_state.discount example: 0

trace.update_position.notification_payload.position_state.discount.Type: integer

- trace.update_position.notification_payload.position_state.fee (integer; optional)

trace.update_position.notification_payload.position_state.fee example: 0

trace.update_position.notification_payload.position_state.fee.Type: integer

- trace.update_position.notification_payload.position_state.last_updated_cumulative_premium (integer; optional)

trace.update_position.notification_payload.position_state.last_updated_cumulative_premium example: 0

trace.update_position.notification_payload.position_state.last_updated_cumulative_premium.Type: integer

- trace.update_position.notification_payload.position_state.last_updated_timestamp (integer; optional)

trace.update_position.notification_payload.position_state.last_updated_timestamp example: 0

trace.update_position.notification_payload.position_state.last_updated_timestamp.Type: integer

- trace.update_position.notification_payload.position_state.margin (object; optional)

trace.update_position.notification_payload.position_state.margin example: {}

trace.update_position.notification_payload.position_state.margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.position_state.margin.Type: object

- trace.update_position.notification_payload.position_state.open_notional (object; optional)

trace.update_position.notification_payload.position_state.open_notional example: {}

trace.update_position.notification_payload.position_state.open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

trace.update_position.notification_payload.position_state.open_notional.Type: object

- trace.update_position.notification_payload.position_state.rebate (integer; optional)

trace.update_position.notification_payload.position_state.rebate example: 0

trace.update_position.notification_payload.position_state.rebate.Type: integer

- trace.update_position.notification_payload.position_state.size (object; optional)

trace.update_position.notification_payload.position_state.size example: {}

trace.update_position.notification_payload.position_state.size.Schema: Trading.big.Int

trace.update_position.notification_payload.position_state.size.Type: object

- trace.update_position.query_id (integer; optional)

trace.update_position.query_id example: 0

trace.update_position.query_id.Type: integer

Example



```json
{
  "accepted": true,
  "intent": {
    "action_phase": "string",
    "builder": {},
    "created_price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "date": "string",
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "market": {},
    "order": {},
    "order_requests": [
      {
        "full_message": {
          "message": {
            "created_at": 0,
            "intent": {
              "order": {},
              "smart_account": {},
              "v_amm": {}
            },
            "public_key": [
              0
            ],
            "query_id": {
              "bit_number": 0,
              "shift": 0
            },
            "reference_query_id": {
              "bit_number": 0,
              "shift": 0
            }
          },
          "public_key": "string",
          "signature": [
            0
          ]
        },
        "hash": [
          0
        ],
        "order_request": {
          "selector": 0
        },
        "order_request_hash": [
          0
        ],
        "smart_account": {}
      }
    ],
    "payment_mode": 0,
    "price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "smart_account": {},
    "vault": {}
  },
  "intent_hash": "string",
  "ok": true,
  "trace": {
    "contract_exit_code": 0,
    "error_contract_interface": "string",
    "execution_snapshot": {
      "accounts": {
        "key": {
          "account_state": {},
          "is_active": true,
          "last_tx_hash": [
            0
          ],
          "last_tx_lt": 0,
          "rawAccount": {
            "code": {},
            "data": {},
            "isActive": true,
            "lastTxHash": [
              0
            ],
            "lastTxLT": 0,
            "state": {
              "address": {},
              "balance": {},
              "extraCurrencies": {},
              "isValid": true,
              "lastTransactionLT": 0,
              "stateHash": [
                0
              ],
              "stateInit": {
                "code": {},
                "data": {},
                "depth": 0,
                "lib": {},
                "tickTock": {
                  "tick": true,
                  "tock": true
                }
              },
              "status": "string",
              "storageInfo": {
                "duePayment": {},
                "lastPaid": 0,
                "storageUsed": {
                  "bitsUsed": {},
                  "cellsUsed": {}
                }
              }
            }
          }
        }
      }
    },
    "exit_code": 0,
    "intents": [],
    "logs": [
      {
        "additional_data": {
          "index_price": {}
        },
        "executor_fee_amount": {},
        "executor_fee_rate": 0,
        "fee_to_stakers_percent": 0,
        "funding_payment": 0,
        "last_updated_cpf": 0,
        "log_type": 0,
        "margin": {},
        "open_notional": {},
        "position_fee_amount": {},
        "position_fee_rate": 0,
        "realized_pnl": 0,
        "rollover_fee": 0,
        "size": {}
      }
    ],
    "prices": [],
    "smart_account_state_end": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    },
    "update_position": {
      "jetton_minter": {},
      "notification_payload": {
        "amm_address": {},
        "balance_delta": {},
        "bundle_sender_address": {},
        "direction": 0,
        "position_state": {
          "direction": 0,
          "discount": 0,
          "fee": 0,
          "last_updated_cumulative_premium": 0,
          "last_updated_timestamp": 0,
          "margin": {},
          "open_notional": {},
          "rebate": 0,
          "size": {}
        }
      },
      "query_id": 0
    }
  }
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get an intent

Source: https://docs.storm.tg/developers/operations/getintent

# Get an intent

`GET /v3-node-0/intent/{hash}`

Returns a specific intent by its hash

## Authorization



## Parameters

- path: hash (string; required). Intent hash (hex string)

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/intent/{hash}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/intent/{hash}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/intent/{hash}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — OK

No valid example could be generated.

Type: any

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get account state

Source: https://docs.storm.tg/developers/operations/getaccountstate

# Get account state

`GET /v3-node-0/smartaccount/{address}/state`

Returns the current state data of a smart account

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/state' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/state", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/state",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — OK

No valid example could be generated.

Type: any

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get the next query ID

Source: https://docs.storm.tg/developers/operations/getqueryid

# Get the next query ID

`GET /v3-node-0/smartaccount/{address}/queryID`

Returns the next available query ID for a smart account

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/queryID' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/queryID", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/queryID",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.QueryResponse

**200** application/json — OK

Schema: Trading.api.QueryResponse

Type: object

Required fields: none

- executor_query_id (integer; optional)

executor_query_id example: 0

executor_query_id.Type: integer

executor_query_id.ExecutorQueryID is the current executor query-id counter for the SA — the
next bundle leases at or above it (reconciled against the on-chain used set).

- max_live_query_id (integer; optional)

max_live_query_id example: 0

max_live_query_id.Type: integer

max_live_query_id.MaxLiveQueryID is the highest query-id among the SA's live bundles, omitted
when it has none.

- query_id (integer; optional)

query_id example: 0

query_id.Type: integer

Example



```json
{
  "executor_query_id": 0,
  "max_live_query_id": 0,
  "query_id": 0
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get a token balance

Source: https://docs.storm.tg/developers/operations/getbalance

# Get a token balance

`GET /v3-node-0/smartaccount/{address}/balance`

Returns the available balance for a specific token in a smart account

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

- query: token_address (string; required). Token collateral asset ID

Type: string

- query: include_breakdown (boolean; optional). Also return leased and locked fields (default false)

Type: boolean

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/balance' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/balance", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/balance",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.BalanceResponse

**200** application/json — OK

Schema: Trading.api.BalanceResponse

Type: object

Required fields: none

- amount (integer; optional)

amount example: 0

amount.Type: integer

- leased (integer; optional)

leased example: 0

leased.Type: integer

leased.Leased and Locked break down what was netted out of the on-chain amount to
get Amount (free = on-chain − leased − locked). Populated only when the
caller passes ?include_breakdown=true; nil (omitted) otherwise.

- locked (integer; optional)

locked example: 0

locked.Type: integer

- minter_address (string; optional)

minter_address example: string

minter_address.Type: string

Example



```json
{
  "amount": 0,
  "leased": 0,
  "locked": 0,
  "minter_address": "string"
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get all token balances

Source: https://docs.storm.tg/developers/operations/getbalances

# Get all token balances

`GET /v3-node-0/smartaccount/{address}/balances`

Returns all token balances for a specific smart account

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/balances' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/balances", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/balances",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.BalancesResponse

**200** application/json — OK

Schema: Trading.api.BalancesResponse

Type: object

*.Schema: Trading.big.Int

*.Type: object

Example



```json
{
  "key": {}
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get a locked token balance

Source: https://docs.storm.tg/developers/operations/getlockedbalance

# Get a locked token balance

`GET /v3-node-0/smartaccount/{address}/lockedBalance`

Returns the locked balance for a specific token in a smart account

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

- query: token_address (string; required). Token collateral asset ID

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalance' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalance", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalance",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.BalanceResponse

**200** application/json — OK

Schema: Trading.api.BalanceResponse

Type: object

Required fields: none

- amount (integer; optional)

amount example: 0

amount.Type: integer

- leased (integer; optional)

leased example: 0

leased.Type: integer

leased.Leased and Locked break down what was netted out of the on-chain amount to
get Amount (free = on-chain − leased − locked). Populated only when the
caller passes ?include_breakdown=true; nil (omitted) otherwise.

- locked (integer; optional)

locked example: 0

locked.Type: integer

- minter_address (string; optional)

minter_address example: string

minter_address.Type: string

Example



```json
{
  "amount": 0,
  "leased": 0,
  "locked": 0,
  "minter_address": "string"
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get all locked balances

Source: https://docs.storm.tg/developers/operations/getlockedbalances

# Get all locked balances

`GET /v3-node-0/smartaccount/{address}/lockedBalances`

Returns the amount locked in resting orders for every token in a smart account (the all-tokens counterpart to /lockedBalance)

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalances' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalances", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/lockedBalances",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.BalancesResponse

**200** application/json — OK

Schema: Trading.api.BalancesResponse

Type: object

*.Schema: Trading.big.Int

*.Type: object

Example



```json
{
  "key": {}
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get current account positions

Source: https://docs.storm.tg/developers/operations/getaccountpositions

# Get current account positions

`GET /v3-node-0/smartaccount/{address}/positions`

Returns all open positions for a specific smart account across all markets

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/positions' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/positions", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/positions",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.PositionResponse

**200** application/json — OK

Type: object[]

[]Schema: Trading.api.PositionResponse

[]Type: object

[]Required fields: none

- []direction (string; optional)

[]direction example: string

[]direction.Type: string

- []market (string; optional)

[]market example: string

[]market.Type: string

- []state (object; optional)

[]state example: {
  "bundle_id": "string",
  "status": "string",
  "value": {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
}

[]state.Schema: Trading.api.PositionStateResponse

[]state.Type: object

[]state.Required fields: none

- []state.bundle_id (string; optional)

[]state.bundle_id example: string

[]state.bundle_id.Type: string

- []state.status (string; optional)

[]state.status example: string

[]state.status.Type: string

- []state.value (object; optional)

[]state.value example: {
  "direction": 0,
  "discount": 0,
  "fee": 0,
  "last_updated_cumulative_premium": 0,
  "last_updated_timestamp": 0,
  "margin": {},
  "open_notional": {},
  "rebate": 0,
  "size": {}
}

[]state.value.Schema: Trading.schemas.PositionState

[]state.value.Type: object

[]state.value.Required fields: none

- []state.value.direction (integer; optional)

[]state.value.direction example: 0

[]state.value.direction.Type: integer

- []state.value.discount (integer; optional)

[]state.value.discount example: 0

[]state.value.discount.Type: integer

- []state.value.fee (integer; optional)

[]state.value.fee example: 0

[]state.value.fee.Type: integer

- []state.value.last_updated_cumulative_premium (integer; optional)

[]state.value.last_updated_cumulative_premium example: 0

[]state.value.last_updated_cumulative_premium.Type: integer

- []state.value.last_updated_timestamp (integer; optional)

[]state.value.last_updated_timestamp example: 0

[]state.value.last_updated_timestamp.Type: integer

- []state.value.margin (object; optional)

[]state.value.margin example: {}

[]state.value.margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]state.value.margin.Type: object

- []state.value.open_notional (object; optional)

[]state.value.open_notional example: {}

[]state.value.open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]state.value.open_notional.Type: object

- []state.value.rebate (integer; optional)

[]state.value.rebate example: 0

[]state.value.rebate.Type: integer

- []state.value.size (object; optional)

[]state.value.size example: {}

[]state.value.size.Schema: Trading.big.Int

[]state.value.size.Type: object

Example



```json
[
  {
    "direction": "string",
    "market": "string",
    "state": {
      "bundle_id": "string",
      "status": "string",
      "value": {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    }
  }
]
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get account referral data

Source: https://docs.storm.tg/developers/operations/getreferraldata

# Get account referral data

`GET /v3-node-0/smartaccount/{address}/referral`

Returns referral data for a smart account by address

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/referral' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/referral", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/referral",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.types.ReferrerData

**200** application/json — OK

Schema: Trading.types.ReferrerData

Type: object

Required fields: none

- active (boolean; optional)

active example: true

active.Type: boolean

- created_at (string; optional)

created_at example: string

created_at.Type: string

- discount (integer; optional)

discount example: 0

discount.Type: integer

- owner (object; optional)

owner example: {}

owner.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

owner.Type: object

- rebate (integer; optional)

rebate example: 0

rebate.Type: integer

- referrer (object; optional)

referrer example: {}

referrer.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

referrer.Type: object

- updated_at (string; optional)

updated_at example: string

updated_at.Type: string

Example



```json
{
  "active": true,
  "created_at": "string",
  "discount": 0,
  "owner": {},
  "rebate": 0,
  "referrer": {},
  "updated_at": "string"
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# List account events

Source: https://docs.storm.tg/developers/operations/geteventsbyaccount

# List account events

`GET /v3-node-0/smartaccount/{account}/events`

Returns protocol events filtered by smart account address with pagination

## Authorization



## Parameters

- path: account (string; required). Smart account address

Type: string

- query: order (string; optional). Sort order (ASC or DESC, default: DESC)

Type: string

- query: limit (integer; optional). Maximum number of events to return (default: 100, max: 1000)

Type: integer

- query: offset (integer; optional). Number of events to skip (default: 0)

Type: integer

- query: event_type (string; optional). Filter by event type. Supports comma-separated list. Case-insensitive. Examples: DEPOSIT_NOTIFY or deposit_notify,withdraw,excess. Available types: trade_notification_v2, referral_fees, bundle_external_body, notify_update_position, add_gas_units, withdraw, add_public_key, remove_public_key, remove_all_except_current_public_key, deposit_notify, deposit_notify_with_deploy, excess, take_position_v2, failed_bundle_execution, withdraw_request

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{account}/events' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{account}/events", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{account}/events",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.proto.ProtocolEvents

**200** application/json — OK

Type: object[]

[]Schema: Trading.proto.ProtocolEvents

[]Type: object

[]Required fields: none

- []account (string; optional)

[]account example: string

[]account.Type: string

- []event (any; optional)

[]event.Type: any

[]event.Types that are valid to be assigned to Event:

	*ProtocolEvents_TradeNotificationV2
	*ProtocolEvents_ReferralFees
	*ProtocolEvents_BundleExternalBody
	*ProtocolEvents_NotifyUpdatePosition
	*ProtocolEvents_AddGasUnits
	*ProtocolEvents_Withdraw
	*ProtocolEvents_AddPublicKey
	*ProtocolEvents_RemovePublicKey
	*ProtocolEvents_RemoveAllExceptCurrentPublicKey
	*ProtocolEvents_DepositNotify
	*ProtocolEvents_DepositNotifyWithDeploy
	*ProtocolEvents_Excess
	*ProtocolEvents_TakePositionV2
	*ProtocolEvents_FailedBundleExecution
	*ProtocolEvents_WithdrawRequest
	*ProtocolEvents_InitSa

- []hash (integer[]; optional)

[]hash example: [
  0
]

[]hash.Type: integer[]

[]hash.[]Type: integer

- []sender (object; optional)

[]sender example: {
  "value": "string"
}

[]sender.Schema: Trading.proto.Address

[]sender.Type: object

[]sender.Required fields: none

- []sender.value (string; optional)

[]sender.value example: string

[]sender.value.Type: string

- []sequence (integer; optional)

[]sequence example: 0

[]sequence.Type: integer

- []timestamp (integer; optional)

[]timestamp example: 0

[]timestamp.Type: integer

- []tx_status (object; optional)

[]tx_status example: {
  "action_result_code": 0,
  "exit_code": 0,
  "success": true
}

[]tx_status.Schema: Trading.proto.TransactionStatus

[]tx_status.Type: object

[]tx_status.Required fields: none

- []tx_status.action_result_code (integer; optional)

[]tx_status.action_result_code example: 0

[]tx_status.action_result_code.Type: integer

- []tx_status.exit_code (integer; optional)

[]tx_status.exit_code example: 0

[]tx_status.exit_code.Type: integer

- []tx_status.success (boolean; optional)

[]tx_status.success example: true

[]tx_status.success.Type: boolean

Example



```json
[
  {
    "account": "string",
    "hash": [
      0
    ],
    "sender": {
      "value": "string"
    },
    "sequence": 0,
    "timestamp": 0,
    "tx_status": {
      "action_result_code": 0,
      "exit_code": 0,
      "success": true
    }
  }
]
```

---

# Deposit account tokens into a vault

Source: https://docs.storm.tg/developers/operations/selfdeposit

# Deposit account tokens into a vault

`POST /v3-node-0/smartaccount/self-deposit`

Moves an asset held by a deployed smart account into its vault, authorised by a user key registered in that account

## Authorization



## Parameters



## Request body · Trading.adapter.UserSelfDepositMessage

application/json · required

Signed self-deposit intent

Schema: Trading.adapter.UserSelfDepositMessage

Type: object

Required fields: message, publicKey, signature, smartAccount

Required field types: message (string; required), publicKey (string; required), signature (string; required), smartAccount (string; required)

- message (string; required)

message example: string

message.Type: string

- publicKey (string; required)

publicKey example: string

publicKey.Type: string

- signature (string; required)

signature example: string

signature.Type: string

- smartAccount (string; required)

smartAccount example: string

smartAccount.Type: string

Example



```json
{
  "message": "string",
  "publicKey": "string",
  "signature": "string",
  "smartAccount": "string"
}
```

## Example · cURL

```bash
curl --request POST 'https://api.storm.tg/v3-node-0/smartaccount/self-deposit' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "message": "string",
  "publicKey": "string",
  "signature": "string",
  "smartAccount": "string"
}'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/self-deposit", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  body: "{\n  \"message\": \"string\",\n  \"publicKey\": \"string\",\n  \"signature\": \"string\",\n  \"smartAccount\": \"string\"\n}",
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "POST",
    "https://api.storm.tg/v3-node-0/smartaccount/self-deposit",
    headers={"Accept":"application/json","Content-Type":"application/json"},
    data="{\n  \"message\": \"string\",\n  \"publicKey\": \"string\",\n  \"signature\": \"string\",\n  \"smartAccount\": \"string\"\n}",
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.SelfDepositResponse

**200** application/json — OK

Schema: Trading.api.SelfDepositResponse

Type: object

Required fields: none

- amount (string; optional)

amount example: string

amount.Type: string

- createdAt (integer; optional)

createdAt example: 0

createdAt.Type: integer

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- ok (boolean; optional)

ok example: true

ok.Type: boolean

- queryId (integer; optional)

queryId example: 0

queryId.Type: integer

- replaySlot (integer; optional)

replaySlot example: 0

replaySlot.Type: integer

- txHash (string; optional)

txHash example: string

txHash.Type: string

Example



```json
{
  "amount": "string",
  "createdAt": 0,
  "externalQueryId": "string",
  "ok": true,
  "queryId": 0,
  "replaySlot": 0,
  "txHash": "string"
}
```

## Response 400 · Trading.api.PreflightErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.PreflightErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- details (object; optional)

details example: {
  "key": "string"
}

details.Type: object

details.*.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

Example



```json
{
  "code": "string",
  "details": {
    "key": "string"
  },
  "error": "string",
  "externalQueryId": "string"
}
```

## Response 409 · Trading.api.PreflightErrorResponse

**409** application/json — Conflict

Schema: Trading.api.PreflightErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- details (object; optional)

details example: {
  "key": "string"
}

details.Type: object

details.*.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

Example



```json
{
  "code": "string",
  "details": {
    "key": "string"
  },
  "error": "string",
  "externalQueryId": "string"
}
```

## Response 500 · Trading.api.PreflightErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.PreflightErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- details (object; optional)

details example: {
  "key": "string"
}

details.Type: object

details.*.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

Example



```json
{
  "code": "string",
  "details": {
    "key": "string"
  },
  "error": "string",
  "externalQueryId": "string"
}
```

## Response 502 · Trading.api.PreflightErrorResponse

**502** application/json — Bad Gateway

Schema: Trading.api.PreflightErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- details (object; optional)

details example: {
  "key": "string"
}

details.Type: object

details.*.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

Example



```json
{
  "code": "string",
  "details": {
    "key": "string"
  },
  "error": "string",
  "externalQueryId": "string"
}
```

---

# List account bundles

Source: https://docs.storm.tg/developers/operations/getaccountbundles

# List account bundles

`GET /v3-node-0/smartaccount/{address}/bundles`

Returns the smart account's bundles (optionally filtered by status or market+direction), sorted and paginated

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

- query: status (string; optional). Filter by FSM status: pending|sealed|sent|confirmed|failed

Type: string

- query: market (string; optional). Filter to one position (with direction)

Type: string

- query: direction (string; optional). Position direction: long|short (with market)

Type: string

- query: sort (string; optional). Sort field: query_id|created_at|last_update (default query_id)

Type: string

- query: order (string; optional). Sort order: asc|desc (default asc)

Type: string

- query: limit (integer; optional). Max results (default and max 50)

Type: integer

- query: offset (integer; optional). Results to skip (default 0)

Type: integer

- query: include_trace (boolean; optional). Include the heavy latest_trace field (default false)

Type: boolean

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.bundle.Bundle

**200** application/json — OK

Type: object[]

[]Schema: Trading.bundle.Bundle

[]Type: object

[]Required fields: none

- []created_at (string; optional)

[]created_at example: string

[]created_at.Type: string

- []ext_hash (integer[]; optional)

[]ext_hash example: [
  0
]

[]ext_hash.Type: integer[]

[]ext_hash.[]Type: integer

- []gasless_source (integer · int32 · enum; optional)

[]gasless_source example: 0

[]gasless_source.Schema: Trading.bundle.GaslessSource

[]gasless_source.Type: integer · int32 · enum

[]gasless_source.Allowed values: [0,1,0,1]

[]gasless_source.format: int32

- []id (object; optional)

[]id example: {
  "addr": "string",
  "direction": "long",
  "market": "string",
  "owner": "string"
}

[]id.Schema: Trading.bundle.ID

[]id.Type: object

[]id.Required fields: none

- []id.addr (string; optional)

[]id.addr example: string

[]id.addr.Type: string

- []id.direction (string · enum; optional)

[]id.direction example: long

[]id.direction.Schema: Trading.schemas.Direction

[]id.direction.Type: string · enum

[]id.direction.Allowed values: ["long","short","unknown"]

- []id.market (string; optional)

[]id.market example: string

[]id.market.Type: string

- []id.owner (string; optional)

[]id.owner example: string

[]id.owner.Type: string

- []intent_hashes (integer[][]; optional)

[]intent_hashes example: [
  [
    0
  ]
]

[]intent_hashes.Type: integer[][]

[]intent_hashes.[]Type: integer[]

[]intent_hashes.[][]Type: integer

- []intents (object[]; optional)

[]intents example: [
  {
    "action_phase": "string",
    "builder": {},
    "created_price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "date": "string",
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "market": {},
    "order": {},
    "order_requests": [
      {
        "full_message": {
          "message": {
            "created_at": 0,
            "intent": {
              "order": {},
              "smart_account": {},
              "v_amm": {}
            },
            "public_key": [
              0
            ],
            "query_id": {
              "bit_number": 0,
              "shift": 0
            },
            "reference_query_id": {
              "bit_number": 0,
              "shift": 0
            }
          },
          "public_key": "string",
          "signature": [
            0
          ]
        },
        "hash": [
          0
        ],
        "order_request": {
          "selector": 0
        },
        "order_request_hash": [
          0
        ],
        "smart_account": {}
      }
    ],
    "payment_mode": 0,
    "price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "smart_account": {},
    "vault": {}
  }
]

[]intents.Type: object[]

[]intents.[]Schema: Trading.types.SettledAction

[]intents.[]Type: object

[]intents.[]Required fields: none

- []intents.[]action_phase (string; optional)

[]intents.[]action_phase example: string

[]intents.[]action_phase.Type: string

- []intents.[]builder (object; optional)

[]intents.[]builder example: {}

[]intents.[]builder.Type: object

[]intents.[]builder.Builder is the third-party UI that submitted this intent (unsigned envelope,
like PaymentMode). Earns a rebate only if registered+active. nil = none.

[]intents.[]builder.allOf variant 1

[]intents.[]builder.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]builder.Type: object

- []intents.[]created_price (object; optional)

[]intents.[]created_price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

[]intents.[]created_price.Schema: Trading.oracle.PriceSigned

[]intents.[]created_price.Type: object

[]intents.[]created_price.Required fields: none

- []intents.[]created_price.created_at (object; optional)

[]intents.[]created_price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]created_price.created_at.Schema: Trading.oracle.LatestResponse

[]intents.[]created_price.created_at.Type: object

[]intents.[]created_price.created_at.Required fields: none

- []intents.[]created_price.created_at.closestPauseAt (integer; optional)

[]intents.[]created_price.created_at.closestPauseAt example: 0

[]intents.[]created_price.created_at.closestPauseAt.Type: integer

- []intents.[]created_price.created_at.closestUnpauseAt (integer; optional)

[]intents.[]created_price.created_at.closestUnpauseAt example: 0

[]intents.[]created_price.created_at.closestUnpauseAt.Type: integer

- []intents.[]created_price.created_at.feed (string; optional)

[]intents.[]created_price.created_at.feed example: string

[]intents.[]created_price.created_at.feed.Type: string

- []intents.[]created_price.created_at.inPause (boolean; optional)

[]intents.[]created_price.created_at.inPause example: true

[]intents.[]created_price.created_at.inPause.Type: boolean

- []intents.[]created_price.created_at.isOnline (boolean; optional)

[]intents.[]created_price.created_at.isOnline example: true

[]intents.[]created_price.created_at.isOnline.Type: boolean

- []intents.[]created_price.created_at.k (integer; optional)

[]intents.[]created_price.created_at.k example: 0

[]intents.[]created_price.created_at.k.Type: integer

- []intents.[]created_price.created_at.marketDepthLong (integer; optional)

[]intents.[]created_price.created_at.marketDepthLong example: 0

[]intents.[]created_price.created_at.marketDepthLong.Type: integer

- []intents.[]created_price.created_at.marketDepthShort (integer; optional)

[]intents.[]created_price.created_at.marketDepthShort example: 0

[]intents.[]created_price.created_at.marketDepthShort.Type: integer

- []intents.[]created_price.created_at.pauseAt (integer; optional)

[]intents.[]created_price.created_at.pauseAt example: 0

[]intents.[]created_price.created_at.pauseAt.Type: integer

- []intents.[]created_price.created_at.pausedAt (integer; optional)

[]intents.[]created_price.created_at.pausedAt example: 0

[]intents.[]created_price.created_at.pausedAt.Type: integer

- []intents.[]created_price.created_at.price (integer; optional)

[]intents.[]created_price.created_at.price example: 0

[]intents.[]created_price.created_at.price.Type: integer

- []intents.[]created_price.created_at.result_message (object; optional)

[]intents.[]created_price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]created_price.created_at.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]created_price.created_at.result_message.Type: object

[]intents.[]created_price.created_at.result_message.Required fields: none

- []intents.[]created_price.created_at.result_message.price_ref (string; optional)

[]intents.[]created_price.created_at.result_message.price_ref example: string

[]intents.[]created_price.created_at.result_message.price_ref.Type: string

- []intents.[]created_price.created_at.result_message.signatures_ref (string; optional)

[]intents.[]created_price.created_at.result_message.signatures_ref example: string

[]intents.[]created_price.created_at.result_message.signatures_ref.Type: string

- []intents.[]created_price.created_at.slot (integer; optional)

[]intents.[]created_price.created_at.slot example: 0

[]intents.[]created_price.created_at.slot.Type: integer

- []intents.[]created_price.created_at.spread (integer; optional)

[]intents.[]created_price.created_at.spread example: 0

[]intents.[]created_price.created_at.spread.Type: integer

- []intents.[]created_price.created_at.status (string; optional)

[]intents.[]created_price.created_at.status example: string

[]intents.[]created_price.created_at.status.Type: string

- []intents.[]created_price.created_at.timestamp (integer; optional)

[]intents.[]created_price.created_at.timestamp example: 0

[]intents.[]created_price.created_at.timestamp.Type: integer

- []intents.[]created_price.created_at.unpauseAt (integer; optional)

[]intents.[]created_price.created_at.unpauseAt example: 0

[]intents.[]created_price.created_at.unpauseAt.Type: integer

- []intents.[]created_price.index (object; optional)

[]intents.[]created_price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]created_price.index.Schema: Trading.oracle.LatestResponse

[]intents.[]created_price.index.Type: object

[]intents.[]created_price.index.Required fields: none

- []intents.[]created_price.index.closestPauseAt (integer; optional)

[]intents.[]created_price.index.closestPauseAt example: 0

[]intents.[]created_price.index.closestPauseAt.Type: integer

- []intents.[]created_price.index.closestUnpauseAt (integer; optional)

[]intents.[]created_price.index.closestUnpauseAt example: 0

[]intents.[]created_price.index.closestUnpauseAt.Type: integer

- []intents.[]created_price.index.feed (string; optional)

[]intents.[]created_price.index.feed example: string

[]intents.[]created_price.index.feed.Type: string

- []intents.[]created_price.index.inPause (boolean; optional)

[]intents.[]created_price.index.inPause example: true

[]intents.[]created_price.index.inPause.Type: boolean

- []intents.[]created_price.index.isOnline (boolean; optional)

[]intents.[]created_price.index.isOnline example: true

[]intents.[]created_price.index.isOnline.Type: boolean

- []intents.[]created_price.index.k (integer; optional)

[]intents.[]created_price.index.k example: 0

[]intents.[]created_price.index.k.Type: integer

- []intents.[]created_price.index.marketDepthLong (integer; optional)

[]intents.[]created_price.index.marketDepthLong example: 0

[]intents.[]created_price.index.marketDepthLong.Type: integer

- []intents.[]created_price.index.marketDepthShort (integer; optional)

[]intents.[]created_price.index.marketDepthShort example: 0

[]intents.[]created_price.index.marketDepthShort.Type: integer

- []intents.[]created_price.index.pauseAt (integer; optional)

[]intents.[]created_price.index.pauseAt example: 0

[]intents.[]created_price.index.pauseAt.Type: integer

- []intents.[]created_price.index.pausedAt (integer; optional)

[]intents.[]created_price.index.pausedAt example: 0

[]intents.[]created_price.index.pausedAt.Type: integer

- []intents.[]created_price.index.price (integer; optional)

[]intents.[]created_price.index.price example: 0

[]intents.[]created_price.index.price.Type: integer

- []intents.[]created_price.index.result_message (object; optional)

[]intents.[]created_price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]created_price.index.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]created_price.index.result_message.Type: object

[]intents.[]created_price.index.result_message.Required fields: none

- []intents.[]created_price.index.result_message.price_ref (string; optional)

[]intents.[]created_price.index.result_message.price_ref example: string

[]intents.[]created_price.index.result_message.price_ref.Type: string

- []intents.[]created_price.index.result_message.signatures_ref (string; optional)

[]intents.[]created_price.index.result_message.signatures_ref example: string

[]intents.[]created_price.index.result_message.signatures_ref.Type: string

- []intents.[]created_price.index.slot (integer; optional)

[]intents.[]created_price.index.slot example: 0

[]intents.[]created_price.index.slot.Type: integer

- []intents.[]created_price.index.spread (integer; optional)

[]intents.[]created_price.index.spread example: 0

[]intents.[]created_price.index.spread.Type: integer

- []intents.[]created_price.index.status (string; optional)

[]intents.[]created_price.index.status example: string

[]intents.[]created_price.index.status.Type: string

- []intents.[]created_price.index.timestamp (integer; optional)

[]intents.[]created_price.index.timestamp example: 0

[]intents.[]created_price.index.timestamp.Type: integer

- []intents.[]created_price.index.unpauseAt (integer; optional)

[]intents.[]created_price.index.unpauseAt example: 0

[]intents.[]created_price.index.unpauseAt.Type: integer

- []intents.[]created_price.rfc (object; optional)

[]intents.[]created_price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

[]intents.[]created_price.rfc.Type: object

[]intents.[]created_price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

[]intents.[]created_price.rfc.allOf variant 1

[]intents.[]created_price.rfc.Schema: Trading.oracle.RFQResult

[]intents.[]created_price.rfc.Type: object

[]intents.[]created_price.rfc.Required fields: none

- []intents.[]created_price.rfc.effective_depth (integer; optional)

[]intents.[]created_price.rfc.effective_depth example: 0

[]intents.[]created_price.rfc.effective_depth.Type: integer

- []intents.[]created_price.rfc.original_k (integer; optional)

[]intents.[]created_price.rfc.original_k example: 0

[]intents.[]created_price.rfc.original_k.Type: integer

- []intents.[]created_price.rfc.original_market_depth_long (integer; optional)

[]intents.[]created_price.rfc.original_market_depth_long example: 0

[]intents.[]created_price.rfc.original_market_depth_long.Type: integer

[]intents.[]created_price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- []intents.[]created_price.rfc.original_market_depth_short (integer; optional)

[]intents.[]created_price.rfc.original_market_depth_short example: 0

[]intents.[]created_price.rfc.original_market_depth_short.Type: integer

- []intents.[]created_price.rfc.original_spread (integer; optional)

[]intents.[]created_price.rfc.original_spread example: 0

[]intents.[]created_price.rfc.original_spread.Type: integer

- []intents.[]created_price.rfc.recovery_rate (number; optional)

[]intents.[]created_price.rfc.recovery_rate example: 0

[]intents.[]created_price.rfc.recovery_rate.Type: number

- []intents.[]created_price.rfc.signed_price (object; optional)

[]intents.[]created_price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]created_price.rfc.signed_price.Type: object

[]intents.[]created_price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

[]intents.[]created_price.rfc.signed_price.allOf variant 1

[]intents.[]created_price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

[]intents.[]created_price.rfc.signed_price.Type: object

[]intents.[]created_price.rfc.signed_price.Required fields: none

- []intents.[]created_price.rfc.signed_price.closestPauseAt (integer; optional)

[]intents.[]created_price.rfc.signed_price.closestPauseAt example: 0

[]intents.[]created_price.rfc.signed_price.closestPauseAt.Type: integer

- []intents.[]created_price.rfc.signed_price.closestUnpauseAt (integer; optional)

[]intents.[]created_price.rfc.signed_price.closestUnpauseAt example: 0

[]intents.[]created_price.rfc.signed_price.closestUnpauseAt.Type: integer

- []intents.[]created_price.rfc.signed_price.feed (string; optional)

[]intents.[]created_price.rfc.signed_price.feed example: string

[]intents.[]created_price.rfc.signed_price.feed.Type: string

- []intents.[]created_price.rfc.signed_price.inPause (boolean; optional)

[]intents.[]created_price.rfc.signed_price.inPause example: true

[]intents.[]created_price.rfc.signed_price.inPause.Type: boolean

- []intents.[]created_price.rfc.signed_price.isOnline (boolean; optional)

[]intents.[]created_price.rfc.signed_price.isOnline example: true

[]intents.[]created_price.rfc.signed_price.isOnline.Type: boolean

- []intents.[]created_price.rfc.signed_price.k (integer; optional)

[]intents.[]created_price.rfc.signed_price.k example: 0

[]intents.[]created_price.rfc.signed_price.k.Type: integer

- []intents.[]created_price.rfc.signed_price.marketDepthLong (integer; optional)

[]intents.[]created_price.rfc.signed_price.marketDepthLong example: 0

[]intents.[]created_price.rfc.signed_price.marketDepthLong.Type: integer

- []intents.[]created_price.rfc.signed_price.marketDepthShort (integer; optional)

[]intents.[]created_price.rfc.signed_price.marketDepthShort example: 0

[]intents.[]created_price.rfc.signed_price.marketDepthShort.Type: integer

- []intents.[]created_price.rfc.signed_price.pauseAt (integer; optional)

[]intents.[]created_price.rfc.signed_price.pauseAt example: 0

[]intents.[]created_price.rfc.signed_price.pauseAt.Type: integer

- []intents.[]created_price.rfc.signed_price.pausedAt (integer; optional)

[]intents.[]created_price.rfc.signed_price.pausedAt example: 0

[]intents.[]created_price.rfc.signed_price.pausedAt.Type: integer

- []intents.[]created_price.rfc.signed_price.price (integer; optional)

[]intents.[]created_price.rfc.signed_price.price example: 0

[]intents.[]created_price.rfc.signed_price.price.Type: integer

- []intents.[]created_price.rfc.signed_price.result_message (object; optional)

[]intents.[]created_price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]created_price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]created_price.rfc.signed_price.result_message.Type: object

[]intents.[]created_price.rfc.signed_price.result_message.Required fields: none

- []intents.[]created_price.rfc.signed_price.result_message.price_ref (string; optional)

[]intents.[]created_price.rfc.signed_price.result_message.price_ref example: string

[]intents.[]created_price.rfc.signed_price.result_message.price_ref.Type: string

- []intents.[]created_price.rfc.signed_price.result_message.signatures_ref (string; optional)

[]intents.[]created_price.rfc.signed_price.result_message.signatures_ref example: string

[]intents.[]created_price.rfc.signed_price.result_message.signatures_ref.Type: string

- []intents.[]created_price.rfc.signed_price.slot (integer; optional)

[]intents.[]created_price.rfc.signed_price.slot example: 0

[]intents.[]created_price.rfc.signed_price.slot.Type: integer

- []intents.[]created_price.rfc.signed_price.spread (integer; optional)

[]intents.[]created_price.rfc.signed_price.spread example: 0

[]intents.[]created_price.rfc.signed_price.spread.Type: integer

- []intents.[]created_price.rfc.signed_price.status (string; optional)

[]intents.[]created_price.rfc.signed_price.status example: string

[]intents.[]created_price.rfc.signed_price.status.Type: string

- []intents.[]created_price.rfc.signed_price.timestamp (integer; optional)

[]intents.[]created_price.rfc.signed_price.timestamp example: 0

[]intents.[]created_price.rfc.signed_price.timestamp.Type: integer

- []intents.[]created_price.rfc.signed_price.unpauseAt (integer; optional)

[]intents.[]created_price.rfc.signed_price.unpauseAt example: 0

[]intents.[]created_price.rfc.signed_price.unpauseAt.Type: integer

- []intents.[]created_price.rfc.velocity_debt (integer; optional)

[]intents.[]created_price.rfc.velocity_debt example: 0

[]intents.[]created_price.rfc.velocity_debt.Type: integer

[]intents.[]created_price.rfc.velocity_debt.Velocity calculation results

- []intents.[]created_price.settlement (object; optional)

[]intents.[]created_price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]created_price.settlement.Schema: Trading.oracle.LatestResponse

[]intents.[]created_price.settlement.Type: object

[]intents.[]created_price.settlement.Required fields: none

- []intents.[]created_price.settlement.closestPauseAt (integer; optional)

[]intents.[]created_price.settlement.closestPauseAt example: 0

[]intents.[]created_price.settlement.closestPauseAt.Type: integer

- []intents.[]created_price.settlement.closestUnpauseAt (integer; optional)

[]intents.[]created_price.settlement.closestUnpauseAt example: 0

[]intents.[]created_price.settlement.closestUnpauseAt.Type: integer

- []intents.[]created_price.settlement.feed (string; optional)

[]intents.[]created_price.settlement.feed example: string

[]intents.[]created_price.settlement.feed.Type: string

- []intents.[]created_price.settlement.inPause (boolean; optional)

[]intents.[]created_price.settlement.inPause example: true

[]intents.[]created_price.settlement.inPause.Type: boolean

- []intents.[]created_price.settlement.isOnline (boolean; optional)

[]intents.[]created_price.settlement.isOnline example: true

[]intents.[]created_price.settlement.isOnline.Type: boolean

- []intents.[]created_price.settlement.k (integer; optional)

[]intents.[]created_price.settlement.k example: 0

[]intents.[]created_price.settlement.k.Type: integer

- []intents.[]created_price.settlement.marketDepthLong (integer; optional)

[]intents.[]created_price.settlement.marketDepthLong example: 0

[]intents.[]created_price.settlement.marketDepthLong.Type: integer

- []intents.[]created_price.settlement.marketDepthShort (integer; optional)

[]intents.[]created_price.settlement.marketDepthShort example: 0

[]intents.[]created_price.settlement.marketDepthShort.Type: integer

- []intents.[]created_price.settlement.pauseAt (integer; optional)

[]intents.[]created_price.settlement.pauseAt example: 0

[]intents.[]created_price.settlement.pauseAt.Type: integer

- []intents.[]created_price.settlement.pausedAt (integer; optional)

[]intents.[]created_price.settlement.pausedAt example: 0

[]intents.[]created_price.settlement.pausedAt.Type: integer

- []intents.[]created_price.settlement.price (integer; optional)

[]intents.[]created_price.settlement.price example: 0

[]intents.[]created_price.settlement.price.Type: integer

- []intents.[]created_price.settlement.result_message (object; optional)

[]intents.[]created_price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]created_price.settlement.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]created_price.settlement.result_message.Type: object

[]intents.[]created_price.settlement.result_message.Required fields: none

- []intents.[]created_price.settlement.result_message.price_ref (string; optional)

[]intents.[]created_price.settlement.result_message.price_ref example: string

[]intents.[]created_price.settlement.result_message.price_ref.Type: string

- []intents.[]created_price.settlement.result_message.signatures_ref (string; optional)

[]intents.[]created_price.settlement.result_message.signatures_ref example: string

[]intents.[]created_price.settlement.result_message.signatures_ref.Type: string

- []intents.[]created_price.settlement.slot (integer; optional)

[]intents.[]created_price.settlement.slot example: 0

[]intents.[]created_price.settlement.slot.Type: integer

- []intents.[]created_price.settlement.spread (integer; optional)

[]intents.[]created_price.settlement.spread example: 0

[]intents.[]created_price.settlement.spread.Type: integer

- []intents.[]created_price.settlement.status (string; optional)

[]intents.[]created_price.settlement.status example: string

[]intents.[]created_price.settlement.status.Type: string

- []intents.[]created_price.settlement.timestamp (integer; optional)

[]intents.[]created_price.settlement.timestamp example: 0

[]intents.[]created_price.settlement.timestamp.Type: integer

- []intents.[]created_price.settlement.unpauseAt (integer; optional)

[]intents.[]created_price.settlement.unpauseAt example: 0

[]intents.[]created_price.settlement.unpauseAt.Type: integer

- []intents.[]created_price.timestamp (string; optional)

[]intents.[]created_price.timestamp example: string

[]intents.[]created_price.timestamp.Type: string

- []intents.[]date (string; optional)

[]intents.[]date example: string

[]intents.[]date.Type: string

- []intents.[]full_message (object; optional)

[]intents.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

[]intents.[]full_message.Schema: Trading.smartaccount.SignedMessage

[]intents.[]full_message.Type: object

[]intents.[]full_message.Required fields: none

- []intents.[]full_message.message (object; optional)

[]intents.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

[]intents.[]full_message.message.Schema: Trading.smartaccount.UserIntent

[]intents.[]full_message.message.Type: object

[]intents.[]full_message.message.Required fields: none

- []intents.[]full_message.message.created_at (integer; optional)

[]intents.[]full_message.message.created_at example: 0

[]intents.[]full_message.message.created_at.Type: integer

- []intents.[]full_message.message.intent (object; optional)

[]intents.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

[]intents.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

[]intents.[]full_message.message.intent.Type: object

[]intents.[]full_message.message.intent.Required fields: none

- []intents.[]full_message.message.intent.order (object; optional)

[]intents.[]full_message.message.intent.order example: {}

[]intents.[]full_message.message.intent.order.Schema: Trading.schemas.Order

[]intents.[]full_message.message.intent.order.Type: object

[]intents.[]full_message.message.intent.order.Required fields: none

- []intents.[]full_message.message.intent.order.order (any; optional)

[]intents.[]full_message.message.intent.order.order.Type: any

- []intents.[]full_message.message.intent.smart_account (object; optional)

[]intents.[]full_message.message.intent.smart_account example: {}

[]intents.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]full_message.message.intent.smart_account.Type: object

- []intents.[]full_message.message.intent.v_amm (object; optional)

[]intents.[]full_message.message.intent.v_amm example: {}

[]intents.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]full_message.message.intent.v_amm.Type: object

- []intents.[]full_message.message.public_key (integer[]; optional)

[]intents.[]full_message.message.public_key example: [
  0
]

[]intents.[]full_message.message.public_key.Type: integer[]

[]intents.[]full_message.message.public_key.pk

[]intents.[]full_message.message.public_key.[]Type: integer

- []intents.[]full_message.message.query_id (object; optional)

[]intents.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

[]intents.[]full_message.message.query_id.Schema: Trading.hw.QueryId

[]intents.[]full_message.message.query_id.Type: object

[]intents.[]full_message.message.query_id.Required fields: none

- []intents.[]full_message.message.query_id.bit_number (integer; optional)

[]intents.[]full_message.message.query_id.bit_number example: 0

[]intents.[]full_message.message.query_id.bit_number.Type: integer

- []intents.[]full_message.message.query_id.shift (integer; optional)

[]intents.[]full_message.message.query_id.shift example: 0

[]intents.[]full_message.message.query_id.shift.Type: integer

- []intents.[]full_message.message.reference_query_id (object; optional)

[]intents.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

[]intents.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

[]intents.[]full_message.message.reference_query_id.Type: object

[]intents.[]full_message.message.reference_query_id.Required fields: none

- []intents.[]full_message.message.reference_query_id.bit_number (integer; optional)

[]intents.[]full_message.message.reference_query_id.bit_number example: 0

[]intents.[]full_message.message.reference_query_id.bit_number.Type: integer

- []intents.[]full_message.message.reference_query_id.shift (integer; optional)

[]intents.[]full_message.message.reference_query_id.shift example: 0

[]intents.[]full_message.message.reference_query_id.shift.Type: integer

- []intents.[]full_message.public_key (string; optional)

[]intents.[]full_message.public_key example: string

[]intents.[]full_message.public_key.Type: string

- []intents.[]full_message.signature (integer[]; optional)

[]intents.[]full_message.signature example: [
  0
]

[]intents.[]full_message.signature.Type: integer[]

[]intents.[]full_message.signature.[]Type: integer

- []intents.[]hash (integer[]; optional)

[]intents.[]hash example: [
  0
]

[]intents.[]hash.Type: integer[]

[]intents.[]hash.[]Type: integer

- []intents.[]market (object; optional)

[]intents.[]market example: {}

[]intents.[]market.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]market.Type: object

- []intents.[]order (object; optional)

[]intents.[]order example: {}

[]intents.[]order.Schema: Trading.schemas.Order

[]intents.[]order.Type: object

[]intents.[]order.Required fields: none

- []intents.[]order.order (any; optional)

[]intents.[]order.order.Type: any

- []intents.[]order_requests (object[]; optional)

[]intents.[]order_requests example: [
  {
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "order_request": {
      "selector": 0
    },
    "order_request_hash": [
      0
    ],
    "smart_account": {}
  }
]

[]intents.[]order_requests.Type: object[]

[]intents.[]order_requests.[]Schema: Trading.types.OrderRequestIntent

[]intents.[]order_requests.[]Type: object

[]intents.[]order_requests.[]Required fields: none

- []intents.[]order_requests.[]full_message (object; optional)

[]intents.[]order_requests.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

[]intents.[]order_requests.[]full_message.Schema: Trading.smartaccount.SignedMessage

[]intents.[]order_requests.[]full_message.Type: object

[]intents.[]order_requests.[]full_message.Required fields: none

- []intents.[]order_requests.[]full_message.message (object; optional)

[]intents.[]order_requests.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

[]intents.[]order_requests.[]full_message.message.Schema: Trading.smartaccount.UserIntent

[]intents.[]order_requests.[]full_message.message.Type: object

[]intents.[]order_requests.[]full_message.message.Required fields: none

- []intents.[]order_requests.[]full_message.message.created_at (integer; optional)

[]intents.[]order_requests.[]full_message.message.created_at example: 0

[]intents.[]order_requests.[]full_message.message.created_at.Type: integer

- []intents.[]order_requests.[]full_message.message.intent (object; optional)

[]intents.[]order_requests.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

[]intents.[]order_requests.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

[]intents.[]order_requests.[]full_message.message.intent.Type: object

[]intents.[]order_requests.[]full_message.message.intent.Required fields: none

- []intents.[]order_requests.[]full_message.message.intent.order (object; optional)

[]intents.[]order_requests.[]full_message.message.intent.order example: {}

[]intents.[]order_requests.[]full_message.message.intent.order.Schema: Trading.schemas.Order

[]intents.[]order_requests.[]full_message.message.intent.order.Type: object

[]intents.[]order_requests.[]full_message.message.intent.order.Required fields: none

- []intents.[]order_requests.[]full_message.message.intent.order.order (any; optional)

[]intents.[]order_requests.[]full_message.message.intent.order.order.Type: any

- []intents.[]order_requests.[]full_message.message.intent.smart_account (object; optional)

[]intents.[]order_requests.[]full_message.message.intent.smart_account example: {}

[]intents.[]order_requests.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]order_requests.[]full_message.message.intent.smart_account.Type: object

- []intents.[]order_requests.[]full_message.message.intent.v_amm (object; optional)

[]intents.[]order_requests.[]full_message.message.intent.v_amm example: {}

[]intents.[]order_requests.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]order_requests.[]full_message.message.intent.v_amm.Type: object

- []intents.[]order_requests.[]full_message.message.public_key (integer[]; optional)

[]intents.[]order_requests.[]full_message.message.public_key example: [
  0
]

[]intents.[]order_requests.[]full_message.message.public_key.Type: integer[]

[]intents.[]order_requests.[]full_message.message.public_key.pk

[]intents.[]order_requests.[]full_message.message.public_key.[]Type: integer

- []intents.[]order_requests.[]full_message.message.query_id (object; optional)

[]intents.[]order_requests.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

[]intents.[]order_requests.[]full_message.message.query_id.Schema: Trading.hw.QueryId

[]intents.[]order_requests.[]full_message.message.query_id.Type: object

[]intents.[]order_requests.[]full_message.message.query_id.Required fields: none

- []intents.[]order_requests.[]full_message.message.query_id.bit_number (integer; optional)

[]intents.[]order_requests.[]full_message.message.query_id.bit_number example: 0

[]intents.[]order_requests.[]full_message.message.query_id.bit_number.Type: integer

- []intents.[]order_requests.[]full_message.message.query_id.shift (integer; optional)

[]intents.[]order_requests.[]full_message.message.query_id.shift example: 0

[]intents.[]order_requests.[]full_message.message.query_id.shift.Type: integer

- []intents.[]order_requests.[]full_message.message.reference_query_id (object; optional)

[]intents.[]order_requests.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

[]intents.[]order_requests.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

[]intents.[]order_requests.[]full_message.message.reference_query_id.Type: object

[]intents.[]order_requests.[]full_message.message.reference_query_id.Required fields: none

- []intents.[]order_requests.[]full_message.message.reference_query_id.bit_number (integer; optional)

[]intents.[]order_requests.[]full_message.message.reference_query_id.bit_number example: 0

[]intents.[]order_requests.[]full_message.message.reference_query_id.bit_number.Type: integer

- []intents.[]order_requests.[]full_message.message.reference_query_id.shift (integer; optional)

[]intents.[]order_requests.[]full_message.message.reference_query_id.shift example: 0

[]intents.[]order_requests.[]full_message.message.reference_query_id.shift.Type: integer

- []intents.[]order_requests.[]full_message.public_key (string; optional)

[]intents.[]order_requests.[]full_message.public_key example: string

[]intents.[]order_requests.[]full_message.public_key.Type: string

- []intents.[]order_requests.[]full_message.signature (integer[]; optional)

[]intents.[]order_requests.[]full_message.signature example: [
  0
]

[]intents.[]order_requests.[]full_message.signature.Type: integer[]

[]intents.[]order_requests.[]full_message.signature.[]Type: integer

- []intents.[]order_requests.[]hash (integer[]; optional)

[]intents.[]order_requests.[]hash example: [
  0
]

[]intents.[]order_requests.[]hash.Type: integer[]

[]intents.[]order_requests.[]hash.[]Type: integer

- []intents.[]order_requests.[]order_request (object; optional)

[]intents.[]order_requests.[]order_request example: {
  "selector": 0
}

[]intents.[]order_requests.[]order_request.Schema: Trading.schemas.OrderRequest

[]intents.[]order_requests.[]order_request.Type: object

[]intents.[]order_requests.[]order_request.Required fields: none

- []intents.[]order_requests.[]order_request.order (any; optional)

[]intents.[]order_requests.[]order_request.order.Type: any

- []intents.[]order_requests.[]order_request.selector (integer; optional)

[]intents.[]order_requests.[]order_request.selector example: 0

[]intents.[]order_requests.[]order_request.selector.Type: integer

- []intents.[]order_requests.[]order_request_hash (integer[]; optional)

[]intents.[]order_requests.[]order_request_hash example: [
  0
]

[]intents.[]order_requests.[]order_request_hash.Type: integer[]

[]intents.[]order_requests.[]order_request_hash.[]Type: integer

- []intents.[]order_requests.[]smart_account (object; optional)

[]intents.[]order_requests.[]smart_account example: {}

[]intents.[]order_requests.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]order_requests.[]smart_account.Type: object

- []intents.[]payment_mode (integer · int32 · enum; optional)

[]intents.[]payment_mode example: 0

[]intents.[]payment_mode.Schema: Trading.types.PaymentMode

[]intents.[]payment_mode.Type: integer · int32 · enum

[]intents.[]payment_mode.Allowed values: [0,1]

[]intents.[]payment_mode.format: int32

- []intents.[]price (object; optional)

[]intents.[]price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

[]intents.[]price.Schema: Trading.oracle.PriceSigned

[]intents.[]price.Type: object

[]intents.[]price.Required fields: none

- []intents.[]price.created_at (object; optional)

[]intents.[]price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]price.created_at.Schema: Trading.oracle.LatestResponse

[]intents.[]price.created_at.Type: object

[]intents.[]price.created_at.Required fields: none

- []intents.[]price.created_at.closestPauseAt (integer; optional)

[]intents.[]price.created_at.closestPauseAt example: 0

[]intents.[]price.created_at.closestPauseAt.Type: integer

- []intents.[]price.created_at.closestUnpauseAt (integer; optional)

[]intents.[]price.created_at.closestUnpauseAt example: 0

[]intents.[]price.created_at.closestUnpauseAt.Type: integer

- []intents.[]price.created_at.feed (string; optional)

[]intents.[]price.created_at.feed example: string

[]intents.[]price.created_at.feed.Type: string

- []intents.[]price.created_at.inPause (boolean; optional)

[]intents.[]price.created_at.inPause example: true

[]intents.[]price.created_at.inPause.Type: boolean

- []intents.[]price.created_at.isOnline (boolean; optional)

[]intents.[]price.created_at.isOnline example: true

[]intents.[]price.created_at.isOnline.Type: boolean

- []intents.[]price.created_at.k (integer; optional)

[]intents.[]price.created_at.k example: 0

[]intents.[]price.created_at.k.Type: integer

- []intents.[]price.created_at.marketDepthLong (integer; optional)

[]intents.[]price.created_at.marketDepthLong example: 0

[]intents.[]price.created_at.marketDepthLong.Type: integer

- []intents.[]price.created_at.marketDepthShort (integer; optional)

[]intents.[]price.created_at.marketDepthShort example: 0

[]intents.[]price.created_at.marketDepthShort.Type: integer

- []intents.[]price.created_at.pauseAt (integer; optional)

[]intents.[]price.created_at.pauseAt example: 0

[]intents.[]price.created_at.pauseAt.Type: integer

- []intents.[]price.created_at.pausedAt (integer; optional)

[]intents.[]price.created_at.pausedAt example: 0

[]intents.[]price.created_at.pausedAt.Type: integer

- []intents.[]price.created_at.price (integer; optional)

[]intents.[]price.created_at.price example: 0

[]intents.[]price.created_at.price.Type: integer

- []intents.[]price.created_at.result_message (object; optional)

[]intents.[]price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]price.created_at.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]price.created_at.result_message.Type: object

[]intents.[]price.created_at.result_message.Required fields: none

- []intents.[]price.created_at.result_message.price_ref (string; optional)

[]intents.[]price.created_at.result_message.price_ref example: string

[]intents.[]price.created_at.result_message.price_ref.Type: string

- []intents.[]price.created_at.result_message.signatures_ref (string; optional)

[]intents.[]price.created_at.result_message.signatures_ref example: string

[]intents.[]price.created_at.result_message.signatures_ref.Type: string

- []intents.[]price.created_at.slot (integer; optional)

[]intents.[]price.created_at.slot example: 0

[]intents.[]price.created_at.slot.Type: integer

- []intents.[]price.created_at.spread (integer; optional)

[]intents.[]price.created_at.spread example: 0

[]intents.[]price.created_at.spread.Type: integer

- []intents.[]price.created_at.status (string; optional)

[]intents.[]price.created_at.status example: string

[]intents.[]price.created_at.status.Type: string

- []intents.[]price.created_at.timestamp (integer; optional)

[]intents.[]price.created_at.timestamp example: 0

[]intents.[]price.created_at.timestamp.Type: integer

- []intents.[]price.created_at.unpauseAt (integer; optional)

[]intents.[]price.created_at.unpauseAt example: 0

[]intents.[]price.created_at.unpauseAt.Type: integer

- []intents.[]price.index (object; optional)

[]intents.[]price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]price.index.Schema: Trading.oracle.LatestResponse

[]intents.[]price.index.Type: object

[]intents.[]price.index.Required fields: none

- []intents.[]price.index.closestPauseAt (integer; optional)

[]intents.[]price.index.closestPauseAt example: 0

[]intents.[]price.index.closestPauseAt.Type: integer

- []intents.[]price.index.closestUnpauseAt (integer; optional)

[]intents.[]price.index.closestUnpauseAt example: 0

[]intents.[]price.index.closestUnpauseAt.Type: integer

- []intents.[]price.index.feed (string; optional)

[]intents.[]price.index.feed example: string

[]intents.[]price.index.feed.Type: string

- []intents.[]price.index.inPause (boolean; optional)

[]intents.[]price.index.inPause example: true

[]intents.[]price.index.inPause.Type: boolean

- []intents.[]price.index.isOnline (boolean; optional)

[]intents.[]price.index.isOnline example: true

[]intents.[]price.index.isOnline.Type: boolean

- []intents.[]price.index.k (integer; optional)

[]intents.[]price.index.k example: 0

[]intents.[]price.index.k.Type: integer

- []intents.[]price.index.marketDepthLong (integer; optional)

[]intents.[]price.index.marketDepthLong example: 0

[]intents.[]price.index.marketDepthLong.Type: integer

- []intents.[]price.index.marketDepthShort (integer; optional)

[]intents.[]price.index.marketDepthShort example: 0

[]intents.[]price.index.marketDepthShort.Type: integer

- []intents.[]price.index.pauseAt (integer; optional)

[]intents.[]price.index.pauseAt example: 0

[]intents.[]price.index.pauseAt.Type: integer

- []intents.[]price.index.pausedAt (integer; optional)

[]intents.[]price.index.pausedAt example: 0

[]intents.[]price.index.pausedAt.Type: integer

- []intents.[]price.index.price (integer; optional)

[]intents.[]price.index.price example: 0

[]intents.[]price.index.price.Type: integer

- []intents.[]price.index.result_message (object; optional)

[]intents.[]price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]price.index.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]price.index.result_message.Type: object

[]intents.[]price.index.result_message.Required fields: none

- []intents.[]price.index.result_message.price_ref (string; optional)

[]intents.[]price.index.result_message.price_ref example: string

[]intents.[]price.index.result_message.price_ref.Type: string

- []intents.[]price.index.result_message.signatures_ref (string; optional)

[]intents.[]price.index.result_message.signatures_ref example: string

[]intents.[]price.index.result_message.signatures_ref.Type: string

- []intents.[]price.index.slot (integer; optional)

[]intents.[]price.index.slot example: 0

[]intents.[]price.index.slot.Type: integer

- []intents.[]price.index.spread (integer; optional)

[]intents.[]price.index.spread example: 0

[]intents.[]price.index.spread.Type: integer

- []intents.[]price.index.status (string; optional)

[]intents.[]price.index.status example: string

[]intents.[]price.index.status.Type: string

- []intents.[]price.index.timestamp (integer; optional)

[]intents.[]price.index.timestamp example: 0

[]intents.[]price.index.timestamp.Type: integer

- []intents.[]price.index.unpauseAt (integer; optional)

[]intents.[]price.index.unpauseAt example: 0

[]intents.[]price.index.unpauseAt.Type: integer

- []intents.[]price.rfc (object; optional)

[]intents.[]price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

[]intents.[]price.rfc.Type: object

[]intents.[]price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

[]intents.[]price.rfc.allOf variant 1

[]intents.[]price.rfc.Schema: Trading.oracle.RFQResult

[]intents.[]price.rfc.Type: object

[]intents.[]price.rfc.Required fields: none

- []intents.[]price.rfc.effective_depth (integer; optional)

[]intents.[]price.rfc.effective_depth example: 0

[]intents.[]price.rfc.effective_depth.Type: integer

- []intents.[]price.rfc.original_k (integer; optional)

[]intents.[]price.rfc.original_k example: 0

[]intents.[]price.rfc.original_k.Type: integer

- []intents.[]price.rfc.original_market_depth_long (integer; optional)

[]intents.[]price.rfc.original_market_depth_long example: 0

[]intents.[]price.rfc.original_market_depth_long.Type: integer

[]intents.[]price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- []intents.[]price.rfc.original_market_depth_short (integer; optional)

[]intents.[]price.rfc.original_market_depth_short example: 0

[]intents.[]price.rfc.original_market_depth_short.Type: integer

- []intents.[]price.rfc.original_spread (integer; optional)

[]intents.[]price.rfc.original_spread example: 0

[]intents.[]price.rfc.original_spread.Type: integer

- []intents.[]price.rfc.recovery_rate (number; optional)

[]intents.[]price.rfc.recovery_rate example: 0

[]intents.[]price.rfc.recovery_rate.Type: number

- []intents.[]price.rfc.signed_price (object; optional)

[]intents.[]price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]price.rfc.signed_price.Type: object

[]intents.[]price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

[]intents.[]price.rfc.signed_price.allOf variant 1

[]intents.[]price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

[]intents.[]price.rfc.signed_price.Type: object

[]intents.[]price.rfc.signed_price.Required fields: none

- []intents.[]price.rfc.signed_price.closestPauseAt (integer; optional)

[]intents.[]price.rfc.signed_price.closestPauseAt example: 0

[]intents.[]price.rfc.signed_price.closestPauseAt.Type: integer

- []intents.[]price.rfc.signed_price.closestUnpauseAt (integer; optional)

[]intents.[]price.rfc.signed_price.closestUnpauseAt example: 0

[]intents.[]price.rfc.signed_price.closestUnpauseAt.Type: integer

- []intents.[]price.rfc.signed_price.feed (string; optional)

[]intents.[]price.rfc.signed_price.feed example: string

[]intents.[]price.rfc.signed_price.feed.Type: string

- []intents.[]price.rfc.signed_price.inPause (boolean; optional)

[]intents.[]price.rfc.signed_price.inPause example: true

[]intents.[]price.rfc.signed_price.inPause.Type: boolean

- []intents.[]price.rfc.signed_price.isOnline (boolean; optional)

[]intents.[]price.rfc.signed_price.isOnline example: true

[]intents.[]price.rfc.signed_price.isOnline.Type: boolean

- []intents.[]price.rfc.signed_price.k (integer; optional)

[]intents.[]price.rfc.signed_price.k example: 0

[]intents.[]price.rfc.signed_price.k.Type: integer

- []intents.[]price.rfc.signed_price.marketDepthLong (integer; optional)

[]intents.[]price.rfc.signed_price.marketDepthLong example: 0

[]intents.[]price.rfc.signed_price.marketDepthLong.Type: integer

- []intents.[]price.rfc.signed_price.marketDepthShort (integer; optional)

[]intents.[]price.rfc.signed_price.marketDepthShort example: 0

[]intents.[]price.rfc.signed_price.marketDepthShort.Type: integer

- []intents.[]price.rfc.signed_price.pauseAt (integer; optional)

[]intents.[]price.rfc.signed_price.pauseAt example: 0

[]intents.[]price.rfc.signed_price.pauseAt.Type: integer

- []intents.[]price.rfc.signed_price.pausedAt (integer; optional)

[]intents.[]price.rfc.signed_price.pausedAt example: 0

[]intents.[]price.rfc.signed_price.pausedAt.Type: integer

- []intents.[]price.rfc.signed_price.price (integer; optional)

[]intents.[]price.rfc.signed_price.price example: 0

[]intents.[]price.rfc.signed_price.price.Type: integer

- []intents.[]price.rfc.signed_price.result_message (object; optional)

[]intents.[]price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]price.rfc.signed_price.result_message.Type: object

[]intents.[]price.rfc.signed_price.result_message.Required fields: none

- []intents.[]price.rfc.signed_price.result_message.price_ref (string; optional)

[]intents.[]price.rfc.signed_price.result_message.price_ref example: string

[]intents.[]price.rfc.signed_price.result_message.price_ref.Type: string

- []intents.[]price.rfc.signed_price.result_message.signatures_ref (string; optional)

[]intents.[]price.rfc.signed_price.result_message.signatures_ref example: string

[]intents.[]price.rfc.signed_price.result_message.signatures_ref.Type: string

- []intents.[]price.rfc.signed_price.slot (integer; optional)

[]intents.[]price.rfc.signed_price.slot example: 0

[]intents.[]price.rfc.signed_price.slot.Type: integer

- []intents.[]price.rfc.signed_price.spread (integer; optional)

[]intents.[]price.rfc.signed_price.spread example: 0

[]intents.[]price.rfc.signed_price.spread.Type: integer

- []intents.[]price.rfc.signed_price.status (string; optional)

[]intents.[]price.rfc.signed_price.status example: string

[]intents.[]price.rfc.signed_price.status.Type: string

- []intents.[]price.rfc.signed_price.timestamp (integer; optional)

[]intents.[]price.rfc.signed_price.timestamp example: 0

[]intents.[]price.rfc.signed_price.timestamp.Type: integer

- []intents.[]price.rfc.signed_price.unpauseAt (integer; optional)

[]intents.[]price.rfc.signed_price.unpauseAt example: 0

[]intents.[]price.rfc.signed_price.unpauseAt.Type: integer

- []intents.[]price.rfc.velocity_debt (integer; optional)

[]intents.[]price.rfc.velocity_debt example: 0

[]intents.[]price.rfc.velocity_debt.Type: integer

[]intents.[]price.rfc.velocity_debt.Velocity calculation results

- []intents.[]price.settlement (object; optional)

[]intents.[]price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

[]intents.[]price.settlement.Schema: Trading.oracle.LatestResponse

[]intents.[]price.settlement.Type: object

[]intents.[]price.settlement.Required fields: none

- []intents.[]price.settlement.closestPauseAt (integer; optional)

[]intents.[]price.settlement.closestPauseAt example: 0

[]intents.[]price.settlement.closestPauseAt.Type: integer

- []intents.[]price.settlement.closestUnpauseAt (integer; optional)

[]intents.[]price.settlement.closestUnpauseAt example: 0

[]intents.[]price.settlement.closestUnpauseAt.Type: integer

- []intents.[]price.settlement.feed (string; optional)

[]intents.[]price.settlement.feed example: string

[]intents.[]price.settlement.feed.Type: string

- []intents.[]price.settlement.inPause (boolean; optional)

[]intents.[]price.settlement.inPause example: true

[]intents.[]price.settlement.inPause.Type: boolean

- []intents.[]price.settlement.isOnline (boolean; optional)

[]intents.[]price.settlement.isOnline example: true

[]intents.[]price.settlement.isOnline.Type: boolean

- []intents.[]price.settlement.k (integer; optional)

[]intents.[]price.settlement.k example: 0

[]intents.[]price.settlement.k.Type: integer

- []intents.[]price.settlement.marketDepthLong (integer; optional)

[]intents.[]price.settlement.marketDepthLong example: 0

[]intents.[]price.settlement.marketDepthLong.Type: integer

- []intents.[]price.settlement.marketDepthShort (integer; optional)

[]intents.[]price.settlement.marketDepthShort example: 0

[]intents.[]price.settlement.marketDepthShort.Type: integer

- []intents.[]price.settlement.pauseAt (integer; optional)

[]intents.[]price.settlement.pauseAt example: 0

[]intents.[]price.settlement.pauseAt.Type: integer

- []intents.[]price.settlement.pausedAt (integer; optional)

[]intents.[]price.settlement.pausedAt example: 0

[]intents.[]price.settlement.pausedAt.Type: integer

- []intents.[]price.settlement.price (integer; optional)

[]intents.[]price.settlement.price example: 0

[]intents.[]price.settlement.price.Type: integer

- []intents.[]price.settlement.result_message (object; optional)

[]intents.[]price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

[]intents.[]price.settlement.result_message.Schema: Trading.oracle.ResultMessage

[]intents.[]price.settlement.result_message.Type: object

[]intents.[]price.settlement.result_message.Required fields: none

- []intents.[]price.settlement.result_message.price_ref (string; optional)

[]intents.[]price.settlement.result_message.price_ref example: string

[]intents.[]price.settlement.result_message.price_ref.Type: string

- []intents.[]price.settlement.result_message.signatures_ref (string; optional)

[]intents.[]price.settlement.result_message.signatures_ref example: string

[]intents.[]price.settlement.result_message.signatures_ref.Type: string

- []intents.[]price.settlement.slot (integer; optional)

[]intents.[]price.settlement.slot example: 0

[]intents.[]price.settlement.slot.Type: integer

- []intents.[]price.settlement.spread (integer; optional)

[]intents.[]price.settlement.spread example: 0

[]intents.[]price.settlement.spread.Type: integer

- []intents.[]price.settlement.status (string; optional)

[]intents.[]price.settlement.status example: string

[]intents.[]price.settlement.status.Type: string

- []intents.[]price.settlement.timestamp (integer; optional)

[]intents.[]price.settlement.timestamp example: 0

[]intents.[]price.settlement.timestamp.Type: integer

- []intents.[]price.settlement.unpauseAt (integer; optional)

[]intents.[]price.settlement.unpauseAt example: 0

[]intents.[]price.settlement.unpauseAt.Type: integer

- []intents.[]price.timestamp (string; optional)

[]intents.[]price.timestamp example: string

[]intents.[]price.timestamp.Type: string

- []intents.[]smart_account (object; optional)

[]intents.[]smart_account example: {}

[]intents.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]smart_account.Type: object

- []intents.[]vault (object; optional)

[]intents.[]vault example: {}

[]intents.[]vault.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]intents.[]vault.Type: object

- []last_update (string; optional)

[]last_update example: string

[]last_update.Type: string

- []latest_trace (object; optional)

[]latest_trace example: {
  "contract_exit_code": 0,
  "error_contract_interface": "string",
  "execution_snapshot": {
    "accounts": {
      "key": {
        "account_state": {},
        "is_active": true,
        "last_tx_hash": [
          0
        ],
        "last_tx_lt": 0,
        "rawAccount": {
          "code": {},
          "data": {},
          "isActive": true,
          "lastTxHash": [
            0
          ],
          "lastTxLT": 0,
          "state": {
            "address": {},
            "balance": {},
            "extraCurrencies": {},
            "isValid": true,
            "lastTransactionLT": 0,
            "stateHash": [
              0
            ],
            "stateInit": {
              "code": {},
              "data": {},
              "depth": 0,
              "lib": {},
              "tickTock": {
                "tick": true,
                "tock": true
              }
            },
            "status": "string",
            "storageInfo": {
              "duePayment": {},
              "lastPaid": 0,
              "storageUsed": {
                "bitsUsed": {},
                "cellsUsed": {}
              }
            }
          }
        }
      }
    }
  },
  "exit_code": 0,
  "intents": [],
  "logs": [
    {
      "additional_data": {
        "index_price": {}
      },
      "executor_fee_amount": {},
      "executor_fee_rate": 0,
      "fee_to_stakers_percent": 0,
      "funding_payment": 0,
      "last_updated_cpf": 0,
      "log_type": 0,
      "margin": {},
      "open_notional": {},
      "position_fee_amount": {},
      "position_fee_rate": 0,
      "realized_pnl": 0,
      "rollover_fee": 0,
      "size": {}
    }
  ],
  "prices": [],
  "smart_account_state_end": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  },
  "update_position": {
    "jetton_minter": {},
    "notification_payload": {
      "amm_address": {},
      "balance_delta": {},
      "bundle_sender_address": {},
      "direction": 0,
      "position_state": {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    },
    "query_id": 0
  }
}

[]latest_trace.Schema: Trading.types.TraceResult

[]latest_trace.Type: object

[]latest_trace.Required fields: none

- []latest_trace.contract_exit_code (integer; optional)

[]latest_trace.contract_exit_code example: 0

[]latest_trace.contract_exit_code.Type: integer

[]latest_trace.contract_exit_code.in try/catch on amm

- []latest_trace.error_contract_interface (string; optional)

[]latest_trace.error_contract_interface example: string

[]latest_trace.error_contract_interface.Type: string

- []latest_trace.execution_snapshot (object; optional)

[]latest_trace.execution_snapshot example: {
  "accounts": {
    "key": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    }
  }
}

[]latest_trace.execution_snapshot.Schema: Trading.types.ExecutionSnapshot

[]latest_trace.execution_snapshot.Type: object

[]latest_trace.execution_snapshot.Required fields: none

- []latest_trace.execution_snapshot.accounts (object; optional)

[]latest_trace.execution_snapshot.accounts example: {
  "key": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  }
}

[]latest_trace.execution_snapshot.accounts.Type: object

[]latest_trace.execution_snapshot.accounts.*.Schema: Trading.types.AccountSnapshot

[]latest_trace.execution_snapshot.accounts.*.Type: object

[]latest_trace.execution_snapshot.accounts.*.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.account_state (object; optional)

[]latest_trace.execution_snapshot.accounts.*.account_state example: {}

[]latest_trace.execution_snapshot.accounts.*.account_state.Schema: Trading.cell.Cell

[]latest_trace.execution_snapshot.accounts.*.account_state.Type: object

- []latest_trace.execution_snapshot.accounts.*.is_active (boolean; optional)

[]latest_trace.execution_snapshot.accounts.*.is_active example: true

[]latest_trace.execution_snapshot.accounts.*.is_active.Type: boolean

- []latest_trace.execution_snapshot.accounts.*.last_tx_hash (integer[]; optional)

[]latest_trace.execution_snapshot.accounts.*.last_tx_hash example: [
  0
]

[]latest_trace.execution_snapshot.accounts.*.last_tx_hash.Type: integer[]

[]latest_trace.execution_snapshot.accounts.*.last_tx_hash.[]Type: integer

- []latest_trace.execution_snapshot.accounts.*.last_tx_lt (integer; optional)

[]latest_trace.execution_snapshot.accounts.*.last_tx_lt example: 0

[]latest_trace.execution_snapshot.accounts.*.last_tx_lt.Type: integer

- []latest_trace.execution_snapshot.accounts.*.rawAccount (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

[]latest_trace.execution_snapshot.accounts.*.rawAccount.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.code (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.code example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.code.Schema: Trading.cell.Cell

[]latest_trace.execution_snapshot.accounts.*.rawAccount.code.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.data (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.data example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.data.Schema: Trading.cell.Cell

[]latest_trace.execution_snapshot.accounts.*.rawAccount.data.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.isActive (boolean; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.isActive example: true

[]latest_trace.execution_snapshot.accounts.*.rawAccount.isActive.Type: boolean

- []latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash (integer · int32[]; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash example: [
  0
]

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.Type: integer · int32[]

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]Type: integer · int32

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]format: int32

- []latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT (integer · int64; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT example: 0

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.Type: integer · int64

[]latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.format: int64

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.address (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.address example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.address.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid (boolean; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid example: true

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid.Type: boolean

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT (integer · int64; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT example: 0

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.Type: integer · int64

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.format: int64

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash (integer · int32[]; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash example: [
  0
]

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.Type: integer · int32[]

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.has value when frozen

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]Type: integer · int32

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]format: int32

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.has value when active

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.allOf variant 1

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth (integer; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth example: 0

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth.Type: integer

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick example: true

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock example: true

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.status (string; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.status example: string

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.status.Type: string

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid (integer; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid example: 0

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid.Type: integer

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra (any; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra.Type: any

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Type: object

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Required fields: none

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- []latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

[]latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- []latest_trace.exit_code (integer; optional)

[]latest_trace.exit_code example: 0

[]latest_trace.exit_code.Type: integer

[]latest_trace.exit_code.in compute action/phase

- []latest_trace.intents (any[]; optional)

[]latest_trace.intents example: []

[]latest_trace.intents.Type: any[]

[]latest_trace.intents.[]Type: any

- []latest_trace.logs (object[]; optional)

[]latest_trace.logs example: [
  {
    "additional_data": {
      "index_price": {}
    },
    "executor_fee_amount": {},
    "executor_fee_rate": 0,
    "fee_to_stakers_percent": 0,
    "funding_payment": 0,
    "last_updated_cpf": 0,
    "log_type": 0,
    "margin": {},
    "open_notional": {},
    "position_fee_amount": {},
    "position_fee_rate": 0,
    "realized_pnl": 0,
    "rollover_fee": 0,
    "size": {}
  }
]

[]latest_trace.logs.Type: object[]

[]latest_trace.logs.[]Schema: Trading.vamm.IntentLog

[]latest_trace.logs.[]Type: object

[]latest_trace.logs.[]Required fields: none

- []latest_trace.logs.[]additional_data (object; optional)

[]latest_trace.logs.[]additional_data example: {
  "index_price": {}
}

[]latest_trace.logs.[]additional_data.Schema: Trading.vamm.AdditionalLogData

[]latest_trace.logs.[]additional_data.Type: object

[]latest_trace.logs.[]additional_data.Required fields: none

- []latest_trace.logs.[]additional_data.index_price (object; optional)

[]latest_trace.logs.[]additional_data.index_price example: {}

[]latest_trace.logs.[]additional_data.index_price.Type: object

[]latest_trace.logs.[]additional_data.index_price.real price of execution, for guaranteed SL/TP/LIQUIDATE/MAX_PNL

[]latest_trace.logs.[]additional_data.index_price.allOf variant 1

[]latest_trace.logs.[]additional_data.index_price.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.logs.[]additional_data.index_price.Type: object

- []latest_trace.logs.[]executor_fee_amount (object; optional)

[]latest_trace.logs.[]executor_fee_amount example: {}

[]latest_trace.logs.[]executor_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.logs.[]executor_fee_amount.Type: object

- []latest_trace.logs.[]executor_fee_rate (integer; optional)

[]latest_trace.logs.[]executor_fee_rate example: 0

[]latest_trace.logs.[]executor_fee_rate.Type: integer

- []latest_trace.logs.[]fee_to_stakers_percent (integer; optional)

[]latest_trace.logs.[]fee_to_stakers_percent example: 0

[]latest_trace.logs.[]fee_to_stakers_percent.Type: integer

- []latest_trace.logs.[]funding_payment (integer; optional)

[]latest_trace.logs.[]funding_payment example: 0

[]latest_trace.logs.[]funding_payment.Type: integer

- []latest_trace.logs.[]last_updated_cpf (integer; optional)

[]latest_trace.logs.[]last_updated_cpf example: 0

[]latest_trace.logs.[]last_updated_cpf.Type: integer

- []latest_trace.logs.[]log_type (integer · int32 · enum; optional)

[]latest_trace.logs.[]log_type example: 0

[]latest_trace.logs.[]log_type.Schema: Trading.vamm.LogType

[]latest_trace.logs.[]log_type.Type: integer · int32 · enum

[]latest_trace.logs.[]log_type.Allowed values: [0,1,2,3]

[]latest_trace.logs.[]log_type.format: int32

- []latest_trace.logs.[]margin (object; optional)

[]latest_trace.logs.[]margin example: {}

[]latest_trace.logs.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.logs.[]margin.Type: object

- []latest_trace.logs.[]open_notional (object; optional)

[]latest_trace.logs.[]open_notional example: {}

[]latest_trace.logs.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.logs.[]open_notional.Type: object

- []latest_trace.logs.[]position_fee_amount (object; optional)

[]latest_trace.logs.[]position_fee_amount example: {}

[]latest_trace.logs.[]position_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.logs.[]position_fee_amount.Type: object

- []latest_trace.logs.[]position_fee_rate (integer; optional)

[]latest_trace.logs.[]position_fee_rate example: 0

[]latest_trace.logs.[]position_fee_rate.Type: integer

- []latest_trace.logs.[]realized_pnl (integer; optional)

[]latest_trace.logs.[]realized_pnl example: 0

[]latest_trace.logs.[]realized_pnl.Type: integer

- []latest_trace.logs.[]rollover_fee (integer; optional)

[]latest_trace.logs.[]rollover_fee example: 0

[]latest_trace.logs.[]rollover_fee.Type: integer

- []latest_trace.logs.[]size (object; optional)

[]latest_trace.logs.[]size example: {}

[]latest_trace.logs.[]size.Schema: Trading.big.Int

[]latest_trace.logs.[]size.Type: object

- []latest_trace.prices (any[]; optional)

[]latest_trace.prices example: []

[]latest_trace.prices.Type: any[]

[]latest_trace.prices.[]Type: any

- []latest_trace.smart_account_state_end (object; optional)

[]latest_trace.smart_account_state_end example: {
  "account_state": {},
  "is_active": true,
  "last_tx_hash": [
    0
  ],
  "last_tx_lt": 0,
  "rawAccount": {
    "code": {},
    "data": {},
    "isActive": true,
    "lastTxHash": [
      0
    ],
    "lastTxLT": 0,
    "state": {
      "address": {},
      "balance": {},
      "extraCurrencies": {},
      "isValid": true,
      "lastTransactionLT": 0,
      "stateHash": [
        0
      ],
      "stateInit": {
        "code": {},
        "data": {},
        "depth": 0,
        "lib": {},
        "tickTock": {
          "tick": true,
          "tock": true
        }
      },
      "status": "string",
      "storageInfo": {
        "duePayment": {},
        "lastPaid": 0,
        "storageUsed": {
          "bitsUsed": {},
          "cellsUsed": {}
        }
      }
    }
  }
}

[]latest_trace.smart_account_state_end.Schema: Trading.types.AccountSnapshot

[]latest_trace.smart_account_state_end.Type: object

[]latest_trace.smart_account_state_end.Required fields: none

- []latest_trace.smart_account_state_end.account_state (object; optional)

[]latest_trace.smart_account_state_end.account_state example: {}

[]latest_trace.smart_account_state_end.account_state.Schema: Trading.cell.Cell

[]latest_trace.smart_account_state_end.account_state.Type: object

- []latest_trace.smart_account_state_end.is_active (boolean; optional)

[]latest_trace.smart_account_state_end.is_active example: true

[]latest_trace.smart_account_state_end.is_active.Type: boolean

- []latest_trace.smart_account_state_end.last_tx_hash (integer[]; optional)

[]latest_trace.smart_account_state_end.last_tx_hash example: [
  0
]

[]latest_trace.smart_account_state_end.last_tx_hash.Type: integer[]

[]latest_trace.smart_account_state_end.last_tx_hash.[]Type: integer

- []latest_trace.smart_account_state_end.last_tx_lt (integer; optional)

[]latest_trace.smart_account_state_end.last_tx_lt example: 0

[]latest_trace.smart_account_state_end.last_tx_lt.Type: integer

- []latest_trace.smart_account_state_end.rawAccount (object; optional)

[]latest_trace.smart_account_state_end.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

[]latest_trace.smart_account_state_end.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

[]latest_trace.smart_account_state_end.rawAccount.Type: object

[]latest_trace.smart_account_state_end.rawAccount.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.code (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.code example: {}

[]latest_trace.smart_account_state_end.rawAccount.code.Schema: Trading.cell.Cell

[]latest_trace.smart_account_state_end.rawAccount.code.Type: object

- []latest_trace.smart_account_state_end.rawAccount.data (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.data example: {}

[]latest_trace.smart_account_state_end.rawAccount.data.Schema: Trading.cell.Cell

[]latest_trace.smart_account_state_end.rawAccount.data.Type: object

- []latest_trace.smart_account_state_end.rawAccount.isActive (boolean; optional)

[]latest_trace.smart_account_state_end.rawAccount.isActive example: true

[]latest_trace.smart_account_state_end.rawAccount.isActive.Type: boolean

- []latest_trace.smart_account_state_end.rawAccount.lastTxHash (integer · int32[]; optional)

[]latest_trace.smart_account_state_end.rawAccount.lastTxHash example: [
  0
]

[]latest_trace.smart_account_state_end.rawAccount.lastTxHash.Type: integer · int32[]

[]latest_trace.smart_account_state_end.rawAccount.lastTxHash.[]Type: integer · int32

[]latest_trace.smart_account_state_end.rawAccount.lastTxHash.[]format: int32

- []latest_trace.smart_account_state_end.rawAccount.lastTxLT (integer · int64; optional)

[]latest_trace.smart_account_state_end.rawAccount.lastTxLT example: 0

[]latest_trace.smart_account_state_end.rawAccount.lastTxLT.Type: integer · int64

[]latest_trace.smart_account_state_end.rawAccount.lastTxLT.format: int64

- []latest_trace.smart_account_state_end.rawAccount.state (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

[]latest_trace.smart_account_state_end.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

[]latest_trace.smart_account_state_end.rawAccount.state.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.state.address (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.address example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]latest_trace.smart_account_state_end.rawAccount.state.address.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.balance (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.balance example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.smart_account_state_end.rawAccount.state.balance.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

[]latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.isValid (boolean; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.isValid example: true

[]latest_trace.smart_account_state_end.rawAccount.state.isValid.Type: boolean

- []latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT (integer · int64; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT example: 0

[]latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT.Type: integer · int64

[]latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT.format: int64

- []latest_trace.smart_account_state_end.rawAccount.state.stateHash (integer · int32[]; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateHash example: [
  0
]

[]latest_trace.smart_account_state_end.rawAccount.state.stateHash.Type: integer · int32[]

[]latest_trace.smart_account_state_end.rawAccount.state.stateHash.has value when frozen

[]latest_trace.smart_account_state_end.rawAccount.state.stateHash.[]Type: integer · int32

[]latest_trace.smart_account_state_end.rawAccount.state.stateHash.[]format: int32

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.has value when active

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.allOf variant 1

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.code (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.code example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.code.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.data (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.data example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.data.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth (integer; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth example: 0

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth.Type: integer

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick example: true

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- []latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock example: true

[]latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- []latest_trace.smart_account_state_end.rawAccount.state.status (string; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.status example: string

[]latest_trace.smart_account_state_end.rawAccount.state.status.Type: string

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid (integer; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid example: 0

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid.Type: integer

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra (any; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra.Type: any

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Type: object

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Required fields: none

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- []latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

[]latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- []latest_trace.update_position (object; optional)

[]latest_trace.update_position example: {
  "jetton_minter": {},
  "notification_payload": {
    "amm_address": {},
    "balance_delta": {},
    "bundle_sender_address": {},
    "direction": 0,
    "position_state": {
      "direction": 0,
      "discount": 0,
      "fee": 0,
      "last_updated_cumulative_premium": 0,
      "last_updated_timestamp": 0,
      "margin": {},
      "open_notional": {},
      "rebate": 0,
      "size": {}
    }
  },
  "query_id": 0
}

[]latest_trace.update_position.Schema: Trading.smartaccount.NotifyUpdatePosition

[]latest_trace.update_position.Type: object

[]latest_trace.update_position.Required fields: none

- []latest_trace.update_position.jetton_minter (object; optional)

[]latest_trace.update_position.jetton_minter example: {}

[]latest_trace.update_position.jetton_minter.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]latest_trace.update_position.jetton_minter.Type: object

- []latest_trace.update_position.notification_payload (object; optional)

[]latest_trace.update_position.notification_payload example: {
  "amm_address": {},
  "balance_delta": {},
  "bundle_sender_address": {},
  "direction": 0,
  "position_state": {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
}

[]latest_trace.update_position.notification_payload.Schema: Trading.smartaccount.NotificationPayload

[]latest_trace.update_position.notification_payload.Type: object

[]latest_trace.update_position.notification_payload.Required fields: none

- []latest_trace.update_position.notification_payload.amm_address (object; optional)

[]latest_trace.update_position.notification_payload.amm_address example: {}

[]latest_trace.update_position.notification_payload.amm_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]latest_trace.update_position.notification_payload.amm_address.Type: object

- []latest_trace.update_position.notification_payload.balance_delta (object; optional)

[]latest_trace.update_position.notification_payload.balance_delta example: {}

[]latest_trace.update_position.notification_payload.balance_delta.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.update_position.notification_payload.balance_delta.Type: object

- []latest_trace.update_position.notification_payload.bundle_sender_address (object; optional)

[]latest_trace.update_position.notification_payload.bundle_sender_address example: {}

[]latest_trace.update_position.notification_payload.bundle_sender_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

[]latest_trace.update_position.notification_payload.bundle_sender_address.Type: object

- []latest_trace.update_position.notification_payload.direction (integer; optional)

[]latest_trace.update_position.notification_payload.direction example: 0

[]latest_trace.update_position.notification_payload.direction.Type: integer

- []latest_trace.update_position.notification_payload.position_state (object; optional)

[]latest_trace.update_position.notification_payload.position_state example: {
  "direction": 0,
  "discount": 0,
  "fee": 0,
  "last_updated_cumulative_premium": 0,
  "last_updated_timestamp": 0,
  "margin": {},
  "open_notional": {},
  "rebate": 0,
  "size": {}
}

[]latest_trace.update_position.notification_payload.position_state.Schema: Trading.schemas.PositionState

[]latest_trace.update_position.notification_payload.position_state.Type: object

[]latest_trace.update_position.notification_payload.position_state.Required fields: none

- []latest_trace.update_position.notification_payload.position_state.direction (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.direction example: 0

[]latest_trace.update_position.notification_payload.position_state.direction.Type: integer

- []latest_trace.update_position.notification_payload.position_state.discount (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.discount example: 0

[]latest_trace.update_position.notification_payload.position_state.discount.Type: integer

- []latest_trace.update_position.notification_payload.position_state.fee (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.fee example: 0

[]latest_trace.update_position.notification_payload.position_state.fee.Type: integer

- []latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium example: 0

[]latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium.Type: integer

- []latest_trace.update_position.notification_payload.position_state.last_updated_timestamp (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.last_updated_timestamp example: 0

[]latest_trace.update_position.notification_payload.position_state.last_updated_timestamp.Type: integer

- []latest_trace.update_position.notification_payload.position_state.margin (object; optional)

[]latest_trace.update_position.notification_payload.position_state.margin example: {}

[]latest_trace.update_position.notification_payload.position_state.margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.update_position.notification_payload.position_state.margin.Type: object

- []latest_trace.update_position.notification_payload.position_state.open_notional (object; optional)

[]latest_trace.update_position.notification_payload.position_state.open_notional example: {}

[]latest_trace.update_position.notification_payload.position_state.open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]latest_trace.update_position.notification_payload.position_state.open_notional.Type: object

- []latest_trace.update_position.notification_payload.position_state.rebate (integer; optional)

[]latest_trace.update_position.notification_payload.position_state.rebate example: 0

[]latest_trace.update_position.notification_payload.position_state.rebate.Type: integer

- []latest_trace.update_position.notification_payload.position_state.size (object; optional)

[]latest_trace.update_position.notification_payload.position_state.size example: {}

[]latest_trace.update_position.notification_payload.position_state.size.Schema: Trading.big.Int

[]latest_trace.update_position.notification_payload.position_state.size.Type: object

- []latest_trace.update_position.query_id (integer; optional)

[]latest_trace.update_position.query_id example: 0

[]latest_trace.update_position.query_id.Type: integer

- []leased_query_id (integer; optional)

[]leased_query_id example: 0

[]leased_query_id.Type: integer

- []out_msg_boc (integer[]; optional)

[]out_msg_boc example: [
  0
]

[]out_msg_boc.Type: integer[]

[]out_msg_boc.OutMessageBOC is the serialized ext message, persisted only for a broadcast-
but-unconfirmed (AwaitConfirm) bundle so SentBundlesTask can re-broadcast the
SAME message (idempotent; a rebuild with a fresh created_at is a different
message and would risk double-execution).

[]out_msg_boc.[]Type: integer

- []outcome (object; optional)

[]outcome example: {
  "action_code": 0,
  "block_seqno": 0,
  "error_interface": "string",
  "exit_code": 0,
  "finalized_at": 0,
  "reason": "string",
  "tx_hash": [
    0
  ],
  "tx_lt": 0
}

[]outcome.Type: object

[]outcome.set on terminal (confirmed/failed)

[]outcome.allOf variant 1

[]outcome.Schema: Trading.bundle.Outcome

[]outcome.Type: object

[]outcome.Required fields: none

- []outcome.action_code (integer; optional)

[]outcome.action_code example: 0

[]outcome.action_code.Type: integer

- []outcome.block_seqno (integer; optional)

[]outcome.block_seqno example: 0

[]outcome.block_seqno.Type: integer

- []outcome.error_interface (string; optional)

[]outcome.error_interface example: string

[]outcome.error_interface.Type: string

- []outcome.exit_code (integer; optional)

[]outcome.exit_code example: 0

[]outcome.exit_code.Type: integer

- []outcome.finalized_at (integer; optional)

[]outcome.finalized_at example: 0

[]outcome.finalized_at.Type: integer

- []outcome.reason (string; optional)

[]outcome.reason example: string

[]outcome.reason.Type: string

- []outcome.tx_hash (integer[]; optional)

[]outcome.tx_hash example: [
  0
]

[]outcome.tx_hash.Type: integer[]

[]outcome.tx_hash.[]Type: integer

- []outcome.tx_lt (integer; optional)

[]outcome.tx_lt example: 0

[]outcome.tx_lt.Type: integer

- []payment_mode (integer · int32 · enum; optional)

[]payment_mode example: 0

[]payment_mode.Schema: Trading.bundle.PaymentMode

[]payment_mode.Type: integer · int32 · enum

[]payment_mode.Allowed values: [0,1,0,1]

[]payment_mode.format: int32

- []position_state (object[]; optional)

[]position_state example: [
  {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
]

[]position_state.Type: object[]

[]position_state.[]Schema: Trading.schemas.PositionState

[]position_state.[]Type: object

[]position_state.[]Required fields: none

- []position_state.[]direction (integer; optional)

[]position_state.[]direction example: 0

[]position_state.[]direction.Type: integer

- []position_state.[]discount (integer; optional)

[]position_state.[]discount example: 0

[]position_state.[]discount.Type: integer

- []position_state.[]fee (integer; optional)

[]position_state.[]fee example: 0

[]position_state.[]fee.Type: integer

- []position_state.[]last_updated_cumulative_premium (integer; optional)

[]position_state.[]last_updated_cumulative_premium example: 0

[]position_state.[]last_updated_cumulative_premium.Type: integer

- []position_state.[]last_updated_timestamp (integer; optional)

[]position_state.[]last_updated_timestamp example: 0

[]position_state.[]last_updated_timestamp.Type: integer

- []position_state.[]margin (object; optional)

[]position_state.[]margin example: {}

[]position_state.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]position_state.[]margin.Type: object

- []position_state.[]open_notional (object; optional)

[]position_state.[]open_notional example: {}

[]position_state.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

[]position_state.[]open_notional.Type: object

- []position_state.[]rebate (integer; optional)

[]position_state.[]rebate example: 0

[]position_state.[]rebate.Type: integer

- []position_state.[]size (object; optional)

[]position_state.[]size example: {}

[]position_state.[]size.Schema: Trading.big.Int

[]position_state.[]size.Type: object

- []reason (string; optional)

[]reason example: string

[]reason.Type: string

- []recover_attempts (integer; optional)

[]recover_attempts example: 0

[]recover_attempts.Type: integer

[]recover_attempts.RecoverAttempts counts how many times a not-landed Sent bundle has been
recovered back to Pending (see recoverSentBundle); bounds the retry so a
bundle that can never land eventually fails instead of looping forever.

- []sent_at (integer; optional)

[]sent_at example: 0

[]sent_at.Type: integer

[]sent_at.unix secs of the StatusSent transition; the stale-drop clock starts here, not at CreatedAt

- []status (string · enum; optional)

[]status example: pending

[]status.Schema: Trading.bundle.Status

[]status.Type: string · enum

[]status.Allowed values: ["pending","sealed","sent","confirmed","failed"]

- []tx_hash (integer[]; optional)

[]tx_hash example: [
  0
]

[]tx_hash.Type: integer[]

[]tx_hash.[]Type: integer

Example



```json
[
  {
    "created_at": "string",
    "ext_hash": [
      0
    ],
    "gasless_source": 0,
    "id": {
      "addr": "string",
      "direction": "long",
      "market": "string",
      "owner": "string"
    },
    "intent_hashes": [
      [
        0
      ]
    ],
    "intents": [
      {
        "action_phase": "string",
        "builder": {},
        "created_price": {
          "created_at": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "index": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "rfc": {
            "effective_depth": 0,
            "original_k": 0,
            "original_market_depth_long": 0,
            "original_market_depth_short": 0,
            "original_spread": 0,
            "recovery_rate": 0,
            "signed_price": {
              "closestPauseAt": 0,
              "closestUnpauseAt": 0,
              "feed": "string",
              "inPause": true,
              "isOnline": true,
              "k": 0,
              "marketDepthLong": 0,
              "marketDepthShort": 0,
              "pauseAt": 0,
              "pausedAt": 0,
              "price": 0,
              "result_message": {
                "price_ref": "string",
                "signatures_ref": "string"
              },
              "slot": 0,
              "spread": 0,
              "status": "string",
              "timestamp": 0,
              "unpauseAt": 0
            },
            "velocity_debt": 0
          },
          "settlement": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "timestamp": "string"
        },
        "date": "string",
        "full_message": {
          "message": {
            "created_at": 0,
            "intent": {
              "order": {},
              "smart_account": {},
              "v_amm": {}
            },
            "public_key": [
              0
            ],
            "query_id": {
              "bit_number": 0,
              "shift": 0
            },
            "reference_query_id": {
              "bit_number": 0,
              "shift": 0
            }
          },
          "public_key": "string",
          "signature": [
            0
          ]
        },
        "hash": [
          0
        ],
        "market": {},
        "order": {},
        "order_requests": [
          {
            "full_message": {
              "message": {
                "created_at": 0,
                "intent": {
                  "order": {},
                  "smart_account": {},
                  "v_amm": {}
                },
                "public_key": [
                  0
                ],
                "query_id": {
                  "bit_number": 0,
                  "shift": 0
                },
                "reference_query_id": {
                  "bit_number": 0,
                  "shift": 0
                }
              },
              "public_key": "string",
              "signature": [
                0
              ]
            },
            "hash": [
              0
            ],
            "order_request": {
              "selector": 0
            },
            "order_request_hash": [
              0
            ],
            "smart_account": {}
          }
        ],
        "payment_mode": 0,
        "price": {
          "created_at": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "index": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "rfc": {
            "effective_depth": 0,
            "original_k": 0,
            "original_market_depth_long": 0,
            "original_market_depth_short": 0,
            "original_spread": 0,
            "recovery_rate": 0,
            "signed_price": {
              "closestPauseAt": 0,
              "closestUnpauseAt": 0,
              "feed": "string",
              "inPause": true,
              "isOnline": true,
              "k": 0,
              "marketDepthLong": 0,
              "marketDepthShort": 0,
              "pauseAt": 0,
              "pausedAt": 0,
              "price": 0,
              "result_message": {
                "price_ref": "string",
                "signatures_ref": "string"
              },
              "slot": 0,
              "spread": 0,
              "status": "string",
              "timestamp": 0,
              "unpauseAt": 0
            },
            "velocity_debt": 0
          },
          "settlement": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "timestamp": "string"
        },
        "smart_account": {},
        "vault": {}
      }
    ],
    "last_update": "string",
    "latest_trace": {
      "contract_exit_code": 0,
      "error_contract_interface": "string",
      "execution_snapshot": {
        "accounts": {
          "key": {
            "account_state": {},
            "is_active": true,
            "last_tx_hash": [
              0
            ],
            "last_tx_lt": 0,
            "rawAccount": {
              "code": {},
              "data": {},
              "isActive": true,
              "lastTxHash": [
                0
              ],
              "lastTxLT": 0,
              "state": {
                "address": {},
                "balance": {},
                "extraCurrencies": {},
                "isValid": true,
                "lastTransactionLT": 0,
                "stateHash": [
                  0
                ],
                "stateInit": {
                  "code": {},
                  "data": {},
                  "depth": 0,
                  "lib": {},
                  "tickTock": {
                    "tick": true,
                    "tock": true
                  }
                },
                "status": "string",
                "storageInfo": {
                  "duePayment": {},
                  "lastPaid": 0,
                  "storageUsed": {
                    "bitsUsed": {},
                    "cellsUsed": {}
                  }
                }
              }
            }
          }
        }
      },
      "exit_code": 0,
      "intents": [],
      "logs": [
        {
          "additional_data": {
            "index_price": {}
          },
          "executor_fee_amount": {},
          "executor_fee_rate": 0,
          "fee_to_stakers_percent": 0,
          "funding_payment": 0,
          "last_updated_cpf": 0,
          "log_type": 0,
          "margin": {},
          "open_notional": {},
          "position_fee_amount": {},
          "position_fee_rate": 0,
          "realized_pnl": 0,
          "rollover_fee": 0,
          "size": {}
        }
      ],
      "prices": [],
      "smart_account_state_end": {
        "account_state": {},
        "is_active": true,
        "last_tx_hash": [
          0
        ],
        "last_tx_lt": 0,
        "rawAccount": {
          "code": {},
          "data": {},
          "isActive": true,
          "lastTxHash": [
            0
          ],
          "lastTxLT": 0,
          "state": {
            "address": {},
            "balance": {},
            "extraCurrencies": {},
            "isValid": true,
            "lastTransactionLT": 0,
            "stateHash": [
              0
            ],
            "stateInit": {
              "code": {},
              "data": {},
              "depth": 0,
              "lib": {},
              "tickTock": {
                "tick": true,
                "tock": true
              }
            },
            "status": "string",
            "storageInfo": {
              "duePayment": {},
              "lastPaid": 0,
              "storageUsed": {
                "bitsUsed": {},
                "cellsUsed": {}
              }
            }
          }
        }
      },
      "update_position": {
        "jetton_minter": {},
        "notification_payload": {
          "amm_address": {},
          "balance_delta": {},
          "bundle_sender_address": {},
          "direction": 0,
          "position_state": {
            "direction": 0,
            "discount": 0,
            "fee": 0,
            "last_updated_cumulative_premium": 0,
            "last_updated_timestamp": 0,
            "margin": {},
            "open_notional": {},
            "rebate": 0,
            "size": {}
          }
        },
        "query_id": 0
      }
    },
    "leased_query_id": 0,
    "out_msg_boc": [
      0
    ],
    "outcome": {
      "action_code": 0,
      "block_seqno": 0,
      "error_interface": "string",
      "exit_code": 0,
      "finalized_at": 0,
      "reason": "string",
      "tx_hash": [
        0
      ],
      "tx_lt": 0
    },
    "payment_mode": 0,
    "position_state": [
      {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    ],
    "reason": "string",
    "recover_attempts": 0,
    "sent_at": 0,
    "status": "pending",
    "tx_hash": [
      0
    ]
  }
]
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get an account bundle

Source: https://docs.storm.tg/developers/operations/getaccountbundlebyqueryid

# Get an account bundle

`GET /v3-node-0/smartaccount/{address}/bundles/{query_id}`

Returns the smart account's live bundle with the given executor query_id

## Authorization



## Parameters

- path: address (string; required). Smart account address

Type: string

- path: query_id (integer; required). Executor query_id

Type: integer

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles/{query_id}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles/{query_id}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/smartaccount/{address}/bundles/{query_id}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.bundle.Bundle

**200** application/json — OK

Schema: Trading.bundle.Bundle

Type: object

Required fields: none

- created_at (string; optional)

created_at example: string

created_at.Type: string

- ext_hash (integer[]; optional)

ext_hash example: [
  0
]

ext_hash.Type: integer[]

ext_hash.[]Type: integer

- gasless_source (integer · int32 · enum; optional)

gasless_source example: 0

gasless_source.Schema: Trading.bundle.GaslessSource

gasless_source.Type: integer · int32 · enum

gasless_source.Allowed values: [0,1,0,1]

gasless_source.format: int32

- id (object; optional)

id example: {
  "addr": "string",
  "direction": "long",
  "market": "string",
  "owner": "string"
}

id.Schema: Trading.bundle.ID

id.Type: object

id.Required fields: none

- id.addr (string; optional)

id.addr example: string

id.addr.Type: string

- id.direction (string · enum; optional)

id.direction example: long

id.direction.Schema: Trading.schemas.Direction

id.direction.Type: string · enum

id.direction.Allowed values: ["long","short","unknown"]

- id.market (string; optional)

id.market example: string

id.market.Type: string

- id.owner (string; optional)

id.owner example: string

id.owner.Type: string

- intent_hashes (integer[][]; optional)

intent_hashes example: [
  [
    0
  ]
]

intent_hashes.Type: integer[][]

intent_hashes.[]Type: integer[]

intent_hashes.[][]Type: integer

- intents (object[]; optional)

intents example: [
  {
    "action_phase": "string",
    "builder": {},
    "created_price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "date": "string",
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "market": {},
    "order": {},
    "order_requests": [
      {
        "full_message": {
          "message": {
            "created_at": 0,
            "intent": {
              "order": {},
              "smart_account": {},
              "v_amm": {}
            },
            "public_key": [
              0
            ],
            "query_id": {
              "bit_number": 0,
              "shift": 0
            },
            "reference_query_id": {
              "bit_number": 0,
              "shift": 0
            }
          },
          "public_key": "string",
          "signature": [
            0
          ]
        },
        "hash": [
          0
        ],
        "order_request": {
          "selector": 0
        },
        "order_request_hash": [
          0
        ],
        "smart_account": {}
      }
    ],
    "payment_mode": 0,
    "price": {
      "created_at": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "index": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "rfc": {
        "effective_depth": 0,
        "original_k": 0,
        "original_market_depth_long": 0,
        "original_market_depth_short": 0,
        "original_spread": 0,
        "recovery_rate": 0,
        "signed_price": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "velocity_debt": 0
      },
      "settlement": {
        "closestPauseAt": 0,
        "closestUnpauseAt": 0,
        "feed": "string",
        "inPause": true,
        "isOnline": true,
        "k": 0,
        "marketDepthLong": 0,
        "marketDepthShort": 0,
        "pauseAt": 0,
        "pausedAt": 0,
        "price": 0,
        "result_message": {
          "price_ref": "string",
          "signatures_ref": "string"
        },
        "slot": 0,
        "spread": 0,
        "status": "string",
        "timestamp": 0,
        "unpauseAt": 0
      },
      "timestamp": "string"
    },
    "smart_account": {},
    "vault": {}
  }
]

intents.Type: object[]

intents.[]Schema: Trading.types.SettledAction

intents.[]Type: object

intents.[]Required fields: none

- intents.[]action_phase (string; optional)

intents.[]action_phase example: string

intents.[]action_phase.Type: string

- intents.[]builder (object; optional)

intents.[]builder example: {}

intents.[]builder.Type: object

intents.[]builder.Builder is the third-party UI that submitted this intent (unsigned envelope,
like PaymentMode). Earns a rebate only if registered+active. nil = none.

intents.[]builder.allOf variant 1

intents.[]builder.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]builder.Type: object

- intents.[]created_price (object; optional)

intents.[]created_price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intents.[]created_price.Schema: Trading.oracle.PriceSigned

intents.[]created_price.Type: object

intents.[]created_price.Required fields: none

- intents.[]created_price.created_at (object; optional)

intents.[]created_price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]created_price.created_at.Schema: Trading.oracle.LatestResponse

intents.[]created_price.created_at.Type: object

intents.[]created_price.created_at.Required fields: none

- intents.[]created_price.created_at.closestPauseAt (integer; optional)

intents.[]created_price.created_at.closestPauseAt example: 0

intents.[]created_price.created_at.closestPauseAt.Type: integer

- intents.[]created_price.created_at.closestUnpauseAt (integer; optional)

intents.[]created_price.created_at.closestUnpauseAt example: 0

intents.[]created_price.created_at.closestUnpauseAt.Type: integer

- intents.[]created_price.created_at.feed (string; optional)

intents.[]created_price.created_at.feed example: string

intents.[]created_price.created_at.feed.Type: string

- intents.[]created_price.created_at.inPause (boolean; optional)

intents.[]created_price.created_at.inPause example: true

intents.[]created_price.created_at.inPause.Type: boolean

- intents.[]created_price.created_at.isOnline (boolean; optional)

intents.[]created_price.created_at.isOnline example: true

intents.[]created_price.created_at.isOnline.Type: boolean

- intents.[]created_price.created_at.k (integer; optional)

intents.[]created_price.created_at.k example: 0

intents.[]created_price.created_at.k.Type: integer

- intents.[]created_price.created_at.marketDepthLong (integer; optional)

intents.[]created_price.created_at.marketDepthLong example: 0

intents.[]created_price.created_at.marketDepthLong.Type: integer

- intents.[]created_price.created_at.marketDepthShort (integer; optional)

intents.[]created_price.created_at.marketDepthShort example: 0

intents.[]created_price.created_at.marketDepthShort.Type: integer

- intents.[]created_price.created_at.pauseAt (integer; optional)

intents.[]created_price.created_at.pauseAt example: 0

intents.[]created_price.created_at.pauseAt.Type: integer

- intents.[]created_price.created_at.pausedAt (integer; optional)

intents.[]created_price.created_at.pausedAt example: 0

intents.[]created_price.created_at.pausedAt.Type: integer

- intents.[]created_price.created_at.price (integer; optional)

intents.[]created_price.created_at.price example: 0

intents.[]created_price.created_at.price.Type: integer

- intents.[]created_price.created_at.result_message (object; optional)

intents.[]created_price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]created_price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intents.[]created_price.created_at.result_message.Type: object

intents.[]created_price.created_at.result_message.Required fields: none

- intents.[]created_price.created_at.result_message.price_ref (string; optional)

intents.[]created_price.created_at.result_message.price_ref example: string

intents.[]created_price.created_at.result_message.price_ref.Type: string

- intents.[]created_price.created_at.result_message.signatures_ref (string; optional)

intents.[]created_price.created_at.result_message.signatures_ref example: string

intents.[]created_price.created_at.result_message.signatures_ref.Type: string

- intents.[]created_price.created_at.slot (integer; optional)

intents.[]created_price.created_at.slot example: 0

intents.[]created_price.created_at.slot.Type: integer

- intents.[]created_price.created_at.spread (integer; optional)

intents.[]created_price.created_at.spread example: 0

intents.[]created_price.created_at.spread.Type: integer

- intents.[]created_price.created_at.status (string; optional)

intents.[]created_price.created_at.status example: string

intents.[]created_price.created_at.status.Type: string

- intents.[]created_price.created_at.timestamp (integer; optional)

intents.[]created_price.created_at.timestamp example: 0

intents.[]created_price.created_at.timestamp.Type: integer

- intents.[]created_price.created_at.unpauseAt (integer; optional)

intents.[]created_price.created_at.unpauseAt example: 0

intents.[]created_price.created_at.unpauseAt.Type: integer

- intents.[]created_price.index (object; optional)

intents.[]created_price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]created_price.index.Schema: Trading.oracle.LatestResponse

intents.[]created_price.index.Type: object

intents.[]created_price.index.Required fields: none

- intents.[]created_price.index.closestPauseAt (integer; optional)

intents.[]created_price.index.closestPauseAt example: 0

intents.[]created_price.index.closestPauseAt.Type: integer

- intents.[]created_price.index.closestUnpauseAt (integer; optional)

intents.[]created_price.index.closestUnpauseAt example: 0

intents.[]created_price.index.closestUnpauseAt.Type: integer

- intents.[]created_price.index.feed (string; optional)

intents.[]created_price.index.feed example: string

intents.[]created_price.index.feed.Type: string

- intents.[]created_price.index.inPause (boolean; optional)

intents.[]created_price.index.inPause example: true

intents.[]created_price.index.inPause.Type: boolean

- intents.[]created_price.index.isOnline (boolean; optional)

intents.[]created_price.index.isOnline example: true

intents.[]created_price.index.isOnline.Type: boolean

- intents.[]created_price.index.k (integer; optional)

intents.[]created_price.index.k example: 0

intents.[]created_price.index.k.Type: integer

- intents.[]created_price.index.marketDepthLong (integer; optional)

intents.[]created_price.index.marketDepthLong example: 0

intents.[]created_price.index.marketDepthLong.Type: integer

- intents.[]created_price.index.marketDepthShort (integer; optional)

intents.[]created_price.index.marketDepthShort example: 0

intents.[]created_price.index.marketDepthShort.Type: integer

- intents.[]created_price.index.pauseAt (integer; optional)

intents.[]created_price.index.pauseAt example: 0

intents.[]created_price.index.pauseAt.Type: integer

- intents.[]created_price.index.pausedAt (integer; optional)

intents.[]created_price.index.pausedAt example: 0

intents.[]created_price.index.pausedAt.Type: integer

- intents.[]created_price.index.price (integer; optional)

intents.[]created_price.index.price example: 0

intents.[]created_price.index.price.Type: integer

- intents.[]created_price.index.result_message (object; optional)

intents.[]created_price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]created_price.index.result_message.Schema: Trading.oracle.ResultMessage

intents.[]created_price.index.result_message.Type: object

intents.[]created_price.index.result_message.Required fields: none

- intents.[]created_price.index.result_message.price_ref (string; optional)

intents.[]created_price.index.result_message.price_ref example: string

intents.[]created_price.index.result_message.price_ref.Type: string

- intents.[]created_price.index.result_message.signatures_ref (string; optional)

intents.[]created_price.index.result_message.signatures_ref example: string

intents.[]created_price.index.result_message.signatures_ref.Type: string

- intents.[]created_price.index.slot (integer; optional)

intents.[]created_price.index.slot example: 0

intents.[]created_price.index.slot.Type: integer

- intents.[]created_price.index.spread (integer; optional)

intents.[]created_price.index.spread example: 0

intents.[]created_price.index.spread.Type: integer

- intents.[]created_price.index.status (string; optional)

intents.[]created_price.index.status example: string

intents.[]created_price.index.status.Type: string

- intents.[]created_price.index.timestamp (integer; optional)

intents.[]created_price.index.timestamp example: 0

intents.[]created_price.index.timestamp.Type: integer

- intents.[]created_price.index.unpauseAt (integer; optional)

intents.[]created_price.index.unpauseAt example: 0

intents.[]created_price.index.unpauseAt.Type: integer

- intents.[]created_price.rfc (object; optional)

intents.[]created_price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intents.[]created_price.rfc.Type: object

intents.[]created_price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intents.[]created_price.rfc.allOf variant 1

intents.[]created_price.rfc.Schema: Trading.oracle.RFQResult

intents.[]created_price.rfc.Type: object

intents.[]created_price.rfc.Required fields: none

- intents.[]created_price.rfc.effective_depth (integer; optional)

intents.[]created_price.rfc.effective_depth example: 0

intents.[]created_price.rfc.effective_depth.Type: integer

- intents.[]created_price.rfc.original_k (integer; optional)

intents.[]created_price.rfc.original_k example: 0

intents.[]created_price.rfc.original_k.Type: integer

- intents.[]created_price.rfc.original_market_depth_long (integer; optional)

intents.[]created_price.rfc.original_market_depth_long example: 0

intents.[]created_price.rfc.original_market_depth_long.Type: integer

intents.[]created_price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intents.[]created_price.rfc.original_market_depth_short (integer; optional)

intents.[]created_price.rfc.original_market_depth_short example: 0

intents.[]created_price.rfc.original_market_depth_short.Type: integer

- intents.[]created_price.rfc.original_spread (integer; optional)

intents.[]created_price.rfc.original_spread example: 0

intents.[]created_price.rfc.original_spread.Type: integer

- intents.[]created_price.rfc.recovery_rate (number; optional)

intents.[]created_price.rfc.recovery_rate example: 0

intents.[]created_price.rfc.recovery_rate.Type: number

- intents.[]created_price.rfc.signed_price (object; optional)

intents.[]created_price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]created_price.rfc.signed_price.Type: object

intents.[]created_price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intents.[]created_price.rfc.signed_price.allOf variant 1

intents.[]created_price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intents.[]created_price.rfc.signed_price.Type: object

intents.[]created_price.rfc.signed_price.Required fields: none

- intents.[]created_price.rfc.signed_price.closestPauseAt (integer; optional)

intents.[]created_price.rfc.signed_price.closestPauseAt example: 0

intents.[]created_price.rfc.signed_price.closestPauseAt.Type: integer

- intents.[]created_price.rfc.signed_price.closestUnpauseAt (integer; optional)

intents.[]created_price.rfc.signed_price.closestUnpauseAt example: 0

intents.[]created_price.rfc.signed_price.closestUnpauseAt.Type: integer

- intents.[]created_price.rfc.signed_price.feed (string; optional)

intents.[]created_price.rfc.signed_price.feed example: string

intents.[]created_price.rfc.signed_price.feed.Type: string

- intents.[]created_price.rfc.signed_price.inPause (boolean; optional)

intents.[]created_price.rfc.signed_price.inPause example: true

intents.[]created_price.rfc.signed_price.inPause.Type: boolean

- intents.[]created_price.rfc.signed_price.isOnline (boolean; optional)

intents.[]created_price.rfc.signed_price.isOnline example: true

intents.[]created_price.rfc.signed_price.isOnline.Type: boolean

- intents.[]created_price.rfc.signed_price.k (integer; optional)

intents.[]created_price.rfc.signed_price.k example: 0

intents.[]created_price.rfc.signed_price.k.Type: integer

- intents.[]created_price.rfc.signed_price.marketDepthLong (integer; optional)

intents.[]created_price.rfc.signed_price.marketDepthLong example: 0

intents.[]created_price.rfc.signed_price.marketDepthLong.Type: integer

- intents.[]created_price.rfc.signed_price.marketDepthShort (integer; optional)

intents.[]created_price.rfc.signed_price.marketDepthShort example: 0

intents.[]created_price.rfc.signed_price.marketDepthShort.Type: integer

- intents.[]created_price.rfc.signed_price.pauseAt (integer; optional)

intents.[]created_price.rfc.signed_price.pauseAt example: 0

intents.[]created_price.rfc.signed_price.pauseAt.Type: integer

- intents.[]created_price.rfc.signed_price.pausedAt (integer; optional)

intents.[]created_price.rfc.signed_price.pausedAt example: 0

intents.[]created_price.rfc.signed_price.pausedAt.Type: integer

- intents.[]created_price.rfc.signed_price.price (integer; optional)

intents.[]created_price.rfc.signed_price.price example: 0

intents.[]created_price.rfc.signed_price.price.Type: integer

- intents.[]created_price.rfc.signed_price.result_message (object; optional)

intents.[]created_price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]created_price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intents.[]created_price.rfc.signed_price.result_message.Type: object

intents.[]created_price.rfc.signed_price.result_message.Required fields: none

- intents.[]created_price.rfc.signed_price.result_message.price_ref (string; optional)

intents.[]created_price.rfc.signed_price.result_message.price_ref example: string

intents.[]created_price.rfc.signed_price.result_message.price_ref.Type: string

- intents.[]created_price.rfc.signed_price.result_message.signatures_ref (string; optional)

intents.[]created_price.rfc.signed_price.result_message.signatures_ref example: string

intents.[]created_price.rfc.signed_price.result_message.signatures_ref.Type: string

- intents.[]created_price.rfc.signed_price.slot (integer; optional)

intents.[]created_price.rfc.signed_price.slot example: 0

intents.[]created_price.rfc.signed_price.slot.Type: integer

- intents.[]created_price.rfc.signed_price.spread (integer; optional)

intents.[]created_price.rfc.signed_price.spread example: 0

intents.[]created_price.rfc.signed_price.spread.Type: integer

- intents.[]created_price.rfc.signed_price.status (string; optional)

intents.[]created_price.rfc.signed_price.status example: string

intents.[]created_price.rfc.signed_price.status.Type: string

- intents.[]created_price.rfc.signed_price.timestamp (integer; optional)

intents.[]created_price.rfc.signed_price.timestamp example: 0

intents.[]created_price.rfc.signed_price.timestamp.Type: integer

- intents.[]created_price.rfc.signed_price.unpauseAt (integer; optional)

intents.[]created_price.rfc.signed_price.unpauseAt example: 0

intents.[]created_price.rfc.signed_price.unpauseAt.Type: integer

- intents.[]created_price.rfc.velocity_debt (integer; optional)

intents.[]created_price.rfc.velocity_debt example: 0

intents.[]created_price.rfc.velocity_debt.Type: integer

intents.[]created_price.rfc.velocity_debt.Velocity calculation results

- intents.[]created_price.settlement (object; optional)

intents.[]created_price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]created_price.settlement.Schema: Trading.oracle.LatestResponse

intents.[]created_price.settlement.Type: object

intents.[]created_price.settlement.Required fields: none

- intents.[]created_price.settlement.closestPauseAt (integer; optional)

intents.[]created_price.settlement.closestPauseAt example: 0

intents.[]created_price.settlement.closestPauseAt.Type: integer

- intents.[]created_price.settlement.closestUnpauseAt (integer; optional)

intents.[]created_price.settlement.closestUnpauseAt example: 0

intents.[]created_price.settlement.closestUnpauseAt.Type: integer

- intents.[]created_price.settlement.feed (string; optional)

intents.[]created_price.settlement.feed example: string

intents.[]created_price.settlement.feed.Type: string

- intents.[]created_price.settlement.inPause (boolean; optional)

intents.[]created_price.settlement.inPause example: true

intents.[]created_price.settlement.inPause.Type: boolean

- intents.[]created_price.settlement.isOnline (boolean; optional)

intents.[]created_price.settlement.isOnline example: true

intents.[]created_price.settlement.isOnline.Type: boolean

- intents.[]created_price.settlement.k (integer; optional)

intents.[]created_price.settlement.k example: 0

intents.[]created_price.settlement.k.Type: integer

- intents.[]created_price.settlement.marketDepthLong (integer; optional)

intents.[]created_price.settlement.marketDepthLong example: 0

intents.[]created_price.settlement.marketDepthLong.Type: integer

- intents.[]created_price.settlement.marketDepthShort (integer; optional)

intents.[]created_price.settlement.marketDepthShort example: 0

intents.[]created_price.settlement.marketDepthShort.Type: integer

- intents.[]created_price.settlement.pauseAt (integer; optional)

intents.[]created_price.settlement.pauseAt example: 0

intents.[]created_price.settlement.pauseAt.Type: integer

- intents.[]created_price.settlement.pausedAt (integer; optional)

intents.[]created_price.settlement.pausedAt example: 0

intents.[]created_price.settlement.pausedAt.Type: integer

- intents.[]created_price.settlement.price (integer; optional)

intents.[]created_price.settlement.price example: 0

intents.[]created_price.settlement.price.Type: integer

- intents.[]created_price.settlement.result_message (object; optional)

intents.[]created_price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]created_price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intents.[]created_price.settlement.result_message.Type: object

intents.[]created_price.settlement.result_message.Required fields: none

- intents.[]created_price.settlement.result_message.price_ref (string; optional)

intents.[]created_price.settlement.result_message.price_ref example: string

intents.[]created_price.settlement.result_message.price_ref.Type: string

- intents.[]created_price.settlement.result_message.signatures_ref (string; optional)

intents.[]created_price.settlement.result_message.signatures_ref example: string

intents.[]created_price.settlement.result_message.signatures_ref.Type: string

- intents.[]created_price.settlement.slot (integer; optional)

intents.[]created_price.settlement.slot example: 0

intents.[]created_price.settlement.slot.Type: integer

- intents.[]created_price.settlement.spread (integer; optional)

intents.[]created_price.settlement.spread example: 0

intents.[]created_price.settlement.spread.Type: integer

- intents.[]created_price.settlement.status (string; optional)

intents.[]created_price.settlement.status example: string

intents.[]created_price.settlement.status.Type: string

- intents.[]created_price.settlement.timestamp (integer; optional)

intents.[]created_price.settlement.timestamp example: 0

intents.[]created_price.settlement.timestamp.Type: integer

- intents.[]created_price.settlement.unpauseAt (integer; optional)

intents.[]created_price.settlement.unpauseAt example: 0

intents.[]created_price.settlement.unpauseAt.Type: integer

- intents.[]created_price.timestamp (string; optional)

intents.[]created_price.timestamp example: string

intents.[]created_price.timestamp.Type: string

- intents.[]date (string; optional)

intents.[]date example: string

intents.[]date.Type: string

- intents.[]full_message (object; optional)

intents.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intents.[]full_message.Schema: Trading.smartaccount.SignedMessage

intents.[]full_message.Type: object

intents.[]full_message.Required fields: none

- intents.[]full_message.message (object; optional)

intents.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intents.[]full_message.message.Schema: Trading.smartaccount.UserIntent

intents.[]full_message.message.Type: object

intents.[]full_message.message.Required fields: none

- intents.[]full_message.message.created_at (integer; optional)

intents.[]full_message.message.created_at example: 0

intents.[]full_message.message.created_at.Type: integer

- intents.[]full_message.message.intent (object; optional)

intents.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intents.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intents.[]full_message.message.intent.Type: object

intents.[]full_message.message.intent.Required fields: none

- intents.[]full_message.message.intent.order (object; optional)

intents.[]full_message.message.intent.order example: {}

intents.[]full_message.message.intent.order.Schema: Trading.schemas.Order

intents.[]full_message.message.intent.order.Type: object

intents.[]full_message.message.intent.order.Required fields: none

- intents.[]full_message.message.intent.order.order (any; optional)

intents.[]full_message.message.intent.order.order.Type: any

- intents.[]full_message.message.intent.smart_account (object; optional)

intents.[]full_message.message.intent.smart_account example: {}

intents.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]full_message.message.intent.smart_account.Type: object

- intents.[]full_message.message.intent.v_amm (object; optional)

intents.[]full_message.message.intent.v_amm example: {}

intents.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]full_message.message.intent.v_amm.Type: object

- intents.[]full_message.message.public_key (integer[]; optional)

intents.[]full_message.message.public_key example: [
  0
]

intents.[]full_message.message.public_key.Type: integer[]

intents.[]full_message.message.public_key.pk

intents.[]full_message.message.public_key.[]Type: integer

- intents.[]full_message.message.query_id (object; optional)

intents.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intents.[]full_message.message.query_id.Schema: Trading.hw.QueryId

intents.[]full_message.message.query_id.Type: object

intents.[]full_message.message.query_id.Required fields: none

- intents.[]full_message.message.query_id.bit_number (integer; optional)

intents.[]full_message.message.query_id.bit_number example: 0

intents.[]full_message.message.query_id.bit_number.Type: integer

- intents.[]full_message.message.query_id.shift (integer; optional)

intents.[]full_message.message.query_id.shift example: 0

intents.[]full_message.message.query_id.shift.Type: integer

- intents.[]full_message.message.reference_query_id (object; optional)

intents.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intents.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intents.[]full_message.message.reference_query_id.Type: object

intents.[]full_message.message.reference_query_id.Required fields: none

- intents.[]full_message.message.reference_query_id.bit_number (integer; optional)

intents.[]full_message.message.reference_query_id.bit_number example: 0

intents.[]full_message.message.reference_query_id.bit_number.Type: integer

- intents.[]full_message.message.reference_query_id.shift (integer; optional)

intents.[]full_message.message.reference_query_id.shift example: 0

intents.[]full_message.message.reference_query_id.shift.Type: integer

- intents.[]full_message.public_key (string; optional)

intents.[]full_message.public_key example: string

intents.[]full_message.public_key.Type: string

- intents.[]full_message.signature (integer[]; optional)

intents.[]full_message.signature example: [
  0
]

intents.[]full_message.signature.Type: integer[]

intents.[]full_message.signature.[]Type: integer

- intents.[]hash (integer[]; optional)

intents.[]hash example: [
  0
]

intents.[]hash.Type: integer[]

intents.[]hash.[]Type: integer

- intents.[]market (object; optional)

intents.[]market example: {}

intents.[]market.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]market.Type: object

- intents.[]order (object; optional)

intents.[]order example: {}

intents.[]order.Schema: Trading.schemas.Order

intents.[]order.Type: object

intents.[]order.Required fields: none

- intents.[]order.order (any; optional)

intents.[]order.order.Type: any

- intents.[]order_requests (object[]; optional)

intents.[]order_requests example: [
  {
    "full_message": {
      "message": {
        "created_at": 0,
        "intent": {
          "order": {},
          "smart_account": {},
          "v_amm": {}
        },
        "public_key": [
          0
        ],
        "query_id": {
          "bit_number": 0,
          "shift": 0
        },
        "reference_query_id": {
          "bit_number": 0,
          "shift": 0
        }
      },
      "public_key": "string",
      "signature": [
        0
      ]
    },
    "hash": [
      0
    ],
    "order_request": {
      "selector": 0
    },
    "order_request_hash": [
      0
    ],
    "smart_account": {}
  }
]

intents.[]order_requests.Type: object[]

intents.[]order_requests.[]Schema: Trading.types.OrderRequestIntent

intents.[]order_requests.[]Type: object

intents.[]order_requests.[]Required fields: none

- intents.[]order_requests.[]full_message (object; optional)

intents.[]order_requests.[]full_message example: {
  "message": {
    "created_at": 0,
    "intent": {
      "order": {},
      "smart_account": {},
      "v_amm": {}
    },
    "public_key": [
      0
    ],
    "query_id": {
      "bit_number": 0,
      "shift": 0
    },
    "reference_query_id": {
      "bit_number": 0,
      "shift": 0
    }
  },
  "public_key": "string",
  "signature": [
    0
  ]
}

intents.[]order_requests.[]full_message.Schema: Trading.smartaccount.SignedMessage

intents.[]order_requests.[]full_message.Type: object

intents.[]order_requests.[]full_message.Required fields: none

- intents.[]order_requests.[]full_message.message (object; optional)

intents.[]order_requests.[]full_message.message example: {
  "created_at": 0,
  "intent": {
    "order": {},
    "smart_account": {},
    "v_amm": {}
  },
  "public_key": [
    0
  ],
  "query_id": {
    "bit_number": 0,
    "shift": 0
  },
  "reference_query_id": {
    "bit_number": 0,
    "shift": 0
  }
}

intents.[]order_requests.[]full_message.message.Schema: Trading.smartaccount.UserIntent

intents.[]order_requests.[]full_message.message.Type: object

intents.[]order_requests.[]full_message.message.Required fields: none

- intents.[]order_requests.[]full_message.message.created_at (integer; optional)

intents.[]order_requests.[]full_message.message.created_at example: 0

intents.[]order_requests.[]full_message.message.created_at.Type: integer

- intents.[]order_requests.[]full_message.message.intent (object; optional)

intents.[]order_requests.[]full_message.message.intent example: {
  "order": {},
  "smart_account": {},
  "v_amm": {}
}

intents.[]order_requests.[]full_message.message.intent.Schema: Trading.smartaccount.UserIntentPayload

intents.[]order_requests.[]full_message.message.intent.Type: object

intents.[]order_requests.[]full_message.message.intent.Required fields: none

- intents.[]order_requests.[]full_message.message.intent.order (object; optional)

intents.[]order_requests.[]full_message.message.intent.order example: {}

intents.[]order_requests.[]full_message.message.intent.order.Schema: Trading.schemas.Order

intents.[]order_requests.[]full_message.message.intent.order.Type: object

intents.[]order_requests.[]full_message.message.intent.order.Required fields: none

- intents.[]order_requests.[]full_message.message.intent.order.order (any; optional)

intents.[]order_requests.[]full_message.message.intent.order.order.Type: any

- intents.[]order_requests.[]full_message.message.intent.smart_account (object; optional)

intents.[]order_requests.[]full_message.message.intent.smart_account example: {}

intents.[]order_requests.[]full_message.message.intent.smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]order_requests.[]full_message.message.intent.smart_account.Type: object

- intents.[]order_requests.[]full_message.message.intent.v_amm (object; optional)

intents.[]order_requests.[]full_message.message.intent.v_amm example: {}

intents.[]order_requests.[]full_message.message.intent.v_amm.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]order_requests.[]full_message.message.intent.v_amm.Type: object

- intents.[]order_requests.[]full_message.message.public_key (integer[]; optional)

intents.[]order_requests.[]full_message.message.public_key example: [
  0
]

intents.[]order_requests.[]full_message.message.public_key.Type: integer[]

intents.[]order_requests.[]full_message.message.public_key.pk

intents.[]order_requests.[]full_message.message.public_key.[]Type: integer

- intents.[]order_requests.[]full_message.message.query_id (object; optional)

intents.[]order_requests.[]full_message.message.query_id example: {
  "bit_number": 0,
  "shift": 0
}

intents.[]order_requests.[]full_message.message.query_id.Schema: Trading.hw.QueryId

intents.[]order_requests.[]full_message.message.query_id.Type: object

intents.[]order_requests.[]full_message.message.query_id.Required fields: none

- intents.[]order_requests.[]full_message.message.query_id.bit_number (integer; optional)

intents.[]order_requests.[]full_message.message.query_id.bit_number example: 0

intents.[]order_requests.[]full_message.message.query_id.bit_number.Type: integer

- intents.[]order_requests.[]full_message.message.query_id.shift (integer; optional)

intents.[]order_requests.[]full_message.message.query_id.shift example: 0

intents.[]order_requests.[]full_message.message.query_id.shift.Type: integer

- intents.[]order_requests.[]full_message.message.reference_query_id (object; optional)

intents.[]order_requests.[]full_message.message.reference_query_id example: {
  "bit_number": 0,
  "shift": 0
}

intents.[]order_requests.[]full_message.message.reference_query_id.Schema: Trading.hw.QueryId

intents.[]order_requests.[]full_message.message.reference_query_id.Type: object

intents.[]order_requests.[]full_message.message.reference_query_id.Required fields: none

- intents.[]order_requests.[]full_message.message.reference_query_id.bit_number (integer; optional)

intents.[]order_requests.[]full_message.message.reference_query_id.bit_number example: 0

intents.[]order_requests.[]full_message.message.reference_query_id.bit_number.Type: integer

- intents.[]order_requests.[]full_message.message.reference_query_id.shift (integer; optional)

intents.[]order_requests.[]full_message.message.reference_query_id.shift example: 0

intents.[]order_requests.[]full_message.message.reference_query_id.shift.Type: integer

- intents.[]order_requests.[]full_message.public_key (string; optional)

intents.[]order_requests.[]full_message.public_key example: string

intents.[]order_requests.[]full_message.public_key.Type: string

- intents.[]order_requests.[]full_message.signature (integer[]; optional)

intents.[]order_requests.[]full_message.signature example: [
  0
]

intents.[]order_requests.[]full_message.signature.Type: integer[]

intents.[]order_requests.[]full_message.signature.[]Type: integer

- intents.[]order_requests.[]hash (integer[]; optional)

intents.[]order_requests.[]hash example: [
  0
]

intents.[]order_requests.[]hash.Type: integer[]

intents.[]order_requests.[]hash.[]Type: integer

- intents.[]order_requests.[]order_request (object; optional)

intents.[]order_requests.[]order_request example: {
  "selector": 0
}

intents.[]order_requests.[]order_request.Schema: Trading.schemas.OrderRequest

intents.[]order_requests.[]order_request.Type: object

intents.[]order_requests.[]order_request.Required fields: none

- intents.[]order_requests.[]order_request.order (any; optional)

intents.[]order_requests.[]order_request.order.Type: any

- intents.[]order_requests.[]order_request.selector (integer; optional)

intents.[]order_requests.[]order_request.selector example: 0

intents.[]order_requests.[]order_request.selector.Type: integer

- intents.[]order_requests.[]order_request_hash (integer[]; optional)

intents.[]order_requests.[]order_request_hash example: [
  0
]

intents.[]order_requests.[]order_request_hash.Type: integer[]

intents.[]order_requests.[]order_request_hash.[]Type: integer

- intents.[]order_requests.[]smart_account (object; optional)

intents.[]order_requests.[]smart_account example: {}

intents.[]order_requests.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]order_requests.[]smart_account.Type: object

- intents.[]payment_mode (integer · int32 · enum; optional)

intents.[]payment_mode example: 0

intents.[]payment_mode.Schema: Trading.types.PaymentMode

intents.[]payment_mode.Type: integer · int32 · enum

intents.[]payment_mode.Allowed values: [0,1]

intents.[]payment_mode.format: int32

- intents.[]price (object; optional)

intents.[]price example: {
  "created_at": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "index": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "rfc": {
    "effective_depth": 0,
    "original_k": 0,
    "original_market_depth_long": 0,
    "original_market_depth_short": 0,
    "original_spread": 0,
    "recovery_rate": 0,
    "signed_price": {
      "closestPauseAt": 0,
      "closestUnpauseAt": 0,
      "feed": "string",
      "inPause": true,
      "isOnline": true,
      "k": 0,
      "marketDepthLong": 0,
      "marketDepthShort": 0,
      "pauseAt": 0,
      "pausedAt": 0,
      "price": 0,
      "result_message": {
        "price_ref": "string",
        "signatures_ref": "string"
      },
      "slot": 0,
      "spread": 0,
      "status": "string",
      "timestamp": 0,
      "unpauseAt": 0
    },
    "velocity_debt": 0
  },
  "settlement": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "timestamp": "string"
}

intents.[]price.Schema: Trading.oracle.PriceSigned

intents.[]price.Type: object

intents.[]price.Required fields: none

- intents.[]price.created_at (object; optional)

intents.[]price.created_at example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]price.created_at.Schema: Trading.oracle.LatestResponse

intents.[]price.created_at.Type: object

intents.[]price.created_at.Required fields: none

- intents.[]price.created_at.closestPauseAt (integer; optional)

intents.[]price.created_at.closestPauseAt example: 0

intents.[]price.created_at.closestPauseAt.Type: integer

- intents.[]price.created_at.closestUnpauseAt (integer; optional)

intents.[]price.created_at.closestUnpauseAt example: 0

intents.[]price.created_at.closestUnpauseAt.Type: integer

- intents.[]price.created_at.feed (string; optional)

intents.[]price.created_at.feed example: string

intents.[]price.created_at.feed.Type: string

- intents.[]price.created_at.inPause (boolean; optional)

intents.[]price.created_at.inPause example: true

intents.[]price.created_at.inPause.Type: boolean

- intents.[]price.created_at.isOnline (boolean; optional)

intents.[]price.created_at.isOnline example: true

intents.[]price.created_at.isOnline.Type: boolean

- intents.[]price.created_at.k (integer; optional)

intents.[]price.created_at.k example: 0

intents.[]price.created_at.k.Type: integer

- intents.[]price.created_at.marketDepthLong (integer; optional)

intents.[]price.created_at.marketDepthLong example: 0

intents.[]price.created_at.marketDepthLong.Type: integer

- intents.[]price.created_at.marketDepthShort (integer; optional)

intents.[]price.created_at.marketDepthShort example: 0

intents.[]price.created_at.marketDepthShort.Type: integer

- intents.[]price.created_at.pauseAt (integer; optional)

intents.[]price.created_at.pauseAt example: 0

intents.[]price.created_at.pauseAt.Type: integer

- intents.[]price.created_at.pausedAt (integer; optional)

intents.[]price.created_at.pausedAt example: 0

intents.[]price.created_at.pausedAt.Type: integer

- intents.[]price.created_at.price (integer; optional)

intents.[]price.created_at.price example: 0

intents.[]price.created_at.price.Type: integer

- intents.[]price.created_at.result_message (object; optional)

intents.[]price.created_at.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]price.created_at.result_message.Schema: Trading.oracle.ResultMessage

intents.[]price.created_at.result_message.Type: object

intents.[]price.created_at.result_message.Required fields: none

- intents.[]price.created_at.result_message.price_ref (string; optional)

intents.[]price.created_at.result_message.price_ref example: string

intents.[]price.created_at.result_message.price_ref.Type: string

- intents.[]price.created_at.result_message.signatures_ref (string; optional)

intents.[]price.created_at.result_message.signatures_ref example: string

intents.[]price.created_at.result_message.signatures_ref.Type: string

- intents.[]price.created_at.slot (integer; optional)

intents.[]price.created_at.slot example: 0

intents.[]price.created_at.slot.Type: integer

- intents.[]price.created_at.spread (integer; optional)

intents.[]price.created_at.spread example: 0

intents.[]price.created_at.spread.Type: integer

- intents.[]price.created_at.status (string; optional)

intents.[]price.created_at.status example: string

intents.[]price.created_at.status.Type: string

- intents.[]price.created_at.timestamp (integer; optional)

intents.[]price.created_at.timestamp example: 0

intents.[]price.created_at.timestamp.Type: integer

- intents.[]price.created_at.unpauseAt (integer; optional)

intents.[]price.created_at.unpauseAt example: 0

intents.[]price.created_at.unpauseAt.Type: integer

- intents.[]price.index (object; optional)

intents.[]price.index example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]price.index.Schema: Trading.oracle.LatestResponse

intents.[]price.index.Type: object

intents.[]price.index.Required fields: none

- intents.[]price.index.closestPauseAt (integer; optional)

intents.[]price.index.closestPauseAt example: 0

intents.[]price.index.closestPauseAt.Type: integer

- intents.[]price.index.closestUnpauseAt (integer; optional)

intents.[]price.index.closestUnpauseAt example: 0

intents.[]price.index.closestUnpauseAt.Type: integer

- intents.[]price.index.feed (string; optional)

intents.[]price.index.feed example: string

intents.[]price.index.feed.Type: string

- intents.[]price.index.inPause (boolean; optional)

intents.[]price.index.inPause example: true

intents.[]price.index.inPause.Type: boolean

- intents.[]price.index.isOnline (boolean; optional)

intents.[]price.index.isOnline example: true

intents.[]price.index.isOnline.Type: boolean

- intents.[]price.index.k (integer; optional)

intents.[]price.index.k example: 0

intents.[]price.index.k.Type: integer

- intents.[]price.index.marketDepthLong (integer; optional)

intents.[]price.index.marketDepthLong example: 0

intents.[]price.index.marketDepthLong.Type: integer

- intents.[]price.index.marketDepthShort (integer; optional)

intents.[]price.index.marketDepthShort example: 0

intents.[]price.index.marketDepthShort.Type: integer

- intents.[]price.index.pauseAt (integer; optional)

intents.[]price.index.pauseAt example: 0

intents.[]price.index.pauseAt.Type: integer

- intents.[]price.index.pausedAt (integer; optional)

intents.[]price.index.pausedAt example: 0

intents.[]price.index.pausedAt.Type: integer

- intents.[]price.index.price (integer; optional)

intents.[]price.index.price example: 0

intents.[]price.index.price.Type: integer

- intents.[]price.index.result_message (object; optional)

intents.[]price.index.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]price.index.result_message.Schema: Trading.oracle.ResultMessage

intents.[]price.index.result_message.Type: object

intents.[]price.index.result_message.Required fields: none

- intents.[]price.index.result_message.price_ref (string; optional)

intents.[]price.index.result_message.price_ref example: string

intents.[]price.index.result_message.price_ref.Type: string

- intents.[]price.index.result_message.signatures_ref (string; optional)

intents.[]price.index.result_message.signatures_ref example: string

intents.[]price.index.result_message.signatures_ref.Type: string

- intents.[]price.index.slot (integer; optional)

intents.[]price.index.slot example: 0

intents.[]price.index.slot.Type: integer

- intents.[]price.index.spread (integer; optional)

intents.[]price.index.spread example: 0

intents.[]price.index.spread.Type: integer

- intents.[]price.index.status (string; optional)

intents.[]price.index.status example: string

intents.[]price.index.status.Type: string

- intents.[]price.index.timestamp (integer; optional)

intents.[]price.index.timestamp example: 0

intents.[]price.index.timestamp.Type: integer

- intents.[]price.index.unpauseAt (integer; optional)

intents.[]price.index.unpauseAt example: 0

intents.[]price.index.unpauseAt.Type: integer

- intents.[]price.rfc (object; optional)

intents.[]price.rfc example: {
  "effective_depth": 0,
  "original_k": 0,
  "original_market_depth_long": 0,
  "original_market_depth_short": 0,
  "original_spread": 0,
  "recovery_rate": 0,
  "signed_price": {
    "closestPauseAt": 0,
    "closestUnpauseAt": 0,
    "feed": "string",
    "inPause": true,
    "isOnline": true,
    "k": 0,
    "marketDepthLong": 0,
    "marketDepthShort": 0,
    "pauseAt": 0,
    "pausedAt": 0,
    "price": 0,
    "result_message": {
      "price_ref": "string",
      "signatures_ref": "string"
    },
    "slot": 0,
    "spread": 0,
    "status": "string",
    "timestamp": 0,
    "unpauseAt": 0
  },
  "velocity_debt": 0
}

intents.[]price.rfc.Type: object

intents.[]price.rfc.json tag stays "rfc" — this is persisted to Pebble intent state and read by v2;
the field was renamed RFC→RFQ but the wire key must not change. When RFQ is enabled
it also carries the raw VPI (original vs effective depth) behind the velocity adjustment.

intents.[]price.rfc.allOf variant 1

intents.[]price.rfc.Schema: Trading.oracle.RFQResult

intents.[]price.rfc.Type: object

intents.[]price.rfc.Required fields: none

- intents.[]price.rfc.effective_depth (integer; optional)

intents.[]price.rfc.effective_depth example: 0

intents.[]price.rfc.effective_depth.Type: integer

- intents.[]price.rfc.original_k (integer; optional)

intents.[]price.rfc.original_k example: 0

intents.[]price.rfc.original_k.Type: integer

- intents.[]price.rfc.original_market_depth_long (integer; optional)

intents.[]price.rfc.original_market_depth_long example: 0

intents.[]price.rfc.original_market_depth_long.Type: integer

intents.[]price.rfc.original_market_depth_long.Original VPI params (before velocity adjustment)

- intents.[]price.rfc.original_market_depth_short (integer; optional)

intents.[]price.rfc.original_market_depth_short example: 0

intents.[]price.rfc.original_market_depth_short.Type: integer

- intents.[]price.rfc.original_spread (integer; optional)

intents.[]price.rfc.original_spread example: 0

intents.[]price.rfc.original_spread.Type: integer

- intents.[]price.rfc.recovery_rate (number; optional)

intents.[]price.rfc.recovery_rate example: 0

intents.[]price.rfc.recovery_rate.Type: number

- intents.[]price.rfc.signed_price (object; optional)

intents.[]price.rfc.signed_price example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]price.rfc.signed_price.Type: object

intents.[]price.rfc.signed_price.SignedPrice is the adjusted price from the oracle

intents.[]price.rfc.signed_price.allOf variant 1

intents.[]price.rfc.signed_price.Schema: Trading.oracle.LatestResponse

intents.[]price.rfc.signed_price.Type: object

intents.[]price.rfc.signed_price.Required fields: none

- intents.[]price.rfc.signed_price.closestPauseAt (integer; optional)

intents.[]price.rfc.signed_price.closestPauseAt example: 0

intents.[]price.rfc.signed_price.closestPauseAt.Type: integer

- intents.[]price.rfc.signed_price.closestUnpauseAt (integer; optional)

intents.[]price.rfc.signed_price.closestUnpauseAt example: 0

intents.[]price.rfc.signed_price.closestUnpauseAt.Type: integer

- intents.[]price.rfc.signed_price.feed (string; optional)

intents.[]price.rfc.signed_price.feed example: string

intents.[]price.rfc.signed_price.feed.Type: string

- intents.[]price.rfc.signed_price.inPause (boolean; optional)

intents.[]price.rfc.signed_price.inPause example: true

intents.[]price.rfc.signed_price.inPause.Type: boolean

- intents.[]price.rfc.signed_price.isOnline (boolean; optional)

intents.[]price.rfc.signed_price.isOnline example: true

intents.[]price.rfc.signed_price.isOnline.Type: boolean

- intents.[]price.rfc.signed_price.k (integer; optional)

intents.[]price.rfc.signed_price.k example: 0

intents.[]price.rfc.signed_price.k.Type: integer

- intents.[]price.rfc.signed_price.marketDepthLong (integer; optional)

intents.[]price.rfc.signed_price.marketDepthLong example: 0

intents.[]price.rfc.signed_price.marketDepthLong.Type: integer

- intents.[]price.rfc.signed_price.marketDepthShort (integer; optional)

intents.[]price.rfc.signed_price.marketDepthShort example: 0

intents.[]price.rfc.signed_price.marketDepthShort.Type: integer

- intents.[]price.rfc.signed_price.pauseAt (integer; optional)

intents.[]price.rfc.signed_price.pauseAt example: 0

intents.[]price.rfc.signed_price.pauseAt.Type: integer

- intents.[]price.rfc.signed_price.pausedAt (integer; optional)

intents.[]price.rfc.signed_price.pausedAt example: 0

intents.[]price.rfc.signed_price.pausedAt.Type: integer

- intents.[]price.rfc.signed_price.price (integer; optional)

intents.[]price.rfc.signed_price.price example: 0

intents.[]price.rfc.signed_price.price.Type: integer

- intents.[]price.rfc.signed_price.result_message (object; optional)

intents.[]price.rfc.signed_price.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]price.rfc.signed_price.result_message.Schema: Trading.oracle.ResultMessage

intents.[]price.rfc.signed_price.result_message.Type: object

intents.[]price.rfc.signed_price.result_message.Required fields: none

- intents.[]price.rfc.signed_price.result_message.price_ref (string; optional)

intents.[]price.rfc.signed_price.result_message.price_ref example: string

intents.[]price.rfc.signed_price.result_message.price_ref.Type: string

- intents.[]price.rfc.signed_price.result_message.signatures_ref (string; optional)

intents.[]price.rfc.signed_price.result_message.signatures_ref example: string

intents.[]price.rfc.signed_price.result_message.signatures_ref.Type: string

- intents.[]price.rfc.signed_price.slot (integer; optional)

intents.[]price.rfc.signed_price.slot example: 0

intents.[]price.rfc.signed_price.slot.Type: integer

- intents.[]price.rfc.signed_price.spread (integer; optional)

intents.[]price.rfc.signed_price.spread example: 0

intents.[]price.rfc.signed_price.spread.Type: integer

- intents.[]price.rfc.signed_price.status (string; optional)

intents.[]price.rfc.signed_price.status example: string

intents.[]price.rfc.signed_price.status.Type: string

- intents.[]price.rfc.signed_price.timestamp (integer; optional)

intents.[]price.rfc.signed_price.timestamp example: 0

intents.[]price.rfc.signed_price.timestamp.Type: integer

- intents.[]price.rfc.signed_price.unpauseAt (integer; optional)

intents.[]price.rfc.signed_price.unpauseAt example: 0

intents.[]price.rfc.signed_price.unpauseAt.Type: integer

- intents.[]price.rfc.velocity_debt (integer; optional)

intents.[]price.rfc.velocity_debt example: 0

intents.[]price.rfc.velocity_debt.Type: integer

intents.[]price.rfc.velocity_debt.Velocity calculation results

- intents.[]price.settlement (object; optional)

intents.[]price.settlement example: {
  "closestPauseAt": 0,
  "closestUnpauseAt": 0,
  "feed": "string",
  "inPause": true,
  "isOnline": true,
  "k": 0,
  "marketDepthLong": 0,
  "marketDepthShort": 0,
  "pauseAt": 0,
  "pausedAt": 0,
  "price": 0,
  "result_message": {
    "price_ref": "string",
    "signatures_ref": "string"
  },
  "slot": 0,
  "spread": 0,
  "status": "string",
  "timestamp": 0,
  "unpauseAt": 0
}

intents.[]price.settlement.Schema: Trading.oracle.LatestResponse

intents.[]price.settlement.Type: object

intents.[]price.settlement.Required fields: none

- intents.[]price.settlement.closestPauseAt (integer; optional)

intents.[]price.settlement.closestPauseAt example: 0

intents.[]price.settlement.closestPauseAt.Type: integer

- intents.[]price.settlement.closestUnpauseAt (integer; optional)

intents.[]price.settlement.closestUnpauseAt example: 0

intents.[]price.settlement.closestUnpauseAt.Type: integer

- intents.[]price.settlement.feed (string; optional)

intents.[]price.settlement.feed example: string

intents.[]price.settlement.feed.Type: string

- intents.[]price.settlement.inPause (boolean; optional)

intents.[]price.settlement.inPause example: true

intents.[]price.settlement.inPause.Type: boolean

- intents.[]price.settlement.isOnline (boolean; optional)

intents.[]price.settlement.isOnline example: true

intents.[]price.settlement.isOnline.Type: boolean

- intents.[]price.settlement.k (integer; optional)

intents.[]price.settlement.k example: 0

intents.[]price.settlement.k.Type: integer

- intents.[]price.settlement.marketDepthLong (integer; optional)

intents.[]price.settlement.marketDepthLong example: 0

intents.[]price.settlement.marketDepthLong.Type: integer

- intents.[]price.settlement.marketDepthShort (integer; optional)

intents.[]price.settlement.marketDepthShort example: 0

intents.[]price.settlement.marketDepthShort.Type: integer

- intents.[]price.settlement.pauseAt (integer; optional)

intents.[]price.settlement.pauseAt example: 0

intents.[]price.settlement.pauseAt.Type: integer

- intents.[]price.settlement.pausedAt (integer; optional)

intents.[]price.settlement.pausedAt example: 0

intents.[]price.settlement.pausedAt.Type: integer

- intents.[]price.settlement.price (integer; optional)

intents.[]price.settlement.price example: 0

intents.[]price.settlement.price.Type: integer

- intents.[]price.settlement.result_message (object; optional)

intents.[]price.settlement.result_message example: {
  "price_ref": "string",
  "signatures_ref": "string"
}

intents.[]price.settlement.result_message.Schema: Trading.oracle.ResultMessage

intents.[]price.settlement.result_message.Type: object

intents.[]price.settlement.result_message.Required fields: none

- intents.[]price.settlement.result_message.price_ref (string; optional)

intents.[]price.settlement.result_message.price_ref example: string

intents.[]price.settlement.result_message.price_ref.Type: string

- intents.[]price.settlement.result_message.signatures_ref (string; optional)

intents.[]price.settlement.result_message.signatures_ref example: string

intents.[]price.settlement.result_message.signatures_ref.Type: string

- intents.[]price.settlement.slot (integer; optional)

intents.[]price.settlement.slot example: 0

intents.[]price.settlement.slot.Type: integer

- intents.[]price.settlement.spread (integer; optional)

intents.[]price.settlement.spread example: 0

intents.[]price.settlement.spread.Type: integer

- intents.[]price.settlement.status (string; optional)

intents.[]price.settlement.status example: string

intents.[]price.settlement.status.Type: string

- intents.[]price.settlement.timestamp (integer; optional)

intents.[]price.settlement.timestamp example: 0

intents.[]price.settlement.timestamp.Type: integer

- intents.[]price.settlement.unpauseAt (integer; optional)

intents.[]price.settlement.unpauseAt example: 0

intents.[]price.settlement.unpauseAt.Type: integer

- intents.[]price.timestamp (string; optional)

intents.[]price.timestamp example: string

intents.[]price.timestamp.Type: string

- intents.[]smart_account (object; optional)

intents.[]smart_account example: {}

intents.[]smart_account.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]smart_account.Type: object

- intents.[]vault (object; optional)

intents.[]vault example: {}

intents.[]vault.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

intents.[]vault.Type: object

- last_update (string; optional)

last_update example: string

last_update.Type: string

- latest_trace (object; optional)

latest_trace example: {
  "contract_exit_code": 0,
  "error_contract_interface": "string",
  "execution_snapshot": {
    "accounts": {
      "key": {
        "account_state": {},
        "is_active": true,
        "last_tx_hash": [
          0
        ],
        "last_tx_lt": 0,
        "rawAccount": {
          "code": {},
          "data": {},
          "isActive": true,
          "lastTxHash": [
            0
          ],
          "lastTxLT": 0,
          "state": {
            "address": {},
            "balance": {},
            "extraCurrencies": {},
            "isValid": true,
            "lastTransactionLT": 0,
            "stateHash": [
              0
            ],
            "stateInit": {
              "code": {},
              "data": {},
              "depth": 0,
              "lib": {},
              "tickTock": {
                "tick": true,
                "tock": true
              }
            },
            "status": "string",
            "storageInfo": {
              "duePayment": {},
              "lastPaid": 0,
              "storageUsed": {
                "bitsUsed": {},
                "cellsUsed": {}
              }
            }
          }
        }
      }
    }
  },
  "exit_code": 0,
  "intents": [],
  "logs": [
    {
      "additional_data": {
        "index_price": {}
      },
      "executor_fee_amount": {},
      "executor_fee_rate": 0,
      "fee_to_stakers_percent": 0,
      "funding_payment": 0,
      "last_updated_cpf": 0,
      "log_type": 0,
      "margin": {},
      "open_notional": {},
      "position_fee_amount": {},
      "position_fee_rate": 0,
      "realized_pnl": 0,
      "rollover_fee": 0,
      "size": {}
    }
  ],
  "prices": [],
  "smart_account_state_end": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  },
  "update_position": {
    "jetton_minter": {},
    "notification_payload": {
      "amm_address": {},
      "balance_delta": {},
      "bundle_sender_address": {},
      "direction": 0,
      "position_state": {
        "direction": 0,
        "discount": 0,
        "fee": 0,
        "last_updated_cumulative_premium": 0,
        "last_updated_timestamp": 0,
        "margin": {},
        "open_notional": {},
        "rebate": 0,
        "size": {}
      }
    },
    "query_id": 0
  }
}

latest_trace.Schema: Trading.types.TraceResult

latest_trace.Type: object

latest_trace.Required fields: none

- latest_trace.contract_exit_code (integer; optional)

latest_trace.contract_exit_code example: 0

latest_trace.contract_exit_code.Type: integer

latest_trace.contract_exit_code.in try/catch on amm

- latest_trace.error_contract_interface (string; optional)

latest_trace.error_contract_interface example: string

latest_trace.error_contract_interface.Type: string

- latest_trace.execution_snapshot (object; optional)

latest_trace.execution_snapshot example: {
  "accounts": {
    "key": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    }
  }
}

latest_trace.execution_snapshot.Schema: Trading.types.ExecutionSnapshot

latest_trace.execution_snapshot.Type: object

latest_trace.execution_snapshot.Required fields: none

- latest_trace.execution_snapshot.accounts (object; optional)

latest_trace.execution_snapshot.accounts example: {
  "key": {
    "account_state": {},
    "is_active": true,
    "last_tx_hash": [
      0
    ],
    "last_tx_lt": 0,
    "rawAccount": {
      "code": {},
      "data": {},
      "isActive": true,
      "lastTxHash": [
        0
      ],
      "lastTxLT": 0,
      "state": {
        "address": {},
        "balance": {},
        "extraCurrencies": {},
        "isValid": true,
        "lastTransactionLT": 0,
        "stateHash": [
          0
        ],
        "stateInit": {
          "code": {},
          "data": {},
          "depth": 0,
          "lib": {},
          "tickTock": {
            "tick": true,
            "tock": true
          }
        },
        "status": "string",
        "storageInfo": {
          "duePayment": {},
          "lastPaid": 0,
          "storageUsed": {
            "bitsUsed": {},
            "cellsUsed": {}
          }
        }
      }
    }
  }
}

latest_trace.execution_snapshot.accounts.Type: object

latest_trace.execution_snapshot.accounts.*.Schema: Trading.types.AccountSnapshot

latest_trace.execution_snapshot.accounts.*.Type: object

latest_trace.execution_snapshot.accounts.*.Required fields: none

- latest_trace.execution_snapshot.accounts.*.account_state (object; optional)

latest_trace.execution_snapshot.accounts.*.account_state example: {}

latest_trace.execution_snapshot.accounts.*.account_state.Schema: Trading.cell.Cell

latest_trace.execution_snapshot.accounts.*.account_state.Type: object

- latest_trace.execution_snapshot.accounts.*.is_active (boolean; optional)

latest_trace.execution_snapshot.accounts.*.is_active example: true

latest_trace.execution_snapshot.accounts.*.is_active.Type: boolean

- latest_trace.execution_snapshot.accounts.*.last_tx_hash (integer[]; optional)

latest_trace.execution_snapshot.accounts.*.last_tx_hash example: [
  0
]

latest_trace.execution_snapshot.accounts.*.last_tx_hash.Type: integer[]

latest_trace.execution_snapshot.accounts.*.last_tx_hash.[]Type: integer

- latest_trace.execution_snapshot.accounts.*.last_tx_lt (integer; optional)

latest_trace.execution_snapshot.accounts.*.last_tx_lt example: 0

latest_trace.execution_snapshot.accounts.*.last_tx_lt.Type: integer

- latest_trace.execution_snapshot.accounts.*.rawAccount (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

latest_trace.execution_snapshot.accounts.*.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

latest_trace.execution_snapshot.accounts.*.rawAccount.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.code (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.code example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.code.Schema: Trading.cell.Cell

latest_trace.execution_snapshot.accounts.*.rawAccount.code.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.data (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.data example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.data.Schema: Trading.cell.Cell

latest_trace.execution_snapshot.accounts.*.rawAccount.data.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.isActive (boolean; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.isActive example: true

latest_trace.execution_snapshot.accounts.*.rawAccount.isActive.Type: boolean

- latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash (integer · int32[]; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash example: [
  0
]

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.Type: integer · int32[]

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]Type: integer · int32

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxHash.[]format: int32

- latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT (integer · int64; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT example: 0

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.Type: integer · int64

latest_trace.execution_snapshot.accounts.*.rawAccount.lastTxLT.format: int64

- latest_trace.execution_snapshot.accounts.*.rawAccount.state (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

latest_trace.execution_snapshot.accounts.*.rawAccount.state.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.address (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.address example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

latest_trace.execution_snapshot.accounts.*.rawAccount.state.address.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.execution_snapshot.accounts.*.rawAccount.state.balance.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

latest_trace.execution_snapshot.accounts.*.rawAccount.state.extraCurrencies.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid (boolean; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid example: true

latest_trace.execution_snapshot.accounts.*.rawAccount.state.isValid.Type: boolean

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT (integer · int64; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT example: 0

latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.Type: integer · int64

latest_trace.execution_snapshot.accounts.*.rawAccount.state.lastTransactionLT.format: int64

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash (integer · int32[]; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash example: [
  0
]

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.Type: integer · int32[]

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.has value when frozen

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]Type: integer · int32

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateHash.[]format: int32

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.has value when active

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.allOf variant 1

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.code.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.data.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth (integer; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth example: 0

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.depth.Type: integer

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.lib.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick example: true

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock example: true

latest_trace.execution_snapshot.accounts.*.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.status (string; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.status example: string

latest_trace.execution_snapshot.accounts.*.rawAccount.state.status.Type: string

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.duePayment.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid (integer; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid example: 0

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.lastPaid.Type: integer

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra (any; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageExtra.Type: any

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Type: object

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.Required fields: none

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

latest_trace.execution_snapshot.accounts.*.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- latest_trace.exit_code (integer; optional)

latest_trace.exit_code example: 0

latest_trace.exit_code.Type: integer

latest_trace.exit_code.in compute action/phase

- latest_trace.intents (any[]; optional)

latest_trace.intents example: []

latest_trace.intents.Type: any[]

latest_trace.intents.[]Type: any

- latest_trace.logs (object[]; optional)

latest_trace.logs example: [
  {
    "additional_data": {
      "index_price": {}
    },
    "executor_fee_amount": {},
    "executor_fee_rate": 0,
    "fee_to_stakers_percent": 0,
    "funding_payment": 0,
    "last_updated_cpf": 0,
    "log_type": 0,
    "margin": {},
    "open_notional": {},
    "position_fee_amount": {},
    "position_fee_rate": 0,
    "realized_pnl": 0,
    "rollover_fee": 0,
    "size": {}
  }
]

latest_trace.logs.Type: object[]

latest_trace.logs.[]Schema: Trading.vamm.IntentLog

latest_trace.logs.[]Type: object

latest_trace.logs.[]Required fields: none

- latest_trace.logs.[]additional_data (object; optional)

latest_trace.logs.[]additional_data example: {
  "index_price": {}
}

latest_trace.logs.[]additional_data.Schema: Trading.vamm.AdditionalLogData

latest_trace.logs.[]additional_data.Type: object

latest_trace.logs.[]additional_data.Required fields: none

- latest_trace.logs.[]additional_data.index_price (object; optional)

latest_trace.logs.[]additional_data.index_price example: {}

latest_trace.logs.[]additional_data.index_price.Type: object

latest_trace.logs.[]additional_data.index_price.real price of execution, for guaranteed SL/TP/LIQUIDATE/MAX_PNL

latest_trace.logs.[]additional_data.index_price.allOf variant 1

latest_trace.logs.[]additional_data.index_price.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.logs.[]additional_data.index_price.Type: object

- latest_trace.logs.[]executor_fee_amount (object; optional)

latest_trace.logs.[]executor_fee_amount example: {}

latest_trace.logs.[]executor_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.logs.[]executor_fee_amount.Type: object

- latest_trace.logs.[]executor_fee_rate (integer; optional)

latest_trace.logs.[]executor_fee_rate example: 0

latest_trace.logs.[]executor_fee_rate.Type: integer

- latest_trace.logs.[]fee_to_stakers_percent (integer; optional)

latest_trace.logs.[]fee_to_stakers_percent example: 0

latest_trace.logs.[]fee_to_stakers_percent.Type: integer

- latest_trace.logs.[]funding_payment (integer; optional)

latest_trace.logs.[]funding_payment example: 0

latest_trace.logs.[]funding_payment.Type: integer

- latest_trace.logs.[]last_updated_cpf (integer; optional)

latest_trace.logs.[]last_updated_cpf example: 0

latest_trace.logs.[]last_updated_cpf.Type: integer

- latest_trace.logs.[]log_type (integer · int32 · enum; optional)

latest_trace.logs.[]log_type example: 0

latest_trace.logs.[]log_type.Schema: Trading.vamm.LogType

latest_trace.logs.[]log_type.Type: integer · int32 · enum

latest_trace.logs.[]log_type.Allowed values: [0,1,2,3]

latest_trace.logs.[]log_type.format: int32

- latest_trace.logs.[]margin (object; optional)

latest_trace.logs.[]margin example: {}

latest_trace.logs.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.logs.[]margin.Type: object

- latest_trace.logs.[]open_notional (object; optional)

latest_trace.logs.[]open_notional example: {}

latest_trace.logs.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.logs.[]open_notional.Type: object

- latest_trace.logs.[]position_fee_amount (object; optional)

latest_trace.logs.[]position_fee_amount example: {}

latest_trace.logs.[]position_fee_amount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.logs.[]position_fee_amount.Type: object

- latest_trace.logs.[]position_fee_rate (integer; optional)

latest_trace.logs.[]position_fee_rate example: 0

latest_trace.logs.[]position_fee_rate.Type: integer

- latest_trace.logs.[]realized_pnl (integer; optional)

latest_trace.logs.[]realized_pnl example: 0

latest_trace.logs.[]realized_pnl.Type: integer

- latest_trace.logs.[]rollover_fee (integer; optional)

latest_trace.logs.[]rollover_fee example: 0

latest_trace.logs.[]rollover_fee.Type: integer

- latest_trace.logs.[]size (object; optional)

latest_trace.logs.[]size example: {}

latest_trace.logs.[]size.Schema: Trading.big.Int

latest_trace.logs.[]size.Type: object

- latest_trace.prices (any[]; optional)

latest_trace.prices example: []

latest_trace.prices.Type: any[]

latest_trace.prices.[]Type: any

- latest_trace.smart_account_state_end (object; optional)

latest_trace.smart_account_state_end example: {
  "account_state": {},
  "is_active": true,
  "last_tx_hash": [
    0
  ],
  "last_tx_lt": 0,
  "rawAccount": {
    "code": {},
    "data": {},
    "isActive": true,
    "lastTxHash": [
      0
    ],
    "lastTxLT": 0,
    "state": {
      "address": {},
      "balance": {},
      "extraCurrencies": {},
      "isValid": true,
      "lastTransactionLT": 0,
      "stateHash": [
        0
      ],
      "stateInit": {
        "code": {},
        "data": {},
        "depth": 0,
        "lib": {},
        "tickTock": {
          "tick": true,
          "tock": true
        }
      },
      "status": "string",
      "storageInfo": {
        "duePayment": {},
        "lastPaid": 0,
        "storageUsed": {
          "bitsUsed": {},
          "cellsUsed": {}
        }
      }
    }
  }
}

latest_trace.smart_account_state_end.Schema: Trading.types.AccountSnapshot

latest_trace.smart_account_state_end.Type: object

latest_trace.smart_account_state_end.Required fields: none

- latest_trace.smart_account_state_end.account_state (object; optional)

latest_trace.smart_account_state_end.account_state example: {}

latest_trace.smart_account_state_end.account_state.Schema: Trading.cell.Cell

latest_trace.smart_account_state_end.account_state.Type: object

- latest_trace.smart_account_state_end.is_active (boolean; optional)

latest_trace.smart_account_state_end.is_active example: true

latest_trace.smart_account_state_end.is_active.Type: boolean

- latest_trace.smart_account_state_end.last_tx_hash (integer[]; optional)

latest_trace.smart_account_state_end.last_tx_hash example: [
  0
]

latest_trace.smart_account_state_end.last_tx_hash.Type: integer[]

latest_trace.smart_account_state_end.last_tx_hash.[]Type: integer

- latest_trace.smart_account_state_end.last_tx_lt (integer; optional)

latest_trace.smart_account_state_end.last_tx_lt example: 0

latest_trace.smart_account_state_end.last_tx_lt.Type: integer

- latest_trace.smart_account_state_end.rawAccount (object; optional)

latest_trace.smart_account_state_end.rawAccount example: {
  "code": {},
  "data": {},
  "isActive": true,
  "lastTxHash": [
    0
  ],
  "lastTxLT": 0,
  "state": {
    "address": {},
    "balance": {},
    "extraCurrencies": {},
    "isValid": true,
    "lastTransactionLT": 0,
    "stateHash": [
      0
    ],
    "stateInit": {
      "code": {},
      "data": {},
      "depth": 0,
      "lib": {},
      "tickTock": {
        "tick": true,
        "tock": true
      }
    },
    "status": "string",
    "storageInfo": {
      "duePayment": {},
      "lastPaid": 0,
      "storageUsed": {
        "bitsUsed": {},
        "cellsUsed": {}
      }
    }
  }
}

latest_trace.smart_account_state_end.rawAccount.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Account

latest_trace.smart_account_state_end.rawAccount.Type: object

latest_trace.smart_account_state_end.rawAccount.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.code (object; optional)

latest_trace.smart_account_state_end.rawAccount.code example: {}

latest_trace.smart_account_state_end.rawAccount.code.Schema: Trading.cell.Cell

latest_trace.smart_account_state_end.rawAccount.code.Type: object

- latest_trace.smart_account_state_end.rawAccount.data (object; optional)

latest_trace.smart_account_state_end.rawAccount.data example: {}

latest_trace.smart_account_state_end.rawAccount.data.Schema: Trading.cell.Cell

latest_trace.smart_account_state_end.rawAccount.data.Type: object

- latest_trace.smart_account_state_end.rawAccount.isActive (boolean; optional)

latest_trace.smart_account_state_end.rawAccount.isActive example: true

latest_trace.smart_account_state_end.rawAccount.isActive.Type: boolean

- latest_trace.smart_account_state_end.rawAccount.lastTxHash (integer · int32[]; optional)

latest_trace.smart_account_state_end.rawAccount.lastTxHash example: [
  0
]

latest_trace.smart_account_state_end.rawAccount.lastTxHash.Type: integer · int32[]

latest_trace.smart_account_state_end.rawAccount.lastTxHash.[]Type: integer · int32

latest_trace.smart_account_state_end.rawAccount.lastTxHash.[]format: int32

- latest_trace.smart_account_state_end.rawAccount.lastTxLT (integer · int64; optional)

latest_trace.smart_account_state_end.rawAccount.lastTxLT example: 0

latest_trace.smart_account_state_end.rawAccount.lastTxLT.Type: integer · int64

latest_trace.smart_account_state_end.rawAccount.lastTxLT.format: int64

- latest_trace.smart_account_state_end.rawAccount.state (object; optional)

latest_trace.smart_account_state_end.rawAccount.state example: {
  "address": {},
  "balance": {},
  "extraCurrencies": {},
  "isValid": true,
  "lastTransactionLT": 0,
  "stateHash": [
    0
  ],
  "stateInit": {
    "code": {},
    "data": {},
    "depth": 0,
    "lib": {},
    "tickTock": {
      "tick": true,
      "tock": true
    }
  },
  "status": "string",
  "storageInfo": {
    "duePayment": {},
    "lastPaid": 0,
    "storageUsed": {
      "bitsUsed": {},
      "cellsUsed": {}
    }
  }
}

latest_trace.smart_account_state_end.rawAccount.state.Schema: Trading.github_com_xssnick_tonutils-go_tlb.AccountState

latest_trace.smart_account_state_end.rawAccount.state.Type: object

latest_trace.smart_account_state_end.rawAccount.state.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.state.address (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.address example: {}

latest_trace.smart_account_state_end.rawAccount.state.address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

latest_trace.smart_account_state_end.rawAccount.state.address.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.balance (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.balance example: {}

latest_trace.smart_account_state_end.rawAccount.state.balance.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.smart_account_state_end.rawAccount.state.balance.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies example: {}

latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies.Schema: Trading.cell.Dictionary

latest_trace.smart_account_state_end.rawAccount.state.extraCurrencies.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.isValid (boolean; optional)

latest_trace.smart_account_state_end.rawAccount.state.isValid example: true

latest_trace.smart_account_state_end.rawAccount.state.isValid.Type: boolean

- latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT (integer · int64; optional)

latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT example: 0

latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT.Type: integer · int64

latest_trace.smart_account_state_end.rawAccount.state.lastTransactionLT.format: int64

- latest_trace.smart_account_state_end.rawAccount.state.stateHash (integer · int32[]; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateHash example: [
  0
]

latest_trace.smart_account_state_end.rawAccount.state.stateHash.Type: integer · int32[]

latest_trace.smart_account_state_end.rawAccount.state.stateHash.has value when frozen

latest_trace.smart_account_state_end.rawAccount.state.stateHash.[]Type: integer · int32

latest_trace.smart_account_state_end.rawAccount.state.stateHash.[]format: int32

- latest_trace.smart_account_state_end.rawAccount.state.stateInit (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit example: {
  "code": {},
  "data": {},
  "depth": 0,
  "lib": {},
  "tickTock": {
    "tick": true,
    "tock": true
  }
}

latest_trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

latest_trace.smart_account_state_end.rawAccount.state.stateInit.has value when active

latest_trace.smart_account_state_end.rawAccount.state.stateInit.allOf variant 1

latest_trace.smart_account_state_end.rawAccount.state.stateInit.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StateInit

latest_trace.smart_account_state_end.rawAccount.state.stateInit.Type: object

latest_trace.smart_account_state_end.rawAccount.state.stateInit.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.code (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.code example: {}

latest_trace.smart_account_state_end.rawAccount.state.stateInit.code.Schema: Trading.cell.Cell

latest_trace.smart_account_state_end.rawAccount.state.stateInit.code.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.data (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.data example: {}

latest_trace.smart_account_state_end.rawAccount.state.stateInit.data.Schema: Trading.cell.Cell

latest_trace.smart_account_state_end.rawAccount.state.stateInit.data.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth (integer; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth example: 0

latest_trace.smart_account_state_end.rawAccount.state.stateInit.depth.Type: integer

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib example: {}

latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib.Schema: Trading.cell.Dictionary

latest_trace.smart_account_state_end.rawAccount.state.stateInit.lib.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock example: {
  "tick": true,
  "tock": true
}

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Schema: Trading.github_com_xssnick_tonutils-go_tlb.TickTock

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Type: object

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick (boolean; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick example: true

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tick.Type: boolean

- latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock (boolean; optional)

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock example: true

latest_trace.smart_account_state_end.rawAccount.state.stateInit.tickTock.tock.Type: boolean

- latest_trace.smart_account_state_end.rawAccount.state.status (string; optional)

latest_trace.smart_account_state_end.rawAccount.state.status example: string

latest_trace.smart_account_state_end.rawAccount.state.status.Type: string

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo example: {
  "duePayment": {},
  "lastPaid": 0,
  "storageUsed": {
    "bitsUsed": {},
    "cellsUsed": {}
  }
}

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageInfo

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Type: object

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment example: {}

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.duePayment.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid (integer; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid example: 0

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.lastPaid.Type: integer

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra (any; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageExtra.Type: any

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed example: {
  "bitsUsed": {},
  "cellsUsed": {}
}

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Schema: Trading.github_com_xssnick_tonutils-go_tlb.StorageUsed

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Type: object

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.Required fields: none

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed example: {}

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Schema: Trading.big.Int

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.bitsUsed.Type: object

- latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed (object; optional)

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed example: {}

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Schema: Trading.big.Int

latest_trace.smart_account_state_end.rawAccount.state.storageInfo.storageUsed.cellsUsed.Type: object

- latest_trace.update_position (object; optional)

latest_trace.update_position example: {
  "jetton_minter": {},
  "notification_payload": {
    "amm_address": {},
    "balance_delta": {},
    "bundle_sender_address": {},
    "direction": 0,
    "position_state": {
      "direction": 0,
      "discount": 0,
      "fee": 0,
      "last_updated_cumulative_premium": 0,
      "last_updated_timestamp": 0,
      "margin": {},
      "open_notional": {},
      "rebate": 0,
      "size": {}
    }
  },
  "query_id": 0
}

latest_trace.update_position.Schema: Trading.smartaccount.NotifyUpdatePosition

latest_trace.update_position.Type: object

latest_trace.update_position.Required fields: none

- latest_trace.update_position.jetton_minter (object; optional)

latest_trace.update_position.jetton_minter example: {}

latest_trace.update_position.jetton_minter.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

latest_trace.update_position.jetton_minter.Type: object

- latest_trace.update_position.notification_payload (object; optional)

latest_trace.update_position.notification_payload example: {
  "amm_address": {},
  "balance_delta": {},
  "bundle_sender_address": {},
  "direction": 0,
  "position_state": {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
}

latest_trace.update_position.notification_payload.Schema: Trading.smartaccount.NotificationPayload

latest_trace.update_position.notification_payload.Type: object

latest_trace.update_position.notification_payload.Required fields: none

- latest_trace.update_position.notification_payload.amm_address (object; optional)

latest_trace.update_position.notification_payload.amm_address example: {}

latest_trace.update_position.notification_payload.amm_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

latest_trace.update_position.notification_payload.amm_address.Type: object

- latest_trace.update_position.notification_payload.balance_delta (object; optional)

latest_trace.update_position.notification_payload.balance_delta example: {}

latest_trace.update_position.notification_payload.balance_delta.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.update_position.notification_payload.balance_delta.Type: object

- latest_trace.update_position.notification_payload.bundle_sender_address (object; optional)

latest_trace.update_position.notification_payload.bundle_sender_address example: {}

latest_trace.update_position.notification_payload.bundle_sender_address.Schema: Trading.github_com_xssnick_tonutils-go_address.Address

latest_trace.update_position.notification_payload.bundle_sender_address.Type: object

- latest_trace.update_position.notification_payload.direction (integer; optional)

latest_trace.update_position.notification_payload.direction example: 0

latest_trace.update_position.notification_payload.direction.Type: integer

- latest_trace.update_position.notification_payload.position_state (object; optional)

latest_trace.update_position.notification_payload.position_state example: {
  "direction": 0,
  "discount": 0,
  "fee": 0,
  "last_updated_cumulative_premium": 0,
  "last_updated_timestamp": 0,
  "margin": {},
  "open_notional": {},
  "rebate": 0,
  "size": {}
}

latest_trace.update_position.notification_payload.position_state.Schema: Trading.schemas.PositionState

latest_trace.update_position.notification_payload.position_state.Type: object

latest_trace.update_position.notification_payload.position_state.Required fields: none

- latest_trace.update_position.notification_payload.position_state.direction (integer; optional)

latest_trace.update_position.notification_payload.position_state.direction example: 0

latest_trace.update_position.notification_payload.position_state.direction.Type: integer

- latest_trace.update_position.notification_payload.position_state.discount (integer; optional)

latest_trace.update_position.notification_payload.position_state.discount example: 0

latest_trace.update_position.notification_payload.position_state.discount.Type: integer

- latest_trace.update_position.notification_payload.position_state.fee (integer; optional)

latest_trace.update_position.notification_payload.position_state.fee example: 0

latest_trace.update_position.notification_payload.position_state.fee.Type: integer

- latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium (integer; optional)

latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium example: 0

latest_trace.update_position.notification_payload.position_state.last_updated_cumulative_premium.Type: integer

- latest_trace.update_position.notification_payload.position_state.last_updated_timestamp (integer; optional)

latest_trace.update_position.notification_payload.position_state.last_updated_timestamp example: 0

latest_trace.update_position.notification_payload.position_state.last_updated_timestamp.Type: integer

- latest_trace.update_position.notification_payload.position_state.margin (object; optional)

latest_trace.update_position.notification_payload.position_state.margin example: {}

latest_trace.update_position.notification_payload.position_state.margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.update_position.notification_payload.position_state.margin.Type: object

- latest_trace.update_position.notification_payload.position_state.open_notional (object; optional)

latest_trace.update_position.notification_payload.position_state.open_notional example: {}

latest_trace.update_position.notification_payload.position_state.open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

latest_trace.update_position.notification_payload.position_state.open_notional.Type: object

- latest_trace.update_position.notification_payload.position_state.rebate (integer; optional)

latest_trace.update_position.notification_payload.position_state.rebate example: 0

latest_trace.update_position.notification_payload.position_state.rebate.Type: integer

- latest_trace.update_position.notification_payload.position_state.size (object; optional)

latest_trace.update_position.notification_payload.position_state.size example: {}

latest_trace.update_position.notification_payload.position_state.size.Schema: Trading.big.Int

latest_trace.update_position.notification_payload.position_state.size.Type: object

- latest_trace.update_position.query_id (integer; optional)

latest_trace.update_position.query_id example: 0

latest_trace.update_position.query_id.Type: integer

- leased_query_id (integer; optional)

leased_query_id example: 0

leased_query_id.Type: integer

- out_msg_boc (integer[]; optional)

out_msg_boc example: [
  0
]

out_msg_boc.Type: integer[]

out_msg_boc.OutMessageBOC is the serialized ext message, persisted only for a broadcast-
but-unconfirmed (AwaitConfirm) bundle so SentBundlesTask can re-broadcast the
SAME message (idempotent; a rebuild with a fresh created_at is a different
message and would risk double-execution).

out_msg_boc.[]Type: integer

- outcome (object; optional)

outcome example: {
  "action_code": 0,
  "block_seqno": 0,
  "error_interface": "string",
  "exit_code": 0,
  "finalized_at": 0,
  "reason": "string",
  "tx_hash": [
    0
  ],
  "tx_lt": 0
}

outcome.Type: object

outcome.set on terminal (confirmed/failed)

outcome.allOf variant 1

outcome.Schema: Trading.bundle.Outcome

outcome.Type: object

outcome.Required fields: none

- outcome.action_code (integer; optional)

outcome.action_code example: 0

outcome.action_code.Type: integer

- outcome.block_seqno (integer; optional)

outcome.block_seqno example: 0

outcome.block_seqno.Type: integer

- outcome.error_interface (string; optional)

outcome.error_interface example: string

outcome.error_interface.Type: string

- outcome.exit_code (integer; optional)

outcome.exit_code example: 0

outcome.exit_code.Type: integer

- outcome.finalized_at (integer; optional)

outcome.finalized_at example: 0

outcome.finalized_at.Type: integer

- outcome.reason (string; optional)

outcome.reason example: string

outcome.reason.Type: string

- outcome.tx_hash (integer[]; optional)

outcome.tx_hash example: [
  0
]

outcome.tx_hash.Type: integer[]

outcome.tx_hash.[]Type: integer

- outcome.tx_lt (integer; optional)

outcome.tx_lt example: 0

outcome.tx_lt.Type: integer

- payment_mode (integer · int32 · enum; optional)

payment_mode example: 0

payment_mode.Schema: Trading.bundle.PaymentMode

payment_mode.Type: integer · int32 · enum

payment_mode.Allowed values: [0,1,0,1]

payment_mode.format: int32

- position_state (object[]; optional)

position_state example: [
  {
    "direction": 0,
    "discount": 0,
    "fee": 0,
    "last_updated_cumulative_premium": 0,
    "last_updated_timestamp": 0,
    "margin": {},
    "open_notional": {},
    "rebate": 0,
    "size": {}
  }
]

position_state.Type: object[]

position_state.[]Schema: Trading.schemas.PositionState

position_state.[]Type: object

position_state.[]Required fields: none

- position_state.[]direction (integer; optional)

position_state.[]direction example: 0

position_state.[]direction.Type: integer

- position_state.[]discount (integer; optional)

position_state.[]discount example: 0

position_state.[]discount.Type: integer

- position_state.[]fee (integer; optional)

position_state.[]fee example: 0

position_state.[]fee.Type: integer

- position_state.[]last_updated_cumulative_premium (integer; optional)

position_state.[]last_updated_cumulative_premium example: 0

position_state.[]last_updated_cumulative_premium.Type: integer

- position_state.[]last_updated_timestamp (integer; optional)

position_state.[]last_updated_timestamp example: 0

position_state.[]last_updated_timestamp.Type: integer

- position_state.[]margin (object; optional)

position_state.[]margin example: {}

position_state.[]margin.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

position_state.[]margin.Type: object

- position_state.[]open_notional (object; optional)

position_state.[]open_notional example: {}

position_state.[]open_notional.Schema: Trading.github_com_xssnick_tonutils-go_tlb.Coins

position_state.[]open_notional.Type: object

- position_state.[]rebate (integer; optional)

position_state.[]rebate example: 0

position_state.[]rebate.Type: integer

- position_state.[]size (object; optional)

position_state.[]size example: {}

position_state.[]size.Schema: Trading.big.Int

position_state.[]size.Type: object

- reason (string; optional)

reason example: string

reason.Type: string

- recover_attempts (integer; optional)

recover_attempts example: 0

recover_attempts.Type: integer

recover_attempts.RecoverAttempts counts how many times a not-landed Sent bundle has been
recovered back to Pending (see recoverSentBundle); bounds the retry so a
bundle that can never land eventually fails instead of looping forever.

- sent_at (integer; optional)

sent_at example: 0

sent_at.Type: integer

sent_at.unix secs of the StatusSent transition; the stale-drop clock starts here, not at CreatedAt

- status (string · enum; optional)

status example: pending

status.Schema: Trading.bundle.Status

status.Type: string · enum

status.Allowed values: ["pending","sealed","sent","confirmed","failed"]

- tx_hash (integer[]; optional)

tx_hash example: [
  0
]

tx_hash.Type: integer[]

tx_hash.[]Type: integer

Example



```json
{
  "created_at": "string",
  "ext_hash": [
    0
  ],
  "gasless_source": 0,
  "id": {
    "addr": "string",
    "direction": "long",
    "market": "string",
    "owner": "string"
  },
  "intent_hashes": [
    [
      0
    ]
  ],
  "intents": [
    {
      "action_phase": "string",
      "builder": {},
      "created_price": {
        "created_at": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "index": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "rfc": {
          "effective_depth": 0,
          "original_k": 0,
          "original_market_depth_long": 0,
          "original_market_depth_short": 0,
          "original_spread": 0,
          "recovery_rate": 0,
          "signed_price": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "velocity_debt": 0
        },
        "settlement": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "timestamp": "string"
      },
      "date": "string",
      "full_message": {
        "message": {
          "created_at": 0,
          "intent": {
            "order": {},
            "smart_account": {},
            "v_amm": {}
          },
          "public_key": [
            0
          ],
          "query_id": {
            "bit_number": 0,
            "shift": 0
          },
          "reference_query_id": {
            "bit_number": 0,
            "shift": 0
          }
        },
        "public_key": "string",
        "signature": [
          0
        ]
      },
      "hash": [
        0
      ],
      "market": {},
      "order": {},
      "order_requests": [
        {
          "full_message": {
            "message": {
              "created_at": 0,
              "intent": {
                "order": {},
                "smart_account": {},
                "v_amm": {}
              },
              "public_key": [
                0
              ],
              "query_id": {
                "bit_number": 0,
                "shift": 0
              },
              "reference_query_id": {
                "bit_number": 0,
                "shift": 0
              }
            },
            "public_key": "string",
            "signature": [
              0
            ]
          },
          "hash": [
            0
          ],
          "order_request": {
            "selector": 0
          },
          "order_request_hash": [
            0
          ],
          "smart_account": {}
        }
      ],
      "payment_mode": 0,
      "price": {
        "created_at": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "index": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "rfc": {
          "effective_depth": 0,
          "original_k": 0,
          "original_market_depth_long": 0,
          "original_market_depth_short": 0,
          "original_spread": 0,
          "recovery_rate": 0,
          "signed_price": {
            "closestPauseAt": 0,
            "closestUnpauseAt": 0,
            "feed": "string",
            "inPause": true,
            "isOnline": true,
            "k": 0,
            "marketDepthLong": 0,
            "marketDepthShort": 0,
            "pauseAt": 0,
            "pausedAt": 0,
            "price": 0,
            "result_message": {
              "price_ref": "string",
              "signatures_ref": "string"
            },
            "slot": 0,
            "spread": 0,
            "status": "string",
            "timestamp": 0,
            "unpauseAt": 0
          },
          "velocity_debt": 0
        },
        "settlement": {
          "closestPauseAt": 0,
          "closestUnpauseAt": 0,
          "feed": "string",
          "inPause": true,
          "isOnline": true,
          "k": 0,
          "marketDepthLong": 0,
          "marketDepthShort": 0,
          "pauseAt": 0,
          "pausedAt": 0,
          "price": 0,
          "result_message": {
            "price_ref": "string",
            "signatures_ref": "string"
          },
          "slot": 0,
          "spread": 0,
          "status": "string",
          "timestamp": 0,
          "unpauseAt": 0
        },
        "timestamp": "string"
      },
      "smart_account": {},
      "vault": {}
    }
  ],
  "last_update": "string",
  "latest_trace": {
    "contract_exit_code": 0,
    "error_contract_interface": "string",
    "execution_snapshot": {
      "accounts": {
        "key": {
          "account_state": {},
          "is_active": true,
          "last_tx_hash": [
            0
          ],
          "last_tx_lt": 0,
          "rawAccount": {
            "code": {},
            "data": {},
            "isActive": true,
            "lastTxHash": [
              0
            ],
            "lastTxLT": 0,
            "state": {
              "address": {},
              "balance": {},
              "extraCurrencies": {},
              "isValid": true,
              "lastTransactionLT": 0,
              "stateHash": [
                0
              ],
              "stateInit": {
                "code": {},
                "data": {},
                "depth": 0,
                "lib": {},
                "tickTock": {
                  "tick": true,
                  "tock": true
                }
              },
              "status": "string",
              "storageInfo": {
                "duePayment": {},
                "lastPaid": 0,
                "storageUsed": {
                  "bitsUsed": {},
                  "cellsUsed": {}
                }
              }
            }
          }
        }
      }
    },
    "exit_code": 0,
    "intents": [],
    "logs": [
      {
        "additional_data": {
          "index_price": {}
        },
        "executor_fee_amount": {},
        "executor_fee_rate": 0,
        "fee_to_stakers_percent": 0,
        "funding_payment": 0,
        "last_updated_cpf": 0,
        "log_type": 0,
        "margin": {},
        "open_notional": {},
        "position_fee_amount": {},
        "position_fee_rate": 0,
        "realized_pnl": 0,
        "rollover_fee": 0,
        "size": {}
      }
    ],
    "prices": [],
    "smart_account_state_end": {
      "account_state": {},
      "is_active": true,
      "last_tx_hash": [
        0
      ],
      "last_tx_lt": 0,
      "rawAccount": {
        "code": {},
        "data": {},
        "isActive": true,
        "lastTxHash": [
          0
        ],
        "lastTxLT": 0,
        "state": {
          "address": {},
          "balance": {},
          "extraCurrencies": {},
          "isValid": true,
          "lastTransactionLT": 0,
          "stateHash": [
            0
          ],
          "stateInit": {
            "code": {},
            "data": {},
            "depth": 0,
            "lib": {},
            "tickTock": {
              "tick": true,
              "tock": true
            }
          },
          "status": "string",
          "storageInfo": {
            "duePayment": {},
            "lastPaid": 0,
            "storageUsed": {
              "bitsUsed": {},
              "cellsUsed": {}
            }
          }
        }
      }
    },
    "update_position": {
      "jetton_minter": {},
      "notification_payload": {
        "amm_address": {},
        "balance_delta": {},
        "bundle_sender_address": {},
        "direction": 0,
        "position_state": {
          "direction": 0,
          "discount": 0,
          "fee": 0,
          "last_updated_cumulative_premium": 0,
          "last_updated_timestamp": 0,
          "margin": {},
          "open_notional": {},
          "rebate": 0,
          "size": {}
        }
      },
      "query_id": 0
    }
  },
  "leased_query_id": 0,
  "out_msg_boc": [
    0
  ],
  "outcome": {
    "action_code": 0,
    "block_seqno": 0,
    "error_interface": "string",
    "exit_code": 0,
    "finalized_at": 0,
    "reason": "string",
    "tx_hash": [
      0
    ],
    "tx_lt": 0
  },
  "payment_mode": 0,
  "position_state": [
    {
      "direction": 0,
      "discount": 0,
      "fee": 0,
      "last_updated_cumulative_premium": 0,
      "last_updated_timestamp": 0,
      "margin": {},
      "open_notional": {},
      "rebate": 0,
      "size": {}
    }
  ],
  "reason": "string",
  "recover_attempts": 0,
  "sent_at": 0,
  "status": "pending",
  "tx_hash": [
    0
  ]
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 404 · Trading.api.ErrorResponse

**404** application/json — Not Found

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Check trading availability

Source: https://docs.storm.tg/developers/operations/getstatus

# Check trading availability

`GET /v3-node-0/status`

Returns the current status of the sequencer including lag, block info, and bundle counts

## Authorization



## Parameters



## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/status' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/status", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/status",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.StatusResponse

**200** application/json — OK

Schema: Trading.api.StatusResponse

Type: object

Required fields: none

- active_shards (integer; optional)

active_shards example: 0

active_shards.Type: integer

- committed_bundles (integer; optional)

committed_bundles example: 0

committed_bundles.Type: integer

- confirmed_bundles (integer; optional)

confirmed_bundles example: 0

confirmed_bundles.Type: integer

- current_block (integer; optional)

current_block example: 0

current_block.Type: integer

- failed_bundles (integer; optional)

failed_bundles example: 0

failed_bundles.Type: integer

- finalizing_bundles (integer; optional)

finalizing_bundles example: 0

finalizing_bundles.Type: integer

- lag (integer; optional)

lag example: 0

lag.Type: integer

- last_processed_block (integer; optional)

last_processed_block example: 0

last_processed_block.Type: integer

- ok (boolean; optional)

ok example: true

ok.Type: boolean

- pending_bundles (integer; optional)

pending_bundles example: 0

pending_bundles.Type: integer

- pending_intents (integer; optional)

pending_intents example: 0

pending_intents.Type: integer

pending_intents.PendingIntents is the total async intake backlog (queued, not yet drained).

Example



```json
{
  "active_shards": 0,
  "committed_bundles": 0,
  "confirmed_bundles": 0,
  "current_block": 0,
  "failed_bundles": 0,
  "finalizing_bundles": 0,
  "lag": 0,
  "last_processed_block": 0,
  "ok": true,
  "pending_bundles": 0,
  "pending_intents": 0
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# List active positions

Source: https://docs.storm.tg/developers/operations/listactivepositions

# List active positions

`GET /api/positions/{trader}/active`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- query: offset (number; optional). 

Type: number

Example: 10

Default: 0

minimum: 0

- query: limit (number; optional). 

Type: number

Example: 20

Default: 20

minimum: 1

maximum: 100

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{trader}/active' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{trader}/active", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{trader}/active",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.PositionResponse

[]Type: object

[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- []idx (string · nullable; required)

[]idx example: string

[]idx.Type: string · nullable

- []txId (string · nullable; required)

[]txId example: string

[]txId.Type: string · nullable

- []version (number; required)

[]version example: 0

[]version.Type: number

- []openedAt (string · date-time; required)

[]openedAt example: 2026-01-01T00:00:00Z

[]openedAt.Type: string · date-time

[]openedAt.format: date-time

- []lastUpdatedAt (string · date-time; required)

[]lastUpdatedAt example: 2026-01-01T00:00:00Z

[]lastUpdatedAt.Type: string · date-time

[]lastUpdatedAt.format: date-time

- []closedAt (string · date-time · nullable; required)

[]closedAt example: 2026-01-01T00:00:00Z

[]closedAt.Type: string · date-time · nullable

[]closedAt.format: date-time

- []type (string · enum; required)

[]type example: long

[]type.Type: string · enum

[]type.Allowed values: ["long","short"]

- []status (string · enum; required)

[]status example: pending_open

[]status.Type: string · enum

[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []size (string · int64; required)

[]size example: 0

[]size.Type: string · int64

[]size.format: int64

[]size.pattern: ^(0|-?[1-9][0-9]*)$

- []notional (string · int64; required)

[]notional example: 0

[]notional.Type: string · int64

[]notional.format: int64

[]notional.pattern: ^(0|-?[1-9][0-9]*)$

- []fraction (string · int64; required)

[]fraction example: 0

[]fraction.Type: string · int64

[]fraction.format: int64

[]fraction.pattern: ^(0|-?[1-9][0-9]*)$

- []margin (string · int64; required)

[]margin example: 0

[]margin.Type: string · int64

[]margin.format: int64

[]margin.pattern: ^(0|-?[1-9][0-9]*)$

- []pnl (string · int64 · nullable; required)

[]pnl example: 0

[]pnl.Type: string · int64 · nullable

[]pnl.format: int64

[]pnl.pattern: ^(0|-?[1-9][0-9]*)$

- []funding (string · int64 · nullable; required)

[]funding example: 0

[]funding.Type: string · int64 · nullable

[]funding.format: int64

[]funding.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFee (string · int64 · nullable; required)

[]rolloverFee example: 0

[]rolloverFee.Type: string · int64 · nullable

[]rolloverFee.format: int64

[]rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []indexOraclePrice (string · int64 · nullable; required)

[]indexOraclePrice example: 0

[]indexOraclePrice.Type: string · int64 · nullable

[]indexOraclePrice.format: int64

[]indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []fee (string · int64 · nullable; required)

[]fee example: 0

[]fee.Type: string · int64 · nullable

[]fee.format: int64

[]fee.pattern: ^(0|-?[1-9][0-9]*)$

- []feeRate (string · int64 · nullable; required)

[]feeRate example: 0

[]feeRate.Type: string · int64 · nullable

[]feeRate.format: int64

[]feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedQuote (string · int64 · nullable; required)

[]exchangedQuote example: 0

[]exchangedQuote.Type: string · int64 · nullable

[]exchangedQuote.format: int64

[]exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedBase (string · int64 · nullable; required)

[]exchangedBase example: 0

[]exchangedBase.Type: string · int64 · nullable

[]exchangedBase.format: int64

[]exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []eventName (string · nullable; required)

[]eventName example: string

[]eventName.Type: string · nullable

- []pnlInEvent (string · int64 · nullable; required)

[]pnlInEvent example: 0

[]pnlInEvent.Type: string · int64 · nullable

[]pnlInEvent.format: int64

[]pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []feeInEvent (string · int64 · nullable; required)

[]feeInEvent example: 0

[]feeInEvent.Type: string · int64 · nullable

[]feeInEvent.format: int64

[]feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []fundingInEvent (string · int64 · nullable; required)

[]fundingInEvent example: 0

[]fundingInEvent.Type: string · int64 · nullable

[]fundingInEvent.format: int64

[]fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFeeInEvent (string · int64 · nullable; required)

[]rolloverFeeInEvent example: 0

[]rolloverFeeInEvent.Type: string · int64 · nullable

[]rolloverFeeInEvent.format: int64

[]rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeRate (string · int64 · nullable; required)

[]executionFeeRate example: 0

[]executionFeeRate.Type: string · int64 · nullable

[]executionFeeRate.format: int64

[]executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeInEvent (string · int64 · nullable; required)

[]executionFeeInEvent example: 0

[]executionFeeInEvent.Type: string · int64 · nullable

[]executionFeeInEvent.format: int64

[]executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFee (string · int64 · nullable; required)

[]executionFee example: 0

[]executionFee.Type: string · int64 · nullable

[]executionFee.format: int64

[]executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- []timestamp (string · date-time; required)

[]timestamp example: 2026-01-01T00:00:00Z

[]timestamp.Type: string · date-time

[]timestamp.format: date-time

- []isOnchain (boolean; required)

[]isOnchain example: true

[]isOnchain.Type: boolean

- []roe (string · int64 · nullable; required)

[]roe example: 0

[]roe.Type: string · int64 · nullable

[]roe.format: int64

[]roe.pattern: ^(0|-?[1-9][0-9]*)$

- []order (object · nullable; optional)

[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

[]order.Type: object · nullable

[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []order.id (string; required)

[]order.id example: string

[]order.id.Type: string

- []order.txId (string; required)

[]order.txId example: string

[]order.txId.Type: string

- []order.trader (string; required)

[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.trader.Type: string

- []order.masterTrader (string; required)

[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.masterTrader.Type: string

- []order.market (string; required)

[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.market.Type: string

- []order.status (string · enum; required)

[]order.status example: seq_pending

[]order.status.Type: string · enum

[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []order.type (string · enum; required)

[]order.type example: market

[]order.type.Type: string · enum

[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []order.direction (string · enum; required)

[]order.direction example: long

[]order.direction.Type: string · enum

[]order.direction.Allowed values: ["long","short"]

- []order.stopPrice (string · int64 · nullable; required)

[]order.stopPrice example: 0

[]order.stopPrice.Type: string · int64 · nullable

[]order.stopPrice.format: int64

[]order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.limitPrice (string · int64 · nullable; required)

[]order.limitPrice example: 0

[]order.limitPrice.Type: string · int64 · nullable

[]order.limitPrice.format: int64

[]order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.stopTriggerPrice (string · int64 · nullable; required)

[]order.stopTriggerPrice example: 0

[]order.stopTriggerPrice.Type: string · int64 · nullable

[]order.stopTriggerPrice.format: int64

[]order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.takeTriggerPrice (string · int64 · nullable; required)

[]order.takeTriggerPrice example: 0

[]order.takeTriggerPrice.Type: string · int64 · nullable

[]order.takeTriggerPrice.format: int64

[]order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.leverage (string · int64 · nullable; required)

[]order.leverage example: 0

[]order.leverage.Type: string · int64 · nullable

[]order.leverage.format: int64

[]order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- []order.index (number · nullable; required)

[]order.index example: 0

[]order.index.Type: number · nullable

- []order.positionId (string · nullable; required)

[]order.positionId example: string

[]order.positionId.Type: string · nullable

- []order.expiration (string · date-time · nullable; required)

[]order.expiration example: 2026-01-01T00:00:00Z

[]order.expiration.Type: string · date-time · nullable

[]order.expiration.format: date-time

- []order.amount (string · int64 · nullable; required)

[]order.amount example: 0

[]order.amount.Type: string · int64 · nullable

[]order.amount.format: int64

[]order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- []order.indexPrice (string · int64 · nullable; required)

[]order.indexPrice example: 0

[]order.indexPrice.Type: string · int64 · nullable

[]order.indexPrice.format: int64

[]order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.settlementOraclePrice (string · int64 · nullable; required)

[]order.settlementOraclePrice example: 0

[]order.settlementOraclePrice.Type: string · int64 · nullable

[]order.settlementOraclePrice.format: int64

[]order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.createdAt (string · date-time; required)

[]order.createdAt example: 2026-01-01T00:00:00Z

[]order.createdAt.Type: string · date-time

[]order.createdAt.format: date-time

- []order.error (string · nullable; required)

[]order.error example: string

[]order.error.Type: string · nullable

Example



```json
[
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]
```

---

# List active positions for an asset

Source: https://docs.storm.tg/developers/operations/listactiveassetpositions

# List active positions for an asset

`GET /api/positions/{trader}/{asset}/active`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: asset (string; required). Position base asset

Type: string

Example: "BTC"

minLength: 1

- query: offset (number; optional). 

Type: number

Example: 10

Default: 0

minimum: 0

- query: limit (number; optional). 

Type: number

Example: 20

Default: 20

minimum: 1

maximum: 100

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{trader}/{asset}/active' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{trader}/{asset}/active", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{trader}/{asset}/active",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.PositionResponse

[]Type: object

[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- []idx (string · nullable; required)

[]idx example: string

[]idx.Type: string · nullable

- []txId (string · nullable; required)

[]txId example: string

[]txId.Type: string · nullable

- []version (number; required)

[]version example: 0

[]version.Type: number

- []openedAt (string · date-time; required)

[]openedAt example: 2026-01-01T00:00:00Z

[]openedAt.Type: string · date-time

[]openedAt.format: date-time

- []lastUpdatedAt (string · date-time; required)

[]lastUpdatedAt example: 2026-01-01T00:00:00Z

[]lastUpdatedAt.Type: string · date-time

[]lastUpdatedAt.format: date-time

- []closedAt (string · date-time · nullable; required)

[]closedAt example: 2026-01-01T00:00:00Z

[]closedAt.Type: string · date-time · nullable

[]closedAt.format: date-time

- []type (string · enum; required)

[]type example: long

[]type.Type: string · enum

[]type.Allowed values: ["long","short"]

- []status (string · enum; required)

[]status example: pending_open

[]status.Type: string · enum

[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []size (string · int64; required)

[]size example: 0

[]size.Type: string · int64

[]size.format: int64

[]size.pattern: ^(0|-?[1-9][0-9]*)$

- []notional (string · int64; required)

[]notional example: 0

[]notional.Type: string · int64

[]notional.format: int64

[]notional.pattern: ^(0|-?[1-9][0-9]*)$

- []fraction (string · int64; required)

[]fraction example: 0

[]fraction.Type: string · int64

[]fraction.format: int64

[]fraction.pattern: ^(0|-?[1-9][0-9]*)$

- []margin (string · int64; required)

[]margin example: 0

[]margin.Type: string · int64

[]margin.format: int64

[]margin.pattern: ^(0|-?[1-9][0-9]*)$

- []pnl (string · int64 · nullable; required)

[]pnl example: 0

[]pnl.Type: string · int64 · nullable

[]pnl.format: int64

[]pnl.pattern: ^(0|-?[1-9][0-9]*)$

- []funding (string · int64 · nullable; required)

[]funding example: 0

[]funding.Type: string · int64 · nullable

[]funding.format: int64

[]funding.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFee (string · int64 · nullable; required)

[]rolloverFee example: 0

[]rolloverFee.Type: string · int64 · nullable

[]rolloverFee.format: int64

[]rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []indexOraclePrice (string · int64 · nullable; required)

[]indexOraclePrice example: 0

[]indexOraclePrice.Type: string · int64 · nullable

[]indexOraclePrice.format: int64

[]indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []fee (string · int64 · nullable; required)

[]fee example: 0

[]fee.Type: string · int64 · nullable

[]fee.format: int64

[]fee.pattern: ^(0|-?[1-9][0-9]*)$

- []feeRate (string · int64 · nullable; required)

[]feeRate example: 0

[]feeRate.Type: string · int64 · nullable

[]feeRate.format: int64

[]feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedQuote (string · int64 · nullable; required)

[]exchangedQuote example: 0

[]exchangedQuote.Type: string · int64 · nullable

[]exchangedQuote.format: int64

[]exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedBase (string · int64 · nullable; required)

[]exchangedBase example: 0

[]exchangedBase.Type: string · int64 · nullable

[]exchangedBase.format: int64

[]exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []eventName (string · nullable; required)

[]eventName example: string

[]eventName.Type: string · nullable

- []pnlInEvent (string · int64 · nullable; required)

[]pnlInEvent example: 0

[]pnlInEvent.Type: string · int64 · nullable

[]pnlInEvent.format: int64

[]pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []feeInEvent (string · int64 · nullable; required)

[]feeInEvent example: 0

[]feeInEvent.Type: string · int64 · nullable

[]feeInEvent.format: int64

[]feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []fundingInEvent (string · int64 · nullable; required)

[]fundingInEvent example: 0

[]fundingInEvent.Type: string · int64 · nullable

[]fundingInEvent.format: int64

[]fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFeeInEvent (string · int64 · nullable; required)

[]rolloverFeeInEvent example: 0

[]rolloverFeeInEvent.Type: string · int64 · nullable

[]rolloverFeeInEvent.format: int64

[]rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeRate (string · int64 · nullable; required)

[]executionFeeRate example: 0

[]executionFeeRate.Type: string · int64 · nullable

[]executionFeeRate.format: int64

[]executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeInEvent (string · int64 · nullable; required)

[]executionFeeInEvent example: 0

[]executionFeeInEvent.Type: string · int64 · nullable

[]executionFeeInEvent.format: int64

[]executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFee (string · int64 · nullable; required)

[]executionFee example: 0

[]executionFee.Type: string · int64 · nullable

[]executionFee.format: int64

[]executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- []timestamp (string · date-time; required)

[]timestamp example: 2026-01-01T00:00:00Z

[]timestamp.Type: string · date-time

[]timestamp.format: date-time

- []isOnchain (boolean; required)

[]isOnchain example: true

[]isOnchain.Type: boolean

- []roe (string · int64 · nullable; required)

[]roe example: 0

[]roe.Type: string · int64 · nullable

[]roe.format: int64

[]roe.pattern: ^(0|-?[1-9][0-9]*)$

- []order (object · nullable; optional)

[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

[]order.Type: object · nullable

[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []order.id (string; required)

[]order.id example: string

[]order.id.Type: string

- []order.txId (string; required)

[]order.txId example: string

[]order.txId.Type: string

- []order.trader (string; required)

[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.trader.Type: string

- []order.masterTrader (string; required)

[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.masterTrader.Type: string

- []order.market (string; required)

[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.market.Type: string

- []order.status (string · enum; required)

[]order.status example: seq_pending

[]order.status.Type: string · enum

[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []order.type (string · enum; required)

[]order.type example: market

[]order.type.Type: string · enum

[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []order.direction (string · enum; required)

[]order.direction example: long

[]order.direction.Type: string · enum

[]order.direction.Allowed values: ["long","short"]

- []order.stopPrice (string · int64 · nullable; required)

[]order.stopPrice example: 0

[]order.stopPrice.Type: string · int64 · nullable

[]order.stopPrice.format: int64

[]order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.limitPrice (string · int64 · nullable; required)

[]order.limitPrice example: 0

[]order.limitPrice.Type: string · int64 · nullable

[]order.limitPrice.format: int64

[]order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.stopTriggerPrice (string · int64 · nullable; required)

[]order.stopTriggerPrice example: 0

[]order.stopTriggerPrice.Type: string · int64 · nullable

[]order.stopTriggerPrice.format: int64

[]order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.takeTriggerPrice (string · int64 · nullable; required)

[]order.takeTriggerPrice example: 0

[]order.takeTriggerPrice.Type: string · int64 · nullable

[]order.takeTriggerPrice.format: int64

[]order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.leverage (string · int64 · nullable; required)

[]order.leverage example: 0

[]order.leverage.Type: string · int64 · nullable

[]order.leverage.format: int64

[]order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- []order.index (number · nullable; required)

[]order.index example: 0

[]order.index.Type: number · nullable

- []order.positionId (string · nullable; required)

[]order.positionId example: string

[]order.positionId.Type: string · nullable

- []order.expiration (string · date-time · nullable; required)

[]order.expiration example: 2026-01-01T00:00:00Z

[]order.expiration.Type: string · date-time · nullable

[]order.expiration.format: date-time

- []order.amount (string · int64 · nullable; required)

[]order.amount example: 0

[]order.amount.Type: string · int64 · nullable

[]order.amount.format: int64

[]order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- []order.indexPrice (string · int64 · nullable; required)

[]order.indexPrice example: 0

[]order.indexPrice.Type: string · int64 · nullable

[]order.indexPrice.format: int64

[]order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.settlementOraclePrice (string · int64 · nullable; required)

[]order.settlementOraclePrice example: 0

[]order.settlementOraclePrice.Type: string · int64 · nullable

[]order.settlementOraclePrice.format: int64

[]order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.createdAt (string · date-time; required)

[]order.createdAt example: 2026-01-01T00:00:00Z

[]order.createdAt.Type: string · date-time

[]order.createdAt.format: date-time

- []order.error (string · nullable; required)

[]order.error example: string

[]order.error.Type: string · nullable

Example



```json
[
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]
```

---

# Get position history for an asset

Source: https://docs.storm.tg/developers/operations/getassetpositionhistory

# Get position history for an asset

`GET /api/positions/{trader}/{asset}/history`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: asset (string; required). Position base asset

Type: string

Example: "BTC"

minLength: 1

- query: offset (number; optional). 

Type: number

Example: 10

Default: 0

minimum: 0

- query: limit (number; optional). 

Type: number

Example: 20

Default: 20

minimum: 1

maximum: 100

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{trader}/{asset}/history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{trader}/{asset}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{trader}/{asset}/history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — Response

Type: object

Required fields: data, totalCount

Required field types: data (object[]; required), totalCount (integer; required)

- data (object[]; required)

data example: [
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]

data.Type: object[]

data.[]Schema: Data.PositionResponse

data.[]Type: object

data.[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

data.[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- data.[]idx (string · nullable; required)

data.[]idx example: string

data.[]idx.Type: string · nullable

- data.[]txId (string · nullable; required)

data.[]txId example: string

data.[]txId.Type: string · nullable

- data.[]version (number; required)

data.[]version example: 0

data.[]version.Type: number

- data.[]openedAt (string · date-time; required)

data.[]openedAt example: 2026-01-01T00:00:00Z

data.[]openedAt.Type: string · date-time

data.[]openedAt.format: date-time

- data.[]lastUpdatedAt (string · date-time; required)

data.[]lastUpdatedAt example: 2026-01-01T00:00:00Z

data.[]lastUpdatedAt.Type: string · date-time

data.[]lastUpdatedAt.format: date-time

- data.[]closedAt (string · date-time · nullable; required)

data.[]closedAt example: 2026-01-01T00:00:00Z

data.[]closedAt.Type: string · date-time · nullable

data.[]closedAt.format: date-time

- data.[]type (string · enum; required)

data.[]type example: long

data.[]type.Type: string · enum

data.[]type.Allowed values: ["long","short"]

- data.[]status (string · enum; required)

data.[]status example: pending_open

data.[]status.Type: string · enum

data.[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- data.[]market (string; required)

data.[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]market.Type: string

- data.[]trader (string; required)

data.[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]trader.Type: string

- data.[]size (string · int64; required)

data.[]size example: 0

data.[]size.Type: string · int64

data.[]size.format: int64

data.[]size.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]notional (string · int64; required)

data.[]notional example: 0

data.[]notional.Type: string · int64

data.[]notional.format: int64

data.[]notional.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fraction (string · int64; required)

data.[]fraction example: 0

data.[]fraction.Type: string · int64

data.[]fraction.format: int64

data.[]fraction.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]margin (string · int64; required)

data.[]margin example: 0

data.[]margin.Type: string · int64

data.[]margin.format: int64

data.[]margin.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]pnl (string · int64 · nullable; required)

data.[]pnl example: 0

data.[]pnl.Type: string · int64 · nullable

data.[]pnl.format: int64

data.[]pnl.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]funding (string · int64 · nullable; required)

data.[]funding example: 0

data.[]funding.Type: string · int64 · nullable

data.[]funding.format: int64

data.[]funding.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]rolloverFee (string · int64 · nullable; required)

data.[]rolloverFee example: 0

data.[]rolloverFee.Type: string · int64 · nullable

data.[]rolloverFee.format: int64

data.[]rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]settlementOraclePrice (string · int64 · nullable; required)

data.[]settlementOraclePrice example: 0

data.[]settlementOraclePrice.Type: string · int64 · nullable

data.[]settlementOraclePrice.format: int64

data.[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]indexOraclePrice (string · int64 · nullable; required)

data.[]indexOraclePrice example: 0

data.[]indexOraclePrice.Type: string · int64 · nullable

data.[]indexOraclePrice.format: int64

data.[]indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fee (string · int64 · nullable; required)

data.[]fee example: 0

data.[]fee.Type: string · int64 · nullable

data.[]fee.format: int64

data.[]fee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]feeRate (string · int64 · nullable; required)

data.[]feeRate example: 0

data.[]feeRate.Type: string · int64 · nullable

data.[]feeRate.format: int64

data.[]feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]exchangedQuote (string · int64 · nullable; required)

data.[]exchangedQuote example: 0

data.[]exchangedQuote.Type: string · int64 · nullable

data.[]exchangedQuote.format: int64

data.[]exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]exchangedBase (string · int64 · nullable; required)

data.[]exchangedBase example: 0

data.[]exchangedBase.Type: string · int64 · nullable

data.[]exchangedBase.format: int64

data.[]exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]direction (string · enum; required)

data.[]direction example: long

data.[]direction.Type: string · enum

data.[]direction.Allowed values: ["long","short"]

- data.[]eventName (string · nullable; required)

data.[]eventName example: string

data.[]eventName.Type: string · nullable

- data.[]pnlInEvent (string · int64 · nullable; required)

data.[]pnlInEvent example: 0

data.[]pnlInEvent.Type: string · int64 · nullable

data.[]pnlInEvent.format: int64

data.[]pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]feeInEvent (string · int64 · nullable; required)

data.[]feeInEvent example: 0

data.[]feeInEvent.Type: string · int64 · nullable

data.[]feeInEvent.format: int64

data.[]feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fundingInEvent (string · int64 · nullable; required)

data.[]fundingInEvent example: 0

data.[]fundingInEvent.Type: string · int64 · nullable

data.[]fundingInEvent.format: int64

data.[]fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]rolloverFeeInEvent (string · int64 · nullable; required)

data.[]rolloverFeeInEvent example: 0

data.[]rolloverFeeInEvent.Type: string · int64 · nullable

data.[]rolloverFeeInEvent.format: int64

data.[]rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFeeRate (string · int64 · nullable; required)

data.[]executionFeeRate example: 0

data.[]executionFeeRate.Type: string · int64 · nullable

data.[]executionFeeRate.format: int64

data.[]executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFeeInEvent (string · int64 · nullable; required)

data.[]executionFeeInEvent example: 0

data.[]executionFeeInEvent.Type: string · int64 · nullable

data.[]executionFeeInEvent.format: int64

data.[]executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFee (string · int64 · nullable; required)

data.[]executionFee example: 0

data.[]executionFee.Type: string · int64 · nullable

data.[]executionFee.format: int64

data.[]executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]timestamp (string · date-time; required)

data.[]timestamp example: 2026-01-01T00:00:00Z

data.[]timestamp.Type: string · date-time

data.[]timestamp.format: date-time

- data.[]isOnchain (boolean; required)

data.[]isOnchain example: true

data.[]isOnchain.Type: boolean

- data.[]roe (string · int64 · nullable; required)

data.[]roe example: 0

data.[]roe.Type: string · int64 · nullable

data.[]roe.format: int64

data.[]roe.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order (object · nullable; optional)

data.[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

data.[]order.Type: object · nullable

data.[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

data.[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- data.[]order.id (string; required)

data.[]order.id example: string

data.[]order.id.Type: string

- data.[]order.txId (string; required)

data.[]order.txId example: string

data.[]order.txId.Type: string

- data.[]order.trader (string; required)

data.[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.trader.Type: string

- data.[]order.masterTrader (string; required)

data.[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.masterTrader.Type: string

- data.[]order.market (string; required)

data.[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.market.Type: string

- data.[]order.status (string · enum; required)

data.[]order.status example: seq_pending

data.[]order.status.Type: string · enum

data.[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- data.[]order.type (string · enum; required)

data.[]order.type example: market

data.[]order.type.Type: string · enum

data.[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- data.[]order.direction (string · enum; required)

data.[]order.direction example: long

data.[]order.direction.Type: string · enum

data.[]order.direction.Allowed values: ["long","short"]

- data.[]order.stopPrice (string · int64 · nullable; required)

data.[]order.stopPrice example: 0

data.[]order.stopPrice.Type: string · int64 · nullable

data.[]order.stopPrice.format: int64

data.[]order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.limitPrice (string · int64 · nullable; required)

data.[]order.limitPrice example: 0

data.[]order.limitPrice.Type: string · int64 · nullable

data.[]order.limitPrice.format: int64

data.[]order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.stopTriggerPrice (string · int64 · nullable; required)

data.[]order.stopTriggerPrice example: 0

data.[]order.stopTriggerPrice.Type: string · int64 · nullable

data.[]order.stopTriggerPrice.format: int64

data.[]order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.takeTriggerPrice (string · int64 · nullable; required)

data.[]order.takeTriggerPrice example: 0

data.[]order.takeTriggerPrice.Type: string · int64 · nullable

data.[]order.takeTriggerPrice.format: int64

data.[]order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.leverage (string · int64 · nullable; required)

data.[]order.leverage example: 0

data.[]order.leverage.Type: string · int64 · nullable

data.[]order.leverage.format: int64

data.[]order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.index (number · nullable; required)

data.[]order.index example: 0

data.[]order.index.Type: number · nullable

- data.[]order.positionId (string · nullable; required)

data.[]order.positionId example: string

data.[]order.positionId.Type: string · nullable

- data.[]order.expiration (string · date-time · nullable; required)

data.[]order.expiration example: 2026-01-01T00:00:00Z

data.[]order.expiration.Type: string · date-time · nullable

data.[]order.expiration.format: date-time

- data.[]order.amount (string · int64 · nullable; required)

data.[]order.amount example: 0

data.[]order.amount.Type: string · int64 · nullable

data.[]order.amount.format: int64

data.[]order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.indexPrice (string · int64 · nullable; required)

data.[]order.indexPrice example: 0

data.[]order.indexPrice.Type: string · int64 · nullable

data.[]order.indexPrice.format: int64

data.[]order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.settlementOraclePrice (string · int64 · nullable; required)

data.[]order.settlementOraclePrice example: 0

data.[]order.settlementOraclePrice.Type: string · int64 · nullable

data.[]order.settlementOraclePrice.format: int64

data.[]order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.createdAt (string · date-time; required)

data.[]order.createdAt example: 2026-01-01T00:00:00Z

data.[]order.createdAt.Type: string · date-time

data.[]order.createdAt.format: date-time

- data.[]order.error (string · nullable; required)

data.[]order.error example: string

data.[]order.error.Type: string · nullable

- totalCount (integer; required)

totalCount example: 0

totalCount.Type: integer

totalCount.minimum: 0

Example



```json
{
  "data": [],
  "totalCount": 0
}
```

---

# Get portfolio position history

Source: https://docs.storm.tg/developers/operations/getportfoliohistory

# Get portfolio position history

`GET /api/positions/{trader}/portfolio/history`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- query: offset (number; optional). 

Type: number

Example: 10

Default: 0

minimum: 0

- query: limit (number; optional). 

Type: number

Example: 20

Default: 20

minimum: 1

maximum: 100

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{trader}/portfolio/history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{trader}/portfolio/history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{trader}/portfolio/history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — Response

Type: object

Required fields: data, totalCount

Required field types: data (object[]; required), totalCount (integer; required)

- data (object[]; required)

data example: [
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]

data.Type: object[]

data.[]Schema: Data.PositionResponse

data.[]Type: object

data.[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

data.[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- data.[]idx (string · nullable; required)

data.[]idx example: string

data.[]idx.Type: string · nullable

- data.[]txId (string · nullable; required)

data.[]txId example: string

data.[]txId.Type: string · nullable

- data.[]version (number; required)

data.[]version example: 0

data.[]version.Type: number

- data.[]openedAt (string · date-time; required)

data.[]openedAt example: 2026-01-01T00:00:00Z

data.[]openedAt.Type: string · date-time

data.[]openedAt.format: date-time

- data.[]lastUpdatedAt (string · date-time; required)

data.[]lastUpdatedAt example: 2026-01-01T00:00:00Z

data.[]lastUpdatedAt.Type: string · date-time

data.[]lastUpdatedAt.format: date-time

- data.[]closedAt (string · date-time · nullable; required)

data.[]closedAt example: 2026-01-01T00:00:00Z

data.[]closedAt.Type: string · date-time · nullable

data.[]closedAt.format: date-time

- data.[]type (string · enum; required)

data.[]type example: long

data.[]type.Type: string · enum

data.[]type.Allowed values: ["long","short"]

- data.[]status (string · enum; required)

data.[]status example: pending_open

data.[]status.Type: string · enum

data.[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- data.[]market (string; required)

data.[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]market.Type: string

- data.[]trader (string; required)

data.[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]trader.Type: string

- data.[]size (string · int64; required)

data.[]size example: 0

data.[]size.Type: string · int64

data.[]size.format: int64

data.[]size.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]notional (string · int64; required)

data.[]notional example: 0

data.[]notional.Type: string · int64

data.[]notional.format: int64

data.[]notional.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fraction (string · int64; required)

data.[]fraction example: 0

data.[]fraction.Type: string · int64

data.[]fraction.format: int64

data.[]fraction.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]margin (string · int64; required)

data.[]margin example: 0

data.[]margin.Type: string · int64

data.[]margin.format: int64

data.[]margin.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]pnl (string · int64 · nullable; required)

data.[]pnl example: 0

data.[]pnl.Type: string · int64 · nullable

data.[]pnl.format: int64

data.[]pnl.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]funding (string · int64 · nullable; required)

data.[]funding example: 0

data.[]funding.Type: string · int64 · nullable

data.[]funding.format: int64

data.[]funding.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]rolloverFee (string · int64 · nullable; required)

data.[]rolloverFee example: 0

data.[]rolloverFee.Type: string · int64 · nullable

data.[]rolloverFee.format: int64

data.[]rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]settlementOraclePrice (string · int64 · nullable; required)

data.[]settlementOraclePrice example: 0

data.[]settlementOraclePrice.Type: string · int64 · nullable

data.[]settlementOraclePrice.format: int64

data.[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]indexOraclePrice (string · int64 · nullable; required)

data.[]indexOraclePrice example: 0

data.[]indexOraclePrice.Type: string · int64 · nullable

data.[]indexOraclePrice.format: int64

data.[]indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fee (string · int64 · nullable; required)

data.[]fee example: 0

data.[]fee.Type: string · int64 · nullable

data.[]fee.format: int64

data.[]fee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]feeRate (string · int64 · nullable; required)

data.[]feeRate example: 0

data.[]feeRate.Type: string · int64 · nullable

data.[]feeRate.format: int64

data.[]feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]exchangedQuote (string · int64 · nullable; required)

data.[]exchangedQuote example: 0

data.[]exchangedQuote.Type: string · int64 · nullable

data.[]exchangedQuote.format: int64

data.[]exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]exchangedBase (string · int64 · nullable; required)

data.[]exchangedBase example: 0

data.[]exchangedBase.Type: string · int64 · nullable

data.[]exchangedBase.format: int64

data.[]exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]direction (string · enum; required)

data.[]direction example: long

data.[]direction.Type: string · enum

data.[]direction.Allowed values: ["long","short"]

- data.[]eventName (string · nullable; required)

data.[]eventName example: string

data.[]eventName.Type: string · nullable

- data.[]pnlInEvent (string · int64 · nullable; required)

data.[]pnlInEvent example: 0

data.[]pnlInEvent.Type: string · int64 · nullable

data.[]pnlInEvent.format: int64

data.[]pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]feeInEvent (string · int64 · nullable; required)

data.[]feeInEvent example: 0

data.[]feeInEvent.Type: string · int64 · nullable

data.[]feeInEvent.format: int64

data.[]feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]fundingInEvent (string · int64 · nullable; required)

data.[]fundingInEvent example: 0

data.[]fundingInEvent.Type: string · int64 · nullable

data.[]fundingInEvent.format: int64

data.[]fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]rolloverFeeInEvent (string · int64 · nullable; required)

data.[]rolloverFeeInEvent example: 0

data.[]rolloverFeeInEvent.Type: string · int64 · nullable

data.[]rolloverFeeInEvent.format: int64

data.[]rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFeeRate (string · int64 · nullable; required)

data.[]executionFeeRate example: 0

data.[]executionFeeRate.Type: string · int64 · nullable

data.[]executionFeeRate.format: int64

data.[]executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFeeInEvent (string · int64 · nullable; required)

data.[]executionFeeInEvent example: 0

data.[]executionFeeInEvent.Type: string · int64 · nullable

data.[]executionFeeInEvent.format: int64

data.[]executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]executionFee (string · int64 · nullable; required)

data.[]executionFee example: 0

data.[]executionFee.Type: string · int64 · nullable

data.[]executionFee.format: int64

data.[]executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]timestamp (string · date-time; required)

data.[]timestamp example: 2026-01-01T00:00:00Z

data.[]timestamp.Type: string · date-time

data.[]timestamp.format: date-time

- data.[]isOnchain (boolean; required)

data.[]isOnchain example: true

data.[]isOnchain.Type: boolean

- data.[]roe (string · int64 · nullable; required)

data.[]roe example: 0

data.[]roe.Type: string · int64 · nullable

data.[]roe.format: int64

data.[]roe.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order (object · nullable; optional)

data.[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

data.[]order.Type: object · nullable

data.[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

data.[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- data.[]order.id (string; required)

data.[]order.id example: string

data.[]order.id.Type: string

- data.[]order.txId (string; required)

data.[]order.txId example: string

data.[]order.txId.Type: string

- data.[]order.trader (string; required)

data.[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.trader.Type: string

- data.[]order.masterTrader (string; required)

data.[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.masterTrader.Type: string

- data.[]order.market (string; required)

data.[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]order.market.Type: string

- data.[]order.status (string · enum; required)

data.[]order.status example: seq_pending

data.[]order.status.Type: string · enum

data.[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- data.[]order.type (string · enum; required)

data.[]order.type example: market

data.[]order.type.Type: string · enum

data.[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- data.[]order.direction (string · enum; required)

data.[]order.direction example: long

data.[]order.direction.Type: string · enum

data.[]order.direction.Allowed values: ["long","short"]

- data.[]order.stopPrice (string · int64 · nullable; required)

data.[]order.stopPrice example: 0

data.[]order.stopPrice.Type: string · int64 · nullable

data.[]order.stopPrice.format: int64

data.[]order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.limitPrice (string · int64 · nullable; required)

data.[]order.limitPrice example: 0

data.[]order.limitPrice.Type: string · int64 · nullable

data.[]order.limitPrice.format: int64

data.[]order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.stopTriggerPrice (string · int64 · nullable; required)

data.[]order.stopTriggerPrice example: 0

data.[]order.stopTriggerPrice.Type: string · int64 · nullable

data.[]order.stopTriggerPrice.format: int64

data.[]order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.takeTriggerPrice (string · int64 · nullable; required)

data.[]order.takeTriggerPrice example: 0

data.[]order.takeTriggerPrice.Type: string · int64 · nullable

data.[]order.takeTriggerPrice.format: int64

data.[]order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.leverage (string · int64 · nullable; required)

data.[]order.leverage example: 0

data.[]order.leverage.Type: string · int64 · nullable

data.[]order.leverage.format: int64

data.[]order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.index (number · nullable; required)

data.[]order.index example: 0

data.[]order.index.Type: number · nullable

- data.[]order.positionId (string · nullable; required)

data.[]order.positionId example: string

data.[]order.positionId.Type: string · nullable

- data.[]order.expiration (string · date-time · nullable; required)

data.[]order.expiration example: 2026-01-01T00:00:00Z

data.[]order.expiration.Type: string · date-time · nullable

data.[]order.expiration.format: date-time

- data.[]order.amount (string · int64 · nullable; required)

data.[]order.amount example: 0

data.[]order.amount.Type: string · int64 · nullable

data.[]order.amount.format: int64

data.[]order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.indexPrice (string · int64 · nullable; required)

data.[]order.indexPrice example: 0

data.[]order.indexPrice.Type: string · int64 · nullable

data.[]order.indexPrice.format: int64

data.[]order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.settlementOraclePrice (string · int64 · nullable; required)

data.[]order.settlementOraclePrice example: 0

data.[]order.settlementOraclePrice.Type: string · int64 · nullable

data.[]order.settlementOraclePrice.format: int64

data.[]order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]order.createdAt (string · date-time; required)

data.[]order.createdAt example: 2026-01-01T00:00:00Z

data.[]order.createdAt.Type: string · date-time

data.[]order.createdAt.format: date-time

- data.[]order.error (string · nullable; required)

data.[]order.error example: string

data.[]order.error.Type: string · nullable

- totalCount (integer; required)

totalCount example: 0

totalCount.Type: integer

totalCount.minimum: 0

Example



```json
{
  "data": [],
  "totalCount": 0
}
```

---

# Get a position

Source: https://docs.storm.tg/developers/operations/getposition

# Get a position

`GET /api/positions/{id}`

## Authorization



## Parameters

- path: id (string; required). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{id}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{id}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{id}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

Schema: Data.PositionResponse

Type: object

Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- idx (string · nullable; required)

idx example: string

idx.Type: string · nullable

- txId (string · nullable; required)

txId example: string

txId.Type: string · nullable

- version (number; required)

version example: 0

version.Type: number

- openedAt (string · date-time; required)

openedAt example: 2026-01-01T00:00:00Z

openedAt.Type: string · date-time

openedAt.format: date-time

- lastUpdatedAt (string · date-time; required)

lastUpdatedAt example: 2026-01-01T00:00:00Z

lastUpdatedAt.Type: string · date-time

lastUpdatedAt.format: date-time

- closedAt (string · date-time · nullable; required)

closedAt example: 2026-01-01T00:00:00Z

closedAt.Type: string · date-time · nullable

closedAt.format: date-time

- type (string · enum; required)

type example: long

type.Type: string · enum

type.Allowed values: ["long","short"]

- status (string · enum; required)

status example: pending_open

status.Type: string · enum

status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- market (string; required)

market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

market.Type: string

- trader (string; required)

trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

trader.Type: string

- size (string · int64; required)

size example: 0

size.Type: string · int64

size.format: int64

size.pattern: ^(0|-?[1-9][0-9]*)$

- notional (string · int64; required)

notional example: 0

notional.Type: string · int64

notional.format: int64

notional.pattern: ^(0|-?[1-9][0-9]*)$

- fraction (string · int64; required)

fraction example: 0

fraction.Type: string · int64

fraction.format: int64

fraction.pattern: ^(0|-?[1-9][0-9]*)$

- margin (string · int64; required)

margin example: 0

margin.Type: string · int64

margin.format: int64

margin.pattern: ^(0|-?[1-9][0-9]*)$

- pnl (string · int64 · nullable; required)

pnl example: 0

pnl.Type: string · int64 · nullable

pnl.format: int64

pnl.pattern: ^(0|-?[1-9][0-9]*)$

- funding (string · int64 · nullable; required)

funding example: 0

funding.Type: string · int64 · nullable

funding.format: int64

funding.pattern: ^(0|-?[1-9][0-9]*)$

- rolloverFee (string · int64 · nullable; required)

rolloverFee example: 0

rolloverFee.Type: string · int64 · nullable

rolloverFee.format: int64

rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- settlementOraclePrice (string · int64 · nullable; required)

settlementOraclePrice example: 0

settlementOraclePrice.Type: string · int64 · nullable

settlementOraclePrice.format: int64

settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- indexOraclePrice (string · int64 · nullable; required)

indexOraclePrice example: 0

indexOraclePrice.Type: string · int64 · nullable

indexOraclePrice.format: int64

indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- fee (string · int64 · nullable; required)

fee example: 0

fee.Type: string · int64 · nullable

fee.format: int64

fee.pattern: ^(0|-?[1-9][0-9]*)$

- feeRate (string · int64 · nullable; required)

feeRate example: 0

feeRate.Type: string · int64 · nullable

feeRate.format: int64

feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- exchangedQuote (string · int64 · nullable; required)

exchangedQuote example: 0

exchangedQuote.Type: string · int64 · nullable

exchangedQuote.format: int64

exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- exchangedBase (string · int64 · nullable; required)

exchangedBase example: 0

exchangedBase.Type: string · int64 · nullable

exchangedBase.format: int64

exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- direction (string · enum; required)

direction example: long

direction.Type: string · enum

direction.Allowed values: ["long","short"]

- eventName (string · nullable; required)

eventName example: string

eventName.Type: string · nullable

- pnlInEvent (string · int64 · nullable; required)

pnlInEvent example: 0

pnlInEvent.Type: string · int64 · nullable

pnlInEvent.format: int64

pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- feeInEvent (string · int64 · nullable; required)

feeInEvent example: 0

feeInEvent.Type: string · int64 · nullable

feeInEvent.format: int64

feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- fundingInEvent (string · int64 · nullable; required)

fundingInEvent example: 0

fundingInEvent.Type: string · int64 · nullable

fundingInEvent.format: int64

fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- rolloverFeeInEvent (string · int64 · nullable; required)

rolloverFeeInEvent example: 0

rolloverFeeInEvent.Type: string · int64 · nullable

rolloverFeeInEvent.format: int64

rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- executionFeeRate (string · int64 · nullable; required)

executionFeeRate example: 0

executionFeeRate.Type: string · int64 · nullable

executionFeeRate.format: int64

executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- executionFeeInEvent (string · int64 · nullable; required)

executionFeeInEvent example: 0

executionFeeInEvent.Type: string · int64 · nullable

executionFeeInEvent.format: int64

executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- executionFee (string · int64 · nullable; required)

executionFee example: 0

executionFee.Type: string · int64 · nullable

executionFee.format: int64

executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- timestamp (string · date-time; required)

timestamp example: 2026-01-01T00:00:00Z

timestamp.Type: string · date-time

timestamp.format: date-time

- isOnchain (boolean; required)

isOnchain example: true

isOnchain.Type: boolean

- roe (string · int64 · nullable; required)

roe example: 0

roe.Type: string · int64 · nullable

roe.format: int64

roe.pattern: ^(0|-?[1-9][0-9]*)$

- order (object · nullable; optional)

order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

order.Type: object · nullable

order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- order.id (string; required)

order.id example: string

order.id.Type: string

- order.txId (string; required)

order.txId example: string

order.txId.Type: string

- order.trader (string; required)

order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

order.trader.Type: string

- order.masterTrader (string; required)

order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

order.masterTrader.Type: string

- order.market (string; required)

order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

order.market.Type: string

- order.status (string · enum; required)

order.status example: seq_pending

order.status.Type: string · enum

order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- order.type (string · enum; required)

order.type example: market

order.type.Type: string · enum

order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- order.direction (string · enum; required)

order.direction example: long

order.direction.Type: string · enum

order.direction.Allowed values: ["long","short"]

- order.stopPrice (string · int64 · nullable; required)

order.stopPrice example: 0

order.stopPrice.Type: string · int64 · nullable

order.stopPrice.format: int64

order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.limitPrice (string · int64 · nullable; required)

order.limitPrice example: 0

order.limitPrice.Type: string · int64 · nullable

order.limitPrice.format: int64

order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.stopTriggerPrice (string · int64 · nullable; required)

order.stopTriggerPrice example: 0

order.stopTriggerPrice.Type: string · int64 · nullable

order.stopTriggerPrice.format: int64

order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.takeTriggerPrice (string · int64 · nullable; required)

order.takeTriggerPrice example: 0

order.takeTriggerPrice.Type: string · int64 · nullable

order.takeTriggerPrice.format: int64

order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.leverage (string · int64 · nullable; required)

order.leverage example: 0

order.leverage.Type: string · int64 · nullable

order.leverage.format: int64

order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- order.index (number · nullable; required)

order.index example: 0

order.index.Type: number · nullable

- order.positionId (string · nullable; required)

order.positionId example: string

order.positionId.Type: string · nullable

- order.expiration (string · date-time · nullable; required)

order.expiration example: 2026-01-01T00:00:00Z

order.expiration.Type: string · date-time · nullable

order.expiration.format: date-time

- order.amount (string · int64 · nullable; required)

order.amount example: 0

order.amount.Type: string · int64 · nullable

order.amount.format: int64

order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- order.indexPrice (string · int64 · nullable; required)

order.indexPrice example: 0

order.indexPrice.Type: string · int64 · nullable

order.indexPrice.format: int64

order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.settlementOraclePrice (string · int64 · nullable; required)

order.settlementOraclePrice example: 0

order.settlementOraclePrice.Type: string · int64 · nullable

order.settlementOraclePrice.format: int64

order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- order.createdAt (string · date-time; required)

order.createdAt example: 2026-01-01T00:00:00Z

order.createdAt.Type: string · date-time

order.createdAt.format: date-time

- order.error (string · nullable; required)

order.error example: string

order.error.Type: string · nullable

Example



```json
{
  "idx": "string",
  "txId": "string",
  "version": 0,
  "openedAt": "2026-01-01T00:00:00Z",
  "lastUpdatedAt": "2026-01-01T00:00:00Z",
  "closedAt": "2026-01-01T00:00:00Z",
  "type": "long",
  "status": "pending_open",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "size": "0",
  "notional": "0",
  "fraction": "0",
  "margin": "0",
  "pnl": "0",
  "funding": "0",
  "rolloverFee": "0",
  "settlementOraclePrice": "0",
  "indexOraclePrice": "0",
  "fee": "0",
  "feeRate": "0",
  "exchangedQuote": "0",
  "exchangedBase": "0",
  "direction": "long",
  "eventName": "string",
  "pnlInEvent": "0",
  "feeInEvent": "0",
  "fundingInEvent": "0",
  "rolloverFeeInEvent": "0",
  "executionFeeRate": "0",
  "executionFeeInEvent": "0",
  "executionFee": "0",
  "timestamp": "2026-01-01T00:00:00Z",
  "isOnchain": true,
  "roe": "0",
  "order": {
    "id": "string",
    "txId": "string",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "status": "seq_pending",
    "type": "market",
    "direction": "long",
    "stopPrice": "0",
    "limitPrice": "0",
    "stopTriggerPrice": "0",
    "takeTriggerPrice": "0",
    "leverage": "0",
    "index": 0,
    "positionId": "string",
    "expiration": "2026-01-01T00:00:00Z",
    "amount": "0",
    "indexPrice": "0",
    "settlementOraclePrice": "0",
    "createdAt": "2026-01-01T00:00:00Z",
    "error": "string"
  }
}
```

---

# Get position events

Source: https://docs.storm.tg/developers/operations/getpositionevents

# Get position events

`GET /api/positions/{id}/history`

## Authorization



## Parameters

- path: id (string; required). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/positions/{id}/history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/positions/{id}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/positions/{id}/history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.PositionResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.PositionResponse

[]Type: object

[]Required fields: idx, txId, version, openedAt, lastUpdatedAt, closedAt, type, status, market, trader, size, notional, fraction, margin, pnl, funding, rolloverFee, settlementOraclePrice, indexOraclePrice, fee, feeRate, exchangedQuote, exchangedBase, direction, eventName, pnlInEvent, feeInEvent, fundingInEvent, rolloverFeeInEvent, executionFeeRate, executionFeeInEvent, executionFee, timestamp, isOnchain, roe

[]Required field types: idx (string · nullable; required), txId (string · nullable; required), version (number; required), openedAt (string · date-time; required), lastUpdatedAt (string · date-time; required), closedAt (string · date-time · nullable; required), type (string · enum; required), status (string · enum; required), market (string; required), trader (string; required), size (string · int64; required), notional (string · int64; required), fraction (string · int64; required), margin (string · int64; required), pnl (string · int64 · nullable; required), funding (string · int64 · nullable; required), rolloverFee (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), indexOraclePrice (string · int64 · nullable; required), fee (string · int64 · nullable; required), feeRate (string · int64 · nullable; required), exchangedQuote (string · int64 · nullable; required), exchangedBase (string · int64 · nullable; required), direction (string · enum; required), eventName (string · nullable; required), pnlInEvent (string · int64 · nullable; required), feeInEvent (string · int64 · nullable; required), fundingInEvent (string · int64 · nullable; required), rolloverFeeInEvent (string · int64 · nullable; required), executionFeeRate (string · int64 · nullable; required), executionFeeInEvent (string · int64 · nullable; required), executionFee (string · int64 · nullable; required), timestamp (string · date-time; required), isOnchain (boolean; required), roe (string · int64 · nullable; required)

- []idx (string · nullable; required)

[]idx example: string

[]idx.Type: string · nullable

- []txId (string · nullable; required)

[]txId example: string

[]txId.Type: string · nullable

- []version (number; required)

[]version example: 0

[]version.Type: number

- []openedAt (string · date-time; required)

[]openedAt example: 2026-01-01T00:00:00Z

[]openedAt.Type: string · date-time

[]openedAt.format: date-time

- []lastUpdatedAt (string · date-time; required)

[]lastUpdatedAt example: 2026-01-01T00:00:00Z

[]lastUpdatedAt.Type: string · date-time

[]lastUpdatedAt.format: date-time

- []closedAt (string · date-time · nullable; required)

[]closedAt example: 2026-01-01T00:00:00Z

[]closedAt.Type: string · date-time · nullable

[]closedAt.format: date-time

- []type (string · enum; required)

[]type example: long

[]type.Type: string · enum

[]type.Allowed values: ["long","short"]

- []status (string · enum; required)

[]status example: pending_open

[]status.Type: string · enum

[]status.Allowed values: ["pending_open","pending_close","pending_full_close","pending_liquidate","pending_max_pnl","opened","closed","liquidated"]

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []size (string · int64; required)

[]size example: 0

[]size.Type: string · int64

[]size.format: int64

[]size.pattern: ^(0|-?[1-9][0-9]*)$

- []notional (string · int64; required)

[]notional example: 0

[]notional.Type: string · int64

[]notional.format: int64

[]notional.pattern: ^(0|-?[1-9][0-9]*)$

- []fraction (string · int64; required)

[]fraction example: 0

[]fraction.Type: string · int64

[]fraction.format: int64

[]fraction.pattern: ^(0|-?[1-9][0-9]*)$

- []margin (string · int64; required)

[]margin example: 0

[]margin.Type: string · int64

[]margin.format: int64

[]margin.pattern: ^(0|-?[1-9][0-9]*)$

- []pnl (string · int64 · nullable; required)

[]pnl example: 0

[]pnl.Type: string · int64 · nullable

[]pnl.format: int64

[]pnl.pattern: ^(0|-?[1-9][0-9]*)$

- []funding (string · int64 · nullable; required)

[]funding example: 0

[]funding.Type: string · int64 · nullable

[]funding.format: int64

[]funding.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFee (string · int64 · nullable; required)

[]rolloverFee example: 0

[]rolloverFee.Type: string · int64 · nullable

[]rolloverFee.format: int64

[]rolloverFee.pattern: ^(0|-?[1-9][0-9]*)$

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []indexOraclePrice (string · int64 · nullable; required)

[]indexOraclePrice example: 0

[]indexOraclePrice.Type: string · int64 · nullable

[]indexOraclePrice.format: int64

[]indexOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []fee (string · int64 · nullable; required)

[]fee example: 0

[]fee.Type: string · int64 · nullable

[]fee.format: int64

[]fee.pattern: ^(0|-?[1-9][0-9]*)$

- []feeRate (string · int64 · nullable; required)

[]feeRate example: 0

[]feeRate.Type: string · int64 · nullable

[]feeRate.format: int64

[]feeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedQuote (string · int64 · nullable; required)

[]exchangedQuote example: 0

[]exchangedQuote.Type: string · int64 · nullable

[]exchangedQuote.format: int64

[]exchangedQuote.pattern: ^(0|-?[1-9][0-9]*)$

- []exchangedBase (string · int64 · nullable; required)

[]exchangedBase example: 0

[]exchangedBase.Type: string · int64 · nullable

[]exchangedBase.format: int64

[]exchangedBase.pattern: ^(0|-?[1-9][0-9]*)$

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []eventName (string · nullable; required)

[]eventName example: string

[]eventName.Type: string · nullable

- []pnlInEvent (string · int64 · nullable; required)

[]pnlInEvent example: 0

[]pnlInEvent.Type: string · int64 · nullable

[]pnlInEvent.format: int64

[]pnlInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []feeInEvent (string · int64 · nullable; required)

[]feeInEvent example: 0

[]feeInEvent.Type: string · int64 · nullable

[]feeInEvent.format: int64

[]feeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []fundingInEvent (string · int64 · nullable; required)

[]fundingInEvent example: 0

[]fundingInEvent.Type: string · int64 · nullable

[]fundingInEvent.format: int64

[]fundingInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []rolloverFeeInEvent (string · int64 · nullable; required)

[]rolloverFeeInEvent example: 0

[]rolloverFeeInEvent.Type: string · int64 · nullable

[]rolloverFeeInEvent.format: int64

[]rolloverFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeRate (string · int64 · nullable; required)

[]executionFeeRate example: 0

[]executionFeeRate.Type: string · int64 · nullable

[]executionFeeRate.format: int64

[]executionFeeRate.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFeeInEvent (string · int64 · nullable; required)

[]executionFeeInEvent example: 0

[]executionFeeInEvent.Type: string · int64 · nullable

[]executionFeeInEvent.format: int64

[]executionFeeInEvent.pattern: ^(0|-?[1-9][0-9]*)$

- []executionFee (string · int64 · nullable; required)

[]executionFee example: 0

[]executionFee.Type: string · int64 · nullable

[]executionFee.format: int64

[]executionFee.pattern: ^(0|-?[1-9][0-9]*)$

- []timestamp (string · date-time; required)

[]timestamp example: 2026-01-01T00:00:00Z

[]timestamp.Type: string · date-time

[]timestamp.format: date-time

- []isOnchain (boolean; required)

[]isOnchain example: true

[]isOnchain.Type: boolean

- []roe (string · int64 · nullable; required)

[]roe example: 0

[]roe.Type: string · int64 · nullable

[]roe.format: int64

[]roe.pattern: ^(0|-?[1-9][0-9]*)$

- []order (object · nullable; optional)

[]order example: {
  "id": "string",
  "txId": "string",
  "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "status": "seq_pending",
  "type": "market",
  "direction": "long",
  "stopPrice": "0",
  "limitPrice": "0",
  "stopTriggerPrice": "0",
  "takeTriggerPrice": "0",
  "leverage": "0",
  "index": 0,
  "positionId": "string",
  "expiration": "2026-01-01T00:00:00Z",
  "amount": "0",
  "indexPrice": "0",
  "settlementOraclePrice": "0",
  "createdAt": "2026-01-01T00:00:00Z",
  "error": "string"
}

[]order.Type: object · nullable

[]order.Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]order.Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []order.id (string; required)

[]order.id example: string

[]order.id.Type: string

- []order.txId (string; required)

[]order.txId example: string

[]order.txId.Type: string

- []order.trader (string; required)

[]order.trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.trader.Type: string

- []order.masterTrader (string; required)

[]order.masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.masterTrader.Type: string

- []order.market (string; required)

[]order.market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]order.market.Type: string

- []order.status (string · enum; required)

[]order.status example: seq_pending

[]order.status.Type: string · enum

[]order.status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []order.type (string · enum; required)

[]order.type example: market

[]order.type.Type: string · enum

[]order.type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []order.direction (string · enum; required)

[]order.direction example: long

[]order.direction.Type: string · enum

[]order.direction.Allowed values: ["long","short"]

- []order.stopPrice (string · int64 · nullable; required)

[]order.stopPrice example: 0

[]order.stopPrice.Type: string · int64 · nullable

[]order.stopPrice.format: int64

[]order.stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.limitPrice (string · int64 · nullable; required)

[]order.limitPrice example: 0

[]order.limitPrice.Type: string · int64 · nullable

[]order.limitPrice.format: int64

[]order.limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.stopTriggerPrice (string · int64 · nullable; required)

[]order.stopTriggerPrice example: 0

[]order.stopTriggerPrice.Type: string · int64 · nullable

[]order.stopTriggerPrice.format: int64

[]order.stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.takeTriggerPrice (string · int64 · nullable; required)

[]order.takeTriggerPrice example: 0

[]order.takeTriggerPrice.Type: string · int64 · nullable

[]order.takeTriggerPrice.format: int64

[]order.takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.leverage (string · int64 · nullable; required)

[]order.leverage example: 0

[]order.leverage.Type: string · int64 · nullable

[]order.leverage.format: int64

[]order.leverage.pattern: ^(0|-?[1-9][0-9]*)$

- []order.index (number · nullable; required)

[]order.index example: 0

[]order.index.Type: number · nullable

- []order.positionId (string · nullable; required)

[]order.positionId example: string

[]order.positionId.Type: string · nullable

- []order.expiration (string · date-time · nullable; required)

[]order.expiration example: 2026-01-01T00:00:00Z

[]order.expiration.Type: string · date-time · nullable

[]order.expiration.format: date-time

- []order.amount (string · int64 · nullable; required)

[]order.amount example: 0

[]order.amount.Type: string · int64 · nullable

[]order.amount.format: int64

[]order.amount.pattern: ^(0|-?[1-9][0-9]*)$

- []order.indexPrice (string · int64 · nullable; required)

[]order.indexPrice example: 0

[]order.indexPrice.Type: string · int64 · nullable

[]order.indexPrice.format: int64

[]order.indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.settlementOraclePrice (string · int64 · nullable; required)

[]order.settlementOraclePrice example: 0

[]order.settlementOraclePrice.Type: string · int64 · nullable

[]order.settlementOraclePrice.format: int64

[]order.settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []order.createdAt (string · date-time; required)

[]order.createdAt example: 2026-01-01T00:00:00Z

[]order.createdAt.Type: string · date-time

[]order.createdAt.format: date-time

- []order.error (string · nullable; required)

[]order.error example: string

[]order.error.Type: string · nullable

Example



```json
[
  {
    "idx": "string",
    "txId": "string",
    "version": 0,
    "openedAt": "2026-01-01T00:00:00Z",
    "lastUpdatedAt": "2026-01-01T00:00:00Z",
    "closedAt": "2026-01-01T00:00:00Z",
    "type": "long",
    "status": "pending_open",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "size": "0",
    "notional": "0",
    "fraction": "0",
    "margin": "0",
    "pnl": "0",
    "funding": "0",
    "rolloverFee": "0",
    "settlementOraclePrice": "0",
    "indexOraclePrice": "0",
    "fee": "0",
    "feeRate": "0",
    "exchangedQuote": "0",
    "exchangedBase": "0",
    "direction": "long",
    "eventName": "string",
    "pnlInEvent": "0",
    "feeInEvent": "0",
    "fundingInEvent": "0",
    "rolloverFeeInEvent": "0",
    "executionFeeRate": "0",
    "executionFeeInEvent": "0",
    "executionFee": "0",
    "timestamp": "2026-01-01T00:00:00Z",
    "isOnchain": true,
    "roe": "0",
    "order": {
      "id": "string",
      "txId": "string",
      "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "status": "seq_pending",
      "type": "market",
      "direction": "long",
      "stopPrice": "0",
      "limitPrice": "0",
      "stopTriggerPrice": "0",
      "takeTriggerPrice": "0",
      "leverage": "0",
      "index": 0,
      "positionId": "string",
      "expiration": "2026-01-01T00:00:00Z",
      "amount": "0",
      "indexPrice": "0",
      "settlementOraclePrice": "0",
      "createdAt": "2026-01-01T00:00:00Z",
      "error": "string"
    }
  }
]
```

---

# List active orders

Source: https://docs.storm.tg/developers/operations/listactiveorders

# List active orders

`GET /api/orders/{trader}/active`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- query: statuses (string · enum[]; optional). 

Type: string · enum[]

[]Type: string · enum

[]Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- query: direction (string · enum; optional). 

Type: string · enum

Allowed values: ["long","short"]

- query: limit (integer; optional). 

Type: integer

Default: 20

- query: offset (integer; optional). 

Type: integer

Default: 0

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/orders/{trader}/active' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/orders/{trader}/active", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/orders/{trader}/active",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.OrderResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.OrderResponse

[]Type: object

[]Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []id (string; required)

[]id example: string

[]id.Type: string

- []txId (string; required)

[]txId example: string

[]txId.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []masterTrader (string; required)

[]masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]masterTrader.Type: string

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []status (string · enum; required)

[]status example: seq_pending

[]status.Type: string · enum

[]status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []type (string · enum; required)

[]type example: market

[]type.Type: string · enum

[]type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []stopPrice (string · int64 · nullable; required)

[]stopPrice example: 0

[]stopPrice.Type: string · int64 · nullable

[]stopPrice.format: int64

[]stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []limitPrice (string · int64 · nullable; required)

[]limitPrice example: 0

[]limitPrice.Type: string · int64 · nullable

[]limitPrice.format: int64

[]limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []stopTriggerPrice (string · int64 · nullable; required)

[]stopTriggerPrice example: 0

[]stopTriggerPrice.Type: string · int64 · nullable

[]stopTriggerPrice.format: int64

[]stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []takeTriggerPrice (string · int64 · nullable; required)

[]takeTriggerPrice example: 0

[]takeTriggerPrice.Type: string · int64 · nullable

[]takeTriggerPrice.format: int64

[]takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []leverage (string · int64 · nullable; required)

[]leverage example: 0

[]leverage.Type: string · int64 · nullable

[]leverage.format: int64

[]leverage.pattern: ^(0|-?[1-9][0-9]*)$

- []index (number · nullable; required)

[]index example: 0

[]index.Type: number · nullable

- []positionId (string · nullable; required)

[]positionId example: string

[]positionId.Type: string · nullable

- []expiration (string · date-time · nullable; required)

[]expiration example: 2026-01-01T00:00:00Z

[]expiration.Type: string · date-time · nullable

[]expiration.format: date-time

- []amount (string · int64 · nullable; required)

[]amount example: 0

[]amount.Type: string · int64 · nullable

[]amount.format: int64

[]amount.pattern: ^(0|-?[1-9][0-9]*)$

- []indexPrice (string · int64 · nullable; required)

[]indexPrice example: 0

[]indexPrice.Type: string · int64 · nullable

[]indexPrice.format: int64

[]indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []createdAt (string · date-time; required)

[]createdAt example: 2026-01-01T00:00:00Z

[]createdAt.Type: string · date-time

[]createdAt.format: date-time

- []error (string · nullable; required)

[]error example: string

[]error.Type: string · nullable

Example



```json
[
  {
    "id": "string",
    "txId": "string",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "status": "seq_pending",
    "type": "market",
    "direction": "long",
    "stopPrice": "0",
    "limitPrice": "0",
    "stopTriggerPrice": "0",
    "takeTriggerPrice": "0",
    "leverage": "0",
    "index": 0,
    "positionId": "string",
    "expiration": "2026-01-01T00:00:00Z",
    "amount": "0",
    "indexPrice": "0",
    "settlementOraclePrice": "0",
    "createdAt": "2026-01-01T00:00:00Z",
    "error": "string"
  }
]
```

---

# List active orders for an asset

Source: https://docs.storm.tg/developers/operations/listactiveassetorders

# List active orders for an asset

`GET /api/orders/{trader}/{asset}/active`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: asset (string; required). Position base asset

Type: string

Example: "BTC"

minLength: 1

- query: statuses (string · enum[]; optional). 

Type: string · enum[]

[]Type: string · enum

[]Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- query: direction (string · enum; optional). 

Type: string · enum

Allowed values: ["long","short"]

- query: limit (integer; optional). 

Type: integer

Default: 20

- query: offset (integer; optional). 

Type: integer

Default: 0

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/orders/{trader}/{asset}/active' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/orders/{trader}/{asset}/active", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/orders/{trader}/{asset}/active",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.OrderResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.OrderResponse

[]Type: object

[]Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

[]Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- []id (string; required)

[]id example: string

[]id.Type: string

- []txId (string; required)

[]txId example: string

[]txId.Type: string

- []trader (string; required)

[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]trader.Type: string

- []masterTrader (string; required)

[]masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]masterTrader.Type: string

- []market (string; required)

[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]market.Type: string

- []status (string · enum; required)

[]status example: seq_pending

[]status.Type: string · enum

[]status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- []type (string · enum; required)

[]type example: market

[]type.Type: string · enum

[]type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- []direction (string · enum; required)

[]direction example: long

[]direction.Type: string · enum

[]direction.Allowed values: ["long","short"]

- []stopPrice (string · int64 · nullable; required)

[]stopPrice example: 0

[]stopPrice.Type: string · int64 · nullable

[]stopPrice.format: int64

[]stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []limitPrice (string · int64 · nullable; required)

[]limitPrice example: 0

[]limitPrice.Type: string · int64 · nullable

[]limitPrice.format: int64

[]limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []stopTriggerPrice (string · int64 · nullable; required)

[]stopTriggerPrice example: 0

[]stopTriggerPrice.Type: string · int64 · nullable

[]stopTriggerPrice.format: int64

[]stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []takeTriggerPrice (string · int64 · nullable; required)

[]takeTriggerPrice example: 0

[]takeTriggerPrice.Type: string · int64 · nullable

[]takeTriggerPrice.format: int64

[]takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []leverage (string · int64 · nullable; required)

[]leverage example: 0

[]leverage.Type: string · int64 · nullable

[]leverage.format: int64

[]leverage.pattern: ^(0|-?[1-9][0-9]*)$

- []index (number · nullable; required)

[]index example: 0

[]index.Type: number · nullable

- []positionId (string · nullable; required)

[]positionId example: string

[]positionId.Type: string · nullable

- []expiration (string · date-time · nullable; required)

[]expiration example: 2026-01-01T00:00:00Z

[]expiration.Type: string · date-time · nullable

[]expiration.format: date-time

- []amount (string · int64 · nullable; required)

[]amount example: 0

[]amount.Type: string · int64 · nullable

[]amount.format: int64

[]amount.pattern: ^(0|-?[1-9][0-9]*)$

- []indexPrice (string · int64 · nullable; required)

[]indexPrice example: 0

[]indexPrice.Type: string · int64 · nullable

[]indexPrice.format: int64

[]indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- []settlementOraclePrice (string · int64 · nullable; required)

[]settlementOraclePrice example: 0

[]settlementOraclePrice.Type: string · int64 · nullable

[]settlementOraclePrice.format: int64

[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- []createdAt (string · date-time; required)

[]createdAt example: 2026-01-01T00:00:00Z

[]createdAt.Type: string · date-time

[]createdAt.format: date-time

- []error (string · nullable; required)

[]error example: string

[]error.Type: string · nullable

Example



```json
[
  {
    "id": "string",
    "txId": "string",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "status": "seq_pending",
    "type": "market",
    "direction": "long",
    "stopPrice": "0",
    "limitPrice": "0",
    "stopTriggerPrice": "0",
    "takeTriggerPrice": "0",
    "leverage": "0",
    "index": 0,
    "positionId": "string",
    "expiration": "2026-01-01T00:00:00Z",
    "amount": "0",
    "indexPrice": "0",
    "settlementOraclePrice": "0",
    "createdAt": "2026-01-01T00:00:00Z",
    "error": "string"
  }
]
```

---

# Get order history for an asset

Source: https://docs.storm.tg/developers/operations/getorderhistory

# Get order history for an asset

`GET /api/orders/{trader}/{asset}/history`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: asset (string; required). Position base asset

Type: string

Example: "BTC"

minLength: 1

- query: statuses (string · enum[]; optional). 

Type: string · enum[]

[]Type: string · enum

[]Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- query: direction (string · enum; optional). 

Type: string · enum

Allowed values: ["long","short"]

- query: limit (integer; optional). 

Type: integer

Default: 20

- query: offset (integer; optional). 

Type: integer

Default: 0

- query: walletId (string; optional). 

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/orders/{trader}/{asset}/history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/orders/{trader}/{asset}/history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/orders/{trader}/{asset}/history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — Response

Type: object

Required fields: data, totalCount

Required field types: data (object[]; required), totalCount (integer; required)

- data (object[]; required)

data example: [
  {
    "id": "string",
    "txId": "string",
    "trader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "masterTrader": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "market": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "status": "seq_pending",
    "type": "market",
    "direction": "long",
    "stopPrice": "0",
    "limitPrice": "0",
    "stopTriggerPrice": "0",
    "takeTriggerPrice": "0",
    "leverage": "0",
    "index": 0,
    "positionId": "string",
    "expiration": "2026-01-01T00:00:00Z",
    "amount": "0",
    "indexPrice": "0",
    "settlementOraclePrice": "0",
    "createdAt": "2026-01-01T00:00:00Z",
    "error": "string"
  }
]

data.Type: object[]

data.[]Schema: Data.OrderResponse

data.[]Type: object

data.[]Required fields: id, txId, trader, masterTrader, market, status, type, direction, stopPrice, limitPrice, stopTriggerPrice, takeTriggerPrice, leverage, index, positionId, expiration, amount, indexPrice, settlementOraclePrice, createdAt, error

data.[]Required field types: id (string; required), txId (string; required), trader (string; required), masterTrader (string; required), market (string; required), status (string · enum; required), type (string · enum; required), direction (string · enum; required), stopPrice (string · int64 · nullable; required), limitPrice (string · int64 · nullable; required), stopTriggerPrice (string · int64 · nullable; required), takeTriggerPrice (string · int64 · nullable; required), leverage (string · int64 · nullable; required), index (number · nullable; required), positionId (string · nullable; required), expiration (string · date-time · nullable; required), amount (string · int64 · nullable; required), indexPrice (string · int64 · nullable; required), settlementOraclePrice (string · int64 · nullable; required), createdAt (string · date-time; required), error (string · nullable; required)

- data.[]id (string; required)

data.[]id example: string

data.[]id.Type: string

- data.[]txId (string; required)

data.[]txId example: string

data.[]txId.Type: string

- data.[]trader (string; required)

data.[]trader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]trader.Type: string

- data.[]masterTrader (string; required)

data.[]masterTrader example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]masterTrader.Type: string

- data.[]market (string; required)

data.[]market example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

data.[]market.Type: string

- data.[]status (string · enum; required)

data.[]status example: seq_pending

data.[]status.Type: string · enum

data.[]status.Allowed values: ["seq_pending","seq_executing","active","pending","tx_sent","executed","canceled","canceled_by_sequencer","expired","error"]

- data.[]type (string · enum; required)

data.[]type example: market

data.[]type.Type: string · enum

data.[]type.Allowed values: ["market","stop","take","limit","liquidation","max_pnl","add_margin","remove_margin"]

- data.[]direction (string · enum; required)

data.[]direction example: long

data.[]direction.Type: string · enum

data.[]direction.Allowed values: ["long","short"]

- data.[]stopPrice (string · int64 · nullable; required)

data.[]stopPrice example: 0

data.[]stopPrice.Type: string · int64 · nullable

data.[]stopPrice.format: int64

data.[]stopPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]limitPrice (string · int64 · nullable; required)

data.[]limitPrice example: 0

data.[]limitPrice.Type: string · int64 · nullable

data.[]limitPrice.format: int64

data.[]limitPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]stopTriggerPrice (string · int64 · nullable; required)

data.[]stopTriggerPrice example: 0

data.[]stopTriggerPrice.Type: string · int64 · nullable

data.[]stopTriggerPrice.format: int64

data.[]stopTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]takeTriggerPrice (string · int64 · nullable; required)

data.[]takeTriggerPrice example: 0

data.[]takeTriggerPrice.Type: string · int64 · nullable

data.[]takeTriggerPrice.format: int64

data.[]takeTriggerPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]leverage (string · int64 · nullable; required)

data.[]leverage example: 0

data.[]leverage.Type: string · int64 · nullable

data.[]leverage.format: int64

data.[]leverage.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]index (number · nullable; required)

data.[]index example: 0

data.[]index.Type: number · nullable

- data.[]positionId (string · nullable; required)

data.[]positionId example: string

data.[]positionId.Type: string · nullable

- data.[]expiration (string · date-time · nullable; required)

data.[]expiration example: 2026-01-01T00:00:00Z

data.[]expiration.Type: string · date-time · nullable

data.[]expiration.format: date-time

- data.[]amount (string · int64 · nullable; required)

data.[]amount example: 0

data.[]amount.Type: string · int64 · nullable

data.[]amount.format: int64

data.[]amount.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]indexPrice (string · int64 · nullable; required)

data.[]indexPrice example: 0

data.[]indexPrice.Type: string · int64 · nullable

data.[]indexPrice.format: int64

data.[]indexPrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]settlementOraclePrice (string · int64 · nullable; required)

data.[]settlementOraclePrice example: 0

data.[]settlementOraclePrice.Type: string · int64 · nullable

data.[]settlementOraclePrice.format: int64

data.[]settlementOraclePrice.pattern: ^(0|-?[1-9][0-9]*)$

- data.[]createdAt (string · date-time; required)

data.[]createdAt example: 2026-01-01T00:00:00Z

data.[]createdAt.Type: string · date-time

data.[]createdAt.format: date-time

- data.[]error (string · nullable; required)

data.[]error example: string

data.[]error.Type: string · nullable

- totalCount (integer; required)

totalCount example: 0

totalCount.Type: integer

totalCount.minimum: 0

Example



```json
{
  "data": [],
  "totalCount": 0
}
```

---

# List vaults

Source: https://docs.storm.tg/developers/operations/listvaults

# List vaults

`GET /api/vaults`

## Authorization



## Parameters



## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/vaults' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/vaults", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/vaults",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.VaultResponse

**200** application/json — Response

Type: object[]

[]Schema: Data.VaultResponse

[]Type: object

[]Required fields: address, rate, lockedBalance, freeBalance, predictedRoi, apr, config

[]Required field types: address (string; required), rate (string · int64; required), lockedBalance (string · int64; required), freeBalance (string · int64; required), predictedRoi (string · int64; required), apr (object; required), config (object; required)

- []address (string; required)

[]address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]address.Type: string

- []rate (string · int64; required)

[]rate example: 0

[]rate.Type: string · int64

[]rate.format: int64

[]rate.pattern: ^(0|-?[1-9][0-9]*)$

- []lockedBalance (string · int64; required)

[]lockedBalance example: 0

[]lockedBalance.Type: string · int64

[]lockedBalance.format: int64

[]lockedBalance.pattern: ^(0|-?[1-9][0-9]*)$

- []freeBalance (string · int64; required)

[]freeBalance example: 0

[]freeBalance.Type: string · int64

[]freeBalance.format: int64

[]freeBalance.pattern: ^(0|-?[1-9][0-9]*)$

- []predictedRoi (string · int64; required)

[]predictedRoi example: 0

[]predictedRoi.Type: string · int64

[]predictedRoi.format: int64

[]predictedRoi.pattern: ^(0|-?[1-9][0-9]*)$

- []apr (object; required)

[]apr example: {
  "week": "0",
  "month": "0",
  "year": "0"
}

[]apr.Type: object

[]apr.Required fields: week, month, year

[]apr.Required field types: week (string · int64; required), month (string · int64; required), year (string · int64; required)

- []apr.week (string · int64; required)

[]apr.week example: 0

[]apr.week.Type: string · int64

[]apr.week.format: int64

[]apr.week.pattern: ^(0|-?[1-9][0-9]*)$

- []apr.month (string · int64; required)

[]apr.month example: 0

[]apr.month.Type: string · int64

[]apr.month.format: int64

[]apr.month.pattern: ^(0|-?[1-9][0-9]*)$

- []apr.year (string · int64; required)

[]apr.year example: 0

[]apr.year.Type: string · int64

[]apr.year.format: int64

[]apr.year.pattern: ^(0|-?[1-9][0-9]*)$

- []config (object; required)

[]config example: {
  "asset": {
    "name": "NOT",
    "decimals": 9,
    "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  },
  "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}

[]config.Type: object

[]config.Required fields: asset, vaultAddress, quoteAssetId

[]config.Required field types: asset (object; required), vaultAddress (string; required), quoteAssetId (string; required)

- []config.asset (object; required)

[]config.asset example: {
  "name": "NOT",
  "decimals": 9,
  "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}

[]config.asset.Type: object

[]config.asset.Required fields: name, decimals, assetId

[]config.asset.Required field types: name (string; required), decimals (number; required), assetId (string; required)

- []config.asset.name (string; required)

[]config.asset.name example: NOT

[]config.asset.name.Type: string

- []config.asset.decimals (number; required)

[]config.asset.decimals example: 9

[]config.asset.decimals.Type: number

- []config.asset.assetId (string; required)

[]config.asset.assetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]config.asset.assetId.Type: string

- []config.vaultAddress (string; required)

[]config.vaultAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]config.vaultAddress.Type: string

- []config.quoteAssetId (string; required)

[]config.quoteAssetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]config.quoteAssetId.Type: string

- []config.lpJettonMaster (string; optional)

[]config.lpJettonMaster example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

[]config.lpJettonMaster.Type: string

Example



```json
[
  {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "rate": "0",
    "lockedBalance": "0",
    "freeBalance": "0",
    "predictedRoi": "0",
    "apr": {
      "week": "0",
      "month": "0",
      "year": "0"
    },
    "config": {
      "asset": {
        "name": "NOT",
        "decimals": 9,
        "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
      },
      "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    }
  }
]
```

---

# Get a vault

Source: https://docs.storm.tg/developers/operations/getvault

# Get a vault

`GET /api/vaults/{vault}`

## Authorization



## Parameters

- path: vault (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/vaults/{vault}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/vaults/{vault}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/vaults/{vault}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.VaultResponse

**200** application/json — Response

Schema: Data.VaultResponse

Type: object

Required fields: address, rate, lockedBalance, freeBalance, predictedRoi, apr, config

Required field types: address (string; required), rate (string · int64; required), lockedBalance (string · int64; required), freeBalance (string · int64; required), predictedRoi (string · int64; required), apr (object; required), config (object; required)

- address (string; required)

address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

address.Type: string

- rate (string · int64; required)

rate example: 0

rate.Type: string · int64

rate.format: int64

rate.pattern: ^(0|-?[1-9][0-9]*)$

- lockedBalance (string · int64; required)

lockedBalance example: 0

lockedBalance.Type: string · int64

lockedBalance.format: int64

lockedBalance.pattern: ^(0|-?[1-9][0-9]*)$

- freeBalance (string · int64; required)

freeBalance example: 0

freeBalance.Type: string · int64

freeBalance.format: int64

freeBalance.pattern: ^(0|-?[1-9][0-9]*)$

- predictedRoi (string · int64; required)

predictedRoi example: 0

predictedRoi.Type: string · int64

predictedRoi.format: int64

predictedRoi.pattern: ^(0|-?[1-9][0-9]*)$

- apr (object; required)

apr example: {
  "week": "0",
  "month": "0",
  "year": "0"
}

apr.Type: object

apr.Required fields: week, month, year

apr.Required field types: week (string · int64; required), month (string · int64; required), year (string · int64; required)

- apr.week (string · int64; required)

apr.week example: 0

apr.week.Type: string · int64

apr.week.format: int64

apr.week.pattern: ^(0|-?[1-9][0-9]*)$

- apr.month (string · int64; required)

apr.month example: 0

apr.month.Type: string · int64

apr.month.format: int64

apr.month.pattern: ^(0|-?[1-9][0-9]*)$

- apr.year (string · int64; required)

apr.year example: 0

apr.year.Type: string · int64

apr.year.format: int64

apr.year.pattern: ^(0|-?[1-9][0-9]*)$

- config (object; required)

config example: {
  "asset": {
    "name": "NOT",
    "decimals": 9,
    "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  },
  "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}

config.Type: object

config.Required fields: asset, vaultAddress, quoteAssetId

config.Required field types: asset (object; required), vaultAddress (string; required), quoteAssetId (string; required)

- config.asset (object; required)

config.asset example: {
  "name": "NOT",
  "decimals": 9,
  "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}

config.asset.Type: object

config.asset.Required fields: name, decimals, assetId

config.asset.Required field types: name (string; required), decimals (number; required), assetId (string; required)

- config.asset.name (string; required)

config.asset.name example: NOT

config.asset.name.Type: string

- config.asset.decimals (number; required)

config.asset.decimals example: 9

config.asset.decimals.Type: number

- config.asset.assetId (string; required)

config.asset.assetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

config.asset.assetId.Type: string

- config.vaultAddress (string; required)

config.vaultAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

config.vaultAddress.Type: string

- config.quoteAssetId (string; required)

config.quoteAssetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

config.quoteAssetId.Type: string

- config.lpJettonMaster (string; optional)

config.lpJettonMaster example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

config.lpJettonMaster.Type: string

Example



```json
{
  "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "rate": "0",
  "lockedBalance": "0",
  "freeBalance": "0",
  "predictedRoi": "0",
  "apr": {
    "week": "0",
    "month": "0",
    "year": "0"
  },
  "config": {
    "asset": {
      "name": "NOT",
      "decimals": 9,
      "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    },
    "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  }
}
```

---

# Get vault rate history

Source: https://docs.storm.tg/developers/operations/getvaultrates

# Get vault rate history

`GET /api/vaults/{vault}/rates/{timeframe}`

## Authorization



## Parameters

- path: vault (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: timeframe (string · enum; required). 

Type: string · enum

Allowed values: ["week","month","year"]

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/vaults/{vault}/rates/{timeframe}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/vaults/{vault}/rates/{timeframe}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/vaults/{vault}/rates/{timeframe}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.VaultRatesResponse

**200** application/json — Response

Schema: Data.VaultRatesResponse

Type: object

Required fields: roiPercentage, history

Required field types: roiPercentage (string · int64; required), history (object[]; required)

- roiPercentage (string · int64; required)

roiPercentage example: 0

roiPercentage.Type: string · int64

roiPercentage.format: int64

roiPercentage.pattern: ^(0|-?[1-9][0-9]*)$

- history (object[]; required)

history example: [
  {
    "timestamp": "2026-01-01T00:00:00Z",
    "value": "0",
    "balance": "0"
  }
]

history.Type: object[]

history.[]Type: object

history.[]Required fields: timestamp, value, balance

history.[]Required field types: timestamp (string · date-time; required), value (string · int64; required), balance (string · int64; required)

- history.[]timestamp (string · date-time; required)

history.[]timestamp example: 2026-01-01T00:00:00Z

history.[]timestamp.Type: string · date-time

history.[]timestamp.format: date-time

- history.[]value (string · int64; required)

history.[]value example: 0

history.[]value.Type: string · int64

history.[]value.format: int64

history.[]value.pattern: ^(0|-?[1-9][0-9]*)$

- history.[]balance (string · int64; required)

history.[]balance example: 0

history.[]balance.Type: string · int64

history.[]balance.format: int64

history.[]balance.pattern: ^(0|-?[1-9][0-9]*)$

Example



```json
{
  "roiPercentage": "0",
  "history": [
    {
      "timestamp": "2026-01-01T00:00:00Z",
      "value": "0",
      "balance": "0"
    }
  ]
}
```

---

# Get a liquidity position

Source: https://docs.storm.tg/developers/operations/getliquidityposition

# Get a liquidity position

`GET /api/liquidity-providers/{vault}/{trader}`

## Authorization



## Parameters

- path: vault (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

- path: trader (string; required). 

Type: string

Example: "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/liquidity-providers/{vault}/{trader}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/liquidity-providers/{vault}/{trader}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/liquidity-providers/{vault}/{trader}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — Response

Type: object

Required fields: vault, trader, supplied, averageRate

Required field types: vault (string; required), trader (string; required), supplied (string; required), averageRate (string; required)

- vault (string; required)

vault example: string

vault.Type: string

- trader (string; required)

trader example: string

trader.Type: string

- supplied (string; required)

supplied example: string

supplied.Type: string

- averageRate (string; required)

averageRate example: string

averageRate.Type: string

Example



```json
{
  "vault": "string",
  "trader": "string",
  "supplied": "string",
  "averageRate": "string"
}
```

---

# Get volume for trading fee tiers

Source: https://docs.storm.tg/developers/operations/gettradervolume

# Get volume for trading fee tiers

`GET /v3-node-0/volume/{address}`

Returns the trader's cumulative on-chain traded notional used for fee tiers (keyed by owner wallet)

## Authorization



## Parameters

- path: address (string; required). Trader (owner wallet) address

Type: string

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/v3-node-0/volume/{address}' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/v3-node-0/volume/{address}", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/v3-node-0/volume/{address}",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Trading.api.VolumeResponse

**200** application/json — OK

Schema: Trading.api.VolumeResponse

Type: object

Required fields: none

- address (string; optional)

address example: string

address.Type: string

- volume (string; optional)

volume example: string

volume.Type: string

volume.quote-asset nanos, decimal string

Example



```json
{
  "address": "string",
  "volume": "string"
}
```

## Response 400 · Trading.api.ErrorResponse

**400** application/json — Bad Request

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

## Response 500 · Trading.api.ErrorResponse

**500** application/json — Internal Server Error

Schema: Trading.api.ErrorResponse

Type: object

Required fields: none

- code (string; optional)

code example: string

code.Type: string

- error (string; optional)

error example: string

error.Type: string

- externalQueryId (string; optional)

externalQueryId example: string

externalQueryId.Type: string

- msg (string; optional)

msg example: string

msg.Type: string

Example



```json
{
  "code": "string",
  "error": "string",
  "externalQueryId": "string",
  "msg": "string"
}
```

---

# Get trader PnL history

Source: https://docs.storm.tg/developers/operations/gettraderpnlhistory

# Get trader PnL history

`GET /api/trader-stats/{trader}/pnl-history`

## Authorization



## Parameters

- path: trader (string; required). 

Type: string

- query: period (number · nullable; optional). 

Type: number · nullable

## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/trader-stats/{trader}/pnl-history' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/trader-stats/{trader}/pnl-history", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/trader-stats/{trader}/pnl-history",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200

**200** application/json — Response

Type: object[]

[]Type: object

[]Required fields: timestamp, totalPnl, trader

[]Required field types: timestamp (string · date-time; required), totalPnl (string; required), trader (string; required)

- []timestamp (string · date-time; required)

[]timestamp example: 2026-01-01T00:00:00Z

[]timestamp.Type: string · date-time

[]timestamp.format: date-time

- []totalPnl (string; required)

[]totalPnl example: string

[]totalPnl.Type: string

- []trader (string; required)

[]trader example: string

[]trader.Type: string

Example



```json
[
  {
    "timestamp": "2026-01-01T00:00:00Z",
    "totalPnl": "string",
    "trader": "string"
  }
]
```

---

# Get protocol configuration

Source: https://docs.storm.tg/developers/operations/getprotocolconfiguration

# Get protocol configuration

`GET /api/config`

## Authorization



## Parameters



## Example · cURL

```bash
curl --request GET 'https://api.storm.tg/api/config' \
  --header 'Accept: application/json'
```

## Example · JavaScript

```javascript
const response = await fetch("https://api.storm.tg/api/config", {
  method: "GET",
  headers: {
    "Accept": "application/json"
  },
});
console.log(response.status, await response.text());
```

## Example · Python

```python
import requests

response = requests.request(
    "GET",
    "https://api.storm.tg/api/config",
    headers={"Accept":"application/json"},
    timeout=30,
)
print(response.status_code, response.text)
```

## Response 200 · Data.ConfigResponse

**200** application/json — Response

Schema: Data.ConfigResponse

Type: object

Required fields: markets, openedMarkets, liquiditySources, assets, composedAt, referralCollectionAddress, genesisCollectionAddress, stormJettonMasterAddress, jvaultStakingCollectionAddress, jvaultStakingJettonMasterAddress, vestingCollectionAddress, preIcoAddress, claimByRpAddress, vouchersCollectionAddress, marketMakersCollectionAddress

Required field types: markets (object[]; required), openedMarkets (object[]; required), liquiditySources (object[]; required), assets (object[]; required), composedAt (string · date-time; required), referralCollectionAddress (string; required), genesisCollectionAddress (string; required), stormJettonMasterAddress (string; required), jvaultStakingCollectionAddress (string; required), jvaultStakingJettonMasterAddress (string; required), vestingCollectionAddress (string; required), preIcoAddress (string; required), claimByRpAddress (string; required), vouchersCollectionAddress (string; required), marketMakersCollectionAddress (string; required)

- markets (object[]; required)

markets example: [
  {
    "name": "BTC",
    "description": "BTC",
    "ticker": "BTC/USD-CM",
    "imageLink": "https://app.storm.tg/markets/btc.png",
    "tags": [
      "Crypto"
    ],
    "pairs": [
      {
        "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
        "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
        "type": "coinm",
        "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
        "collateral": "TON"
      }
    ]
  }
]

markets.Type: object[]

markets.[]Type: object

markets.[]Required fields: name, ticker, imageLink, tags, pairs

markets.[]Required field types: name (string; required), ticker (string; required), imageLink (string; required), tags (string[]; required), pairs (object[]; required)

- markets.[]name (string; required)

markets.[]name example: BTC

markets.[]name.Type: string

- markets.[]description (string; optional)

markets.[]description example: BTC

markets.[]description.Type: string

- markets.[]ticker (string; required)

markets.[]ticker example: BTC/USD-CM

markets.[]ticker.Type: string

- markets.[]imageLink (string; required)

markets.[]imageLink example: https://app.storm.tg/markets/btc.png

markets.[]imageLink.Type: string

- markets.[]tags (string[]; required)

markets.[]tags example: [
  "Crypto"
]

markets.[]tags.Type: string[]

markets.[]tags.[]Type: string

- markets.[]pairs (object[]; required)

markets.[]pairs example: [
  {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "type": "coinm",
    "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "collateral": "TON"
  }
]

markets.[]pairs.Type: object[]

markets.[]pairs.[]Type: object

markets.[]pairs.[]Required fields: address, vaultAddress, type, quoteAssetId, collateral

markets.[]pairs.[]Required field types: address (string; required), vaultAddress (string; required), type (string; required), quoteAssetId (string; required), collateral (string; required)

- markets.[]pairs.[]address (string; required)

markets.[]pairs.[]address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

markets.[]pairs.[]address.Type: string

- markets.[]pairs.[]vaultAddress (string; required)

markets.[]pairs.[]vaultAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

markets.[]pairs.[]vaultAddress.Type: string

- markets.[]pairs.[]type (string; required)

markets.[]pairs.[]type example: coinm

markets.[]pairs.[]type.Type: string

- markets.[]pairs.[]quoteAssetId (string; required)

markets.[]pairs.[]quoteAssetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

markets.[]pairs.[]quoteAssetId.Type: string

- markets.[]pairs.[]collateral (string; required)

markets.[]pairs.[]collateral example: TON

markets.[]pairs.[]collateral.Type: string

- openedMarkets (object[]; required)

openedMarkets example: [
  {
    "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "quoteAsset": "USD",
    "baseAsset": "BTC",
    "imageLink": "https://app.storm.tg/markets/btc.png",
    "name": "BTC",
    "tags": [
      "Crypto"
    ],
    "ticker": "BTC/USD-CM",
    "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "settlementToken": "NOT",
    "type": "coinm",
    "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  }
]

openedMarkets.Type: object[]

openedMarkets.[]Type: object

openedMarkets.[]Required fields: address, quoteAsset, baseAsset, imageLink, name, tags, ticker, quoteAssetId, settlementToken, type, vaultAddress

openedMarkets.[]Required field types: address (string; required), quoteAsset (string; required), baseAsset (string; required), imageLink (string; required), name (string; required), tags (string[]; required), ticker (string; required), quoteAssetId (string; required), settlementToken (string; required), type (string; required), vaultAddress (string; required)

- openedMarkets.[]address (string; required)

openedMarkets.[]address example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

openedMarkets.[]address.Type: string

- openedMarkets.[]quoteAsset (string; required)

openedMarkets.[]quoteAsset example: USD

openedMarkets.[]quoteAsset.Type: string

- openedMarkets.[]baseAsset (string; required)

openedMarkets.[]baseAsset example: BTC

openedMarkets.[]baseAsset.Type: string

- openedMarkets.[]imageLink (string; required)

openedMarkets.[]imageLink example: https://app.storm.tg/markets/btc.png

openedMarkets.[]imageLink.Type: string

- openedMarkets.[]name (string; required)

openedMarkets.[]name example: BTC

openedMarkets.[]name.Type: string

- openedMarkets.[]tags (string[]; required)

openedMarkets.[]tags example: [
  "Crypto"
]

openedMarkets.[]tags.Type: string[]

openedMarkets.[]tags.[]Type: string

- openedMarkets.[]ticker (string; required)

openedMarkets.[]ticker example: BTC/USD-CM

openedMarkets.[]ticker.Type: string

- openedMarkets.[]quoteAssetId (string; required)

openedMarkets.[]quoteAssetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

openedMarkets.[]quoteAssetId.Type: string

- openedMarkets.[]settlementToken (string; required)

openedMarkets.[]settlementToken example: NOT

openedMarkets.[]settlementToken.Type: string

- openedMarkets.[]type (string; required)

openedMarkets.[]type example: coinm

openedMarkets.[]type.Type: string

- openedMarkets.[]vaultAddress (string; required)

openedMarkets.[]vaultAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

openedMarkets.[]vaultAddress.Type: string

- liquiditySources (object[]; required)

liquiditySources example: [
  {
    "asset": {
      "name": "NOT",
      "decimals": 9,
      "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    },
    "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
    "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  }
]

liquiditySources.Type: object[]

liquiditySources.[]Type: object

liquiditySources.[]Required fields: asset, vaultAddress, quoteAssetId

liquiditySources.[]Required field types: asset (object; required), vaultAddress (string; required), quoteAssetId (string; required)

- liquiditySources.[]asset (object; required)

liquiditySources.[]asset example: {
  "name": "NOT",
  "decimals": 9,
  "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}

liquiditySources.[]asset.Type: object

liquiditySources.[]asset.Required fields: name, decimals, assetId

liquiditySources.[]asset.Required field types: name (string; required), decimals (number; required), assetId (string; required)

- liquiditySources.[]asset.name (string; required)

liquiditySources.[]asset.name example: NOT

liquiditySources.[]asset.name.Type: string

- liquiditySources.[]asset.decimals (number; required)

liquiditySources.[]asset.decimals example: 9

liquiditySources.[]asset.decimals.Type: number

- liquiditySources.[]asset.assetId (string; required)

liquiditySources.[]asset.assetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

liquiditySources.[]asset.assetId.Type: string

- liquiditySources.[]vaultAddress (string; required)

liquiditySources.[]vaultAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

liquiditySources.[]vaultAddress.Type: string

- liquiditySources.[]quoteAssetId (string; required)

liquiditySources.[]quoteAssetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

liquiditySources.[]quoteAssetId.Type: string

- liquiditySources.[]lpJettonMaster (string; optional)

liquiditySources.[]lpJettonMaster example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

liquiditySources.[]lpJettonMaster.Type: string

- assets (object[]; required)

assets example: [
  {
    "name": "NOT",
    "decimals": 9,
    "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
  }
]

assets.Type: object[]

assets.[]Type: object

assets.[]Required fields: name, decimals, assetId

assets.[]Required field types: name (string; required), decimals (number; required), assetId (string; required)

- assets.[]name (string; required)

assets.[]name example: NOT

assets.[]name.Type: string

- assets.[]decimals (number; required)

assets.[]decimals example: 9

assets.[]decimals.Type: number

- assets.[]assetId (string; required)

assets.[]assetId example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

assets.[]assetId.Type: string

- composedAt (string · date-time; required)

composedAt example: 2026-01-01T00:00:00Z

composedAt.Type: string · date-time

composedAt.format: date-time

- referralCollectionAddress (string; required)

referralCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

referralCollectionAddress.Type: string

- genesisCollectionAddress (string; required)

genesisCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

genesisCollectionAddress.Type: string

- stormJettonMasterAddress (string; required)

stormJettonMasterAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

stormJettonMasterAddress.Type: string

- jvaultStakingCollectionAddress (string; required)

jvaultStakingCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

jvaultStakingCollectionAddress.Type: string

- jvaultStakingJettonMasterAddress (string; required)

jvaultStakingJettonMasterAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

jvaultStakingJettonMasterAddress.Type: string

- vestingCollectionAddress (string; required)

vestingCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

vestingCollectionAddress.Type: string

- stonFiLiquidityPoolAddress (string; optional)

stonFiLiquidityPoolAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

stonFiLiquidityPoolAddress.Type: string

- stonFiLiquidityPoolFarmAddress (string; optional)

stonFiLiquidityPoolFarmAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

stonFiLiquidityPoolFarmAddress.Type: string

- preIcoAddress (string; required)

preIcoAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

preIcoAddress.Type: string

- claimByRpAddress (string; required)

claimByRpAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

claimByRpAddress.Type: string

- vouchersCollectionAddress (string; required)

vouchersCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

vouchersCollectionAddress.Type: string

- marketMakersCollectionAddress (string; required)

marketMakersCollectionAddress example: 0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660

marketMakersCollectionAddress.Type: string

Example



```json
{
  "markets": [
    {
      "name": "BTC",
      "description": "BTC",
      "ticker": "BTC/USD-CM",
      "imageLink": "https://app.storm.tg/markets/btc.png",
      "tags": [
        "Crypto"
      ],
      "pairs": [
        {
          "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
          "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
          "type": "coinm",
          "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
          "collateral": "TON"
        }
      ]
    }
  ],
  "openedMarkets": [
    {
      "address": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "quoteAsset": "USD",
      "baseAsset": "BTC",
      "imageLink": "https://app.storm.tg/markets/btc.png",
      "name": "BTC",
      "tags": [
        "Crypto"
      ],
      "ticker": "BTC/USD-CM",
      "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "settlementToken": "NOT",
      "type": "coinm",
      "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    }
  ],
  "liquiditySources": [
    {
      "asset": {
        "name": "NOT",
        "decimals": 9,
        "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
      },
      "vaultAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "quoteAssetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
      "lpJettonMaster": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    }
  ],
  "assets": [
    {
      "name": "NOT",
      "decimals": 9,
      "assetId": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
    }
  ],
  "composedAt": "2026-01-01T00:00:00Z",
  "referralCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "genesisCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "stormJettonMasterAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "jvaultStakingCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "jvaultStakingJettonMasterAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "vestingCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "stonFiLiquidityPoolAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "stonFiLiquidityPoolFarmAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "preIcoAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "claimByRpAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "vouchersCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660",
  "marketMakersCollectionAddress": "0:72c310c83de5060d21674d58379b9a153854338a63d82588f8d912f83a3f8660"
}
```
