# Table of Contents - [About edgeX | edgeX Docs](#about-edgex-edgex-docs) - [About edgeX | edgeX Docs](#about-edgex-edgex-docs) - [edgeX V1 | edgeX Docs](#edgex-v1-edgex-docs) - [V1 Technical Architecture | edgeX Docs](#v1-technical-architecture-edgex-docs) - [Decentralized Oracle Pricing | edgeX Docs](#decentralized-oracle-pricing-edgex-docs) - [eStrategy | edgeX Docs](#estrategy-edgex-docs) - [Community | edgeX Docs](#community-edgex-docs) - [Maru 🦭 | edgeX Docs](#maru-edgex-docs) - [Self-Custody | edgeX Docs](#self-custody-edgex-docs) - [XP (Pre TGE Season) | edgeX Docs](#xp-pre-tge-season-edgex-docs) - [EDGE | edgeX Docs](#edge-edgex-docs) - [Accounts & Wallets | edgeX Docs](#accounts-wallets-edgex-docs) - [Getting started | edgeX Docs](#getting-started-edgex-docs) - [Deposits and Withdrawals | edgeX Docs](#deposits-and-withdrawals-edgex-docs) - [Deposits | edgeX Docs](#deposits-edgex-docs) - [Withdrawals | edgeX Docs](#withdrawals-edgex-docs) - [Trading Accounts & Margin | edgeX Docs](#trading-accounts-margin-edgex-docs) - [Trading Rules | edgeX Docs](#trading-rules-edgex-docs) - [Trading | edgeX Docs](#trading-edgex-docs) - [Last Price, Index Price & Oracle Price | edgeX Docs](#last-price-index-price-oracle-price-edgex-docs) - [Order Types | edgeX Docs](#order-types-edgex-docs) - [Liquidation Logic | edgeX Docs](#liquidation-logic-edgex-docs) - [Funding Fees | edgeX Docs](#funding-fees-edgex-docs) - [Trading Fees | edgeX Docs](#trading-fees-edgex-docs) - [TradingView | edgeX Docs](#tradingview-edgex-docs) - [Take Profit & Stop Loss | edgeX Docs](#take-profit-stop-loss-edgex-docs) - [Brand Kit | edgeX Docs](#brand-kit-edgex-docs) - [API Docs | edgeX Docs](#api-docs-edgex-docs) - [Audits | edgeX Docs](#audits-edgex-docs) - [Stock Perpetual | edgeX Docs](#stock-perpetual-edgex-docs) - [Public API | edgeX Docs](#public-api-edgex-docs) - [Vision & Roadmap | edgeX Docs](#vision-roadmap-edgex-docs) - [Official Links | edgeX Docs](#official-links-edgex-docs) - [Private API | edgeX Docs](#private-api-edgex-docs) - [About | edgeX Docs](#about-edgex-docs) - [Authentication | edgeX Docs](#authentication-edgex-docs) - [L2 Signature | edgeX Docs](#l2-signature-edgex-docs) - [Websocket API | edgeX Docs](#websocket-api-edgex-docs) - [Funding API | edgeX Docs](#funding-api-edgex-docs) - [Terms of Use | edgeX Docs](#terms-of-use-edgex-docs) - [Privacy Policy | edgeX Docs](#privacy-policy-edgex-docs) - [Meta Data API | edgeX Docs](#meta-data-api-edgex-docs) - [Quote API | edgeX Docs](#quote-api-edgex-docs) - [Withdraw API | edgeX Docs](#withdraw-api-edgex-docs) - [Transfer API | edgeX Docs](#transfer-api-edgex-docs) - [Asset API | edgeX Docs](#asset-api-edgex-docs) - [Order API | edgeX Docs](#order-api-edgex-docs) - [Account API | edgeX Docs](#account-api-edgex-docs) - [Terms of Use | edgeX Docs](#terms-of-use-edgex-docs) - [About edgeX | edgeX Docs](#about-edgex-edgex-docs) - [eStrategy | edgeX Docs](#estrategy-edgex-docs) - [Audits | edgeX Docs](#audits-edgex-docs) - [Brand Kit | edgeX Docs](#brand-kit-edgex-docs) - [About | edgeX Docs](#about-edgex-docs) - [Getting started | edgeX Docs](#getting-started-edgex-docs) - [Vision & Roadmap | edgeX Docs](#vision-roadmap-edgex-docs) - [Official Links | edgeX Docs](#official-links-edgex-docs) - [Community | edgeX Docs](#community-edgex-docs) - [edgeX V1 | edgeX Docs](#edgex-v1-edgex-docs) - [API Docs | edgeX Docs](#api-docs-edgex-docs) - [Trading | edgeX Docs](#trading-edgex-docs) - [Privacy Policy | edgeX Docs](#privacy-policy-edgex-docs) - [EDGE | edgeX Docs](#edge-edgex-docs) - [Maru 🦭 | edgeX Docs](#maru-edgex-docs) - [Accounts & Wallets | edgeX Docs](#accounts-wallets-edgex-docs) - [XP (Pre TGE Season) | edgeX Docs](#xp-pre-tge-season-edgex-docs) - [V1 Technical Architecture | edgeX Docs](#v1-technical-architecture-edgex-docs) - [Deposits and Withdrawals | edgeX Docs](#deposits-and-withdrawals-edgex-docs) - [Authentication | edgeX Docs](#authentication-edgex-docs) - [Self-Custody | edgeX Docs](#self-custody-edgex-docs) - [Decentralized Oracle Pricing | edgeX Docs](#decentralized-oracle-pricing-edgex-docs) - [Trading Accounts & Margin | edgeX Docs](#trading-accounts-margin-edgex-docs) - [Websocket API | edgeX Docs](#websocket-api-edgex-docs) - [L2 Signature | edgeX Docs](#l2-signature-edgex-docs) - [Trading Rules | edgeX Docs](#trading-rules-edgex-docs) - [Withdrawals | edgeX Docs](#withdrawals-edgex-docs) - [Stock Perpetual | edgeX Docs](#stock-perpetual-edgex-docs) - [Take Profit & Stop Loss | edgeX Docs](#take-profit-stop-loss-edgex-docs) - [Last Price, Index Price & Oracle Price | edgeX Docs](#last-price-index-price-oracle-price-edgex-docs) - [Trading Fees | edgeX Docs](#trading-fees-edgex-docs) - [Liquidation Logic | edgeX Docs](#liquidation-logic-edgex-docs) - [Public API | edgeX Docs](#public-api-edgex-docs) - [Funding Fees | edgeX Docs](#funding-fees-edgex-docs) - [Order Types | edgeX Docs](#order-types-edgex-docs) - [TradingView | edgeX Docs](#tradingview-edgex-docs) - [Private API | edgeX Docs](#private-api-edgex-docs) - [Deposits | edgeX Docs](#deposits-edgex-docs) - [Funding API | edgeX Docs](#funding-api-edgex-docs) - [Meta Data API | edgeX Docs](#meta-data-api-edgex-docs) - [Quote API | edgeX Docs](#quote-api-edgex-docs) - [Withdraw API | edgeX Docs](#withdraw-api-edgex-docs) - [Asset API | edgeX Docs](#asset-api-edgex-docs) --- # About edgeX | edgeX Docs [hashtag](https://edgex-1.gitbook.io/#edge-stack-deterministic-parallel-and-modular-execution-for-trading-engine) EDGE Stack: Deterministic Parallel and Modular Execution for Trading Engine -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/#background-structural-contradictions-in-defi-infrastructure) Background: Structural Contradictions in DeFi Infrastructure Decentralized Finance has evolved quickly, but perpetual futures still face fundamental constraints: slow execution, trust assumptions, and poor scalability. Most chains continue to run transactions through sequential execution over a single global state machine, creating a bottleneck where throughput and latency can’t meet ultra-low-latency demands of high-frequency and quantitative trading. Some systems improved speed but compromised on fairness, transparency, or fully verifiable order matching. Meanwhile, monolithic DEX designs struggle to scale, hosting both perpetuals and broader DeFi functionality becomes costly, rigid, and difficult to expand. ### [hashtag](https://edgex-1.gitbook.io/#edge-stack-app-specific-rollup-on-ethereum) EDGE Stack: App-Specific Rollup on Ethereum EDGE Stack is built as an App-Specific Execution Layer optimized for high-performance on-chain trading. Instead of adapting generic blockchain infrastructure, we redesign the system at the execution layer. With a modular multi-VM architecture and a deterministic Parallel Transaction Execution (PTE), EDGE Stack delivers high throughput, low latency, and fully verifiable matching for complex derivatives like perpetuals. As part of the rollup ecosystem, EDGE Stack ultimately benefits from Ethereum's security guarantees, allowing users to adhere to DeFi's trust minimization principles while enjoying an ultra-low-latency on-chain experience. ### [hashtag](https://edgex-1.gitbook.io/#three-core-technical-pillars) Three Core Technical Pillars EDGE Stack uses a modular Multi-VM architecture optimized for trading workloads. * **Modular Multi-VM:** Now edgeVM handles perp execution and edgeEVM supports standard DeFi logic. In the future, edgeX can add additional VM environments. * **Parallel Transaction Execution (PTE):** Executes non-conflicting transactions in parallel. * **FlashLane**: Quality of Service (QoS) scheduling and multi-lane execution. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-f675ecdc373da4c53bd76c40868c1f2dc952fa92%252FArch.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7b7fcc12&sv=2) #### [hashtag](https://edgex-1.gitbook.io/#i.-modular-multi-vm) I. Modular Multi-VM Core perpetual logic runs inside a dedicated edgeVM with exclusive compute resources for lower latency. Right now it contains: * **edgeVM** handles high-performance perpetual execution (matching, liquidation, risk). * **edgeEVM** supports standard DeFi logic such as asset issuance and governance. * **Precompiled Contracts** run stable but computationally heavy functions. New product lines can be added by deploying additional VM actors or reusing existing ones, with isolation enforced via EIP-2930–style access lists. This enables plug-and-play expansion without architectural disruption. #### [hashtag](https://edgex-1.gitbook.io/#ii.-deterministic-parallel-transaction-execution-pte) II. Deterministic Parallel Transaction Execution (PTE) PTE is the parallelization engine that transforms the Sequencer’s serial input into safe, verifiable parallel execution.Using Market-Sharded Execution, each market or derivative type is handled by an independent VM Actor, allowing order books and position states to run in parallel without conflict. Highly active markets can be further subdivided, allowing throughput to scale roughly linearly with the number of active markets.Within a market, PTE uses extended access lists to define read/write scopes and only executes non-conflicting transactions in parallel. Conflicts follow fixed resolution rules, ensuring the final state remains serializable to the sequencer’s canonical order. This preserves deterministic replay, verifiability, and proof validity while fully utilizing multi-core resources. Critical subsystems such as liquidation or risk can run as separate Actors and scale horizontally as load grows. #### [hashtag](https://edgex-1.gitbook.io/#iii.-flashlane) III. FlashLane On top of raw throughput, edge Stack improves trading UX with QoS scheduling and multi-lane execution.Transactions are routed into two lanes: * **Fast Lane:** latency-sensitive actions like order placement/cancellation. * **Slow Lane:** non-urgent operations such as withdrawals or governance. This prevents non-critical activity from degrading matching engine performance.For high-frequency users, a FlashLane Commitment mechanism provides near-instant soft confirmation. After submission, the system performs a local PTE simulation and returns the intended batch ID and projected queue position (subject to rare reordering) within milliseconds. Combined with micro-batching and optimized I/O, traders gain predictable execution timing while preserving full on-chain verifiability. ### [hashtag](https://edgex-1.gitbook.io/#state-and-security) State & Security All parallel execution results converge into a single State Root Commitment. Using **Parallel Merklization**, edge Stack computes state tree hashes concurrently within a block, producing a deterministic State Root and Block Hash.These commitments settle to the underlying rollup layer and inherit Ethereum security. Any participant can independently replay the same transaction batch to verify correctness, ensuring full transparency, verifiability, and Ethereum-grade finality - without compromising performance. [NextedgeX V1chevron-right](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1) Last updated 2 months ago --- # About edgeX | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation#edge-stack-deterministic-parallel-and-modular-execution-for-trading-engine) EDGE Stack: Deterministic Parallel and Modular Execution for Trading Engine --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#background-structural-contradictions-in-defi-infrastructure) Background: Structural Contradictions in DeFi Infrastructure Decentralized Finance has evolved quickly, but perpetual futures still face fundamental constraints: slow execution, trust assumptions, and poor scalability. Most chains continue to run transactions through sequential execution over a single global state machine, creating a bottleneck where throughput and latency can’t meet ultra-low-latency demands of high-frequency and quantitative trading. Some systems improved speed but compromised on fairness, transparency, or fully verifiable order matching. Meanwhile, monolithic DEX designs struggle to scale, hosting both perpetuals and broader DeFi functionality becomes costly, rigid, and difficult to expand. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#edge-stack-app-specific-rollup-on-ethereum) EDGE Stack: App-Specific Rollup on Ethereum EDGE Stack is built as an App-Specific Execution Layer optimized for high-performance on-chain trading. Instead of adapting generic blockchain infrastructure, we redesign the system at the execution layer. With a modular multi-VM architecture and a deterministic Parallel Transaction Execution (PTE), EDGE Stack delivers high throughput, low latency, and fully verifiable matching for complex derivatives like perpetuals. As part of the rollup ecosystem, EDGE Stack ultimately benefits from Ethereum's security guarantees, allowing users to adhere to DeFi's trust minimization principles while enjoying an ultra-low-latency on-chain experience. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#three-core-technical-pillars) Three Core Technical Pillars EDGE Stack uses a modular Multi-VM architecture optimized for trading workloads. * **Modular Multi-VM:** Now edgeVM handles perp execution and edgeEVM supports standard DeFi logic. In the future, edgeX can add additional VM environments. * **Parallel Transaction Execution (PTE):** Executes non-conflicting transactions in parallel. * **FlashLane**: Quality of Service (QoS) scheduling and multi-lane execution. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-f675ecdc373da4c53bd76c40868c1f2dc952fa92%252FArch.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7b7fcc12&sv=2) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#i.-modular-multi-vm) I. Modular Multi-VM Core perpetual logic runs inside a dedicated edgeVM with exclusive compute resources for lower latency. Right now it contains: * **edgeVM** handles high-performance perpetual execution (matching, liquidation, risk). * **edgeEVM** supports standard DeFi logic such as asset issuance and governance. * **Precompiled Contracts** run stable but computationally heavy functions. New product lines can be added by deploying additional VM actors or reusing existing ones, with isolation enforced via EIP-2930–style access lists. This enables plug-and-play expansion without architectural disruption. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#ii.-deterministic-parallel-transaction-execution-pte) II. Deterministic Parallel Transaction Execution (PTE) PTE is the parallelization engine that transforms the Sequencer’s serial input into safe, verifiable parallel execution.Using Market-Sharded Execution, each market or derivative type is handled by an independent VM Actor, allowing order books and position states to run in parallel without conflict. Highly active markets can be further subdivided, allowing throughput to scale roughly linearly with the number of active markets.Within a market, PTE uses extended access lists to define read/write scopes and only executes non-conflicting transactions in parallel. Conflicts follow fixed resolution rules, ensuring the final state remains serializable to the sequencer’s canonical order. This preserves deterministic replay, verifiability, and proof validity while fully utilizing multi-core resources. Critical subsystems such as liquidation or risk can run as separate Actors and scale horizontally as load grows. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#iii.-flashlane) III. FlashLane On top of raw throughput, edge Stack improves trading UX with QoS scheduling and multi-lane execution.Transactions are routed into two lanes: * **Fast Lane:** latency-sensitive actions like order placement/cancellation. * **Slow Lane:** non-urgent operations such as withdrawals or governance. This prevents non-critical activity from degrading matching engine performance.For high-frequency users, a FlashLane Commitment mechanism provides near-instant soft confirmation. After submission, the system performs a local PTE simulation and returns the intended batch ID and projected queue position (subject to rare reordering) within milliseconds. Combined with micro-batching and optimized I/O, traders gain predictable execution timing while preserving full on-chain verifiability. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation#state-and-security) State & Security All parallel execution results converge into a single State Root Commitment. Using **Parallel Merklization**, edge Stack computes state tree hashes concurrently within a block, producing a deterministic State Root and Block Hash.These commitments settle to the underlying rollup layer and inherit Ethereum security. Any participant can independently replay the same transaction batch to verify correctness, ensuring full transparency, verifiability, and Ethereum-grade finality - without compromising performance. [NextedgeX V1chevron-right](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1) Last updated 2 months ago --- # edgeX V1 | edgeX Docs edgeX V1, the Minimum Viable Product (MVP) of edgeX, is a high-performance, orderbook-based perpetual decentralized exchange (Perp DEX), crafted to deliver a native trading experience. This is achieved through advanced trading infrastructure, superior performance, and trader-centric features. **Commitment to Trader Experience** Recognizing that traders are the foundation of any exchange’s sustainable growth, edgeX is designed to foster organic and long-term engagement. With deep roots in the crypto derivatives space, edgeX team has a profound understanding of trader demands, building edgeX around these needs from the outset. The guiding principle has always been to “build something traders love to use.” The MVP underscores edgeX’s standard of excellence across several key areas: **Battle-Tested Solution:** Powered by the StarkEx Layer 2 engine, edgeX V1 is built with an on-chain infrastructure that has handled over $1.28 trillion in cumulative trading volume since 2020. This robust solution meets the high demands of professional traders for performance and experience, while ensuring transparency of data and security of assets. **Zero-Knowledge (ZK) Rollup:** Each trade on edgeX is validated by third-party committees and batched into Ethereum for transparency. The publication of zero-knowledge proofs on the Ethereum Layer 1 blockchain validates Layer 2 transactions, ensuring their integrity and security. **Self-Custody:** edgeX ensures traders retain full custody and control of their funds, a key differentiation from centralized exchanges (CEX). The failures of exchanges like FTX have underscored the risks of centralized custody. At edgeX, users maintain self-custody of their assets, allowing for withdrawals at any time without platform permission, thus providing a trustless and secure trading environment. **Price Integrity and Fairness:** edgeX employs independent oracle providers to obtain mark prices, preventing price manipulation and ensuring an equitable and accurate reflection of asset values. This mechanism safeguards user positions from price manipulation and liquidation issues often seen in centralized exchanges. **Trading Performance:** The high-performance trading engine of edgeX V1 ensures a seamless and lightning-fast trading experience. Compared to other Performant Perp DEXs, edgeX achieves impressive performance metrics. When scaled up to 10 shards, edgeX outperforms competitors in terms of performance and match latency, delivering a faster and more efficient trading process. These advantages underscore edgeX commitment to providing a top-tier trading experience for professional perpetual traders. **Professional UX and UI:** edgeX features a professional UI and UX tailored for professional perpetual traders, ensuring a seamless and intuitive trading experience. **Advanced Trading Features:**edgeX offers advanced trading features traditionally available only on CEXs, such as a sub-account system. This allows traders to manage bi-directional positions, optimizing strategies and managing risks more effectively through hedge positions. **Easiest Onboarding — Social Logins:** With features like MPC wallets, edgeX V1 offers the easiest onboarding process for new users. Traders can register with just an email, and enjoy cross-chain deposit and withdrawal, making the platform accessible to everyone. **Mobile Version Coming Soon:** Recognizing the importance of retail perpetual traders, the mobile version of edgeX will be launched shortly after the web version, ensuring traders can manage their trades conveniently from any device. [PreviousAbout edgeXchevron-left](https://edgex-1.gitbook.io/edgex-documentation) [NextV1 Technical Architecturechevron-right](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/v1-technical-architecture) Last updated 1 year ago --- # V1 Technical Architecture | edgeX Docs edgeX V1 is a high-performance decentralized exchange (DEX) operating as a central limit order book (CLOB) model. Each trade on edgeX V1 is settled on the Ethereum, leveraging the StarkEx Layer 2 engine for on-chain validation of trading logic, preventing fraudulent or incorrect transactions. This robust validation process is reinforced by third-party committees, which batch trades into the Ethereum blockchain, ensuring transparency and integrity. The publication of zero-knowledge proofs on the Ethereum Layer 1 blockchain adds a layer of security, validating Layer 2 transactions and safeguarding their integrity. edgeX V1 utilizes independent oracle providers to source mark prices, effectively mitigating the risk of price manipulation and ensuring accurate reflection of asset values. This mechanism protects user positions from price manipulation and liquidation issues prevalent in centralized exchanges. The high-performance trading engine of edgeX V1 delivers a seamless and exceptionally fast trading experience. When scale up to 10 shards, edgeX achieves an impressive throughput of 20,000 transactions per second (tps) and boasts the lowest match latency in the industry. These performance metrics highlight edgeX's commitment to providing a top-tier trading environment for professional perpetual traders. edgeX V1's technical architecture balances the security and transparency inherent to decentralization with the speed and efficiency required for high-frequency trading. [PreviousedgeX V1chevron-left](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1) [NextSelf-Custodychevron-right](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/self-custody) Last updated 1 year ago --- # Decentralized Oracle Pricing | edgeX Docs **Oracle Price** edgeX's Oracle Price is sourced from the independent provider [Storkarrow-up-right](https://www.stork.network/) and is used to calculate margin requirements and liquidation prices. The estimated liquidation price is influenced by the user’s leverage and margin. If the Oracle Price reaches this liquidation threshold, the position will undergo forced liquidation. Oracle Prices are crucial for maintaining the integrity of the trading platform by providing reliable price data that is resistant to manipulation. **The Importance of Oracle Prices and How Decentralized Oracles Prevent Price Manipulations** In the cryptocurrency market, centralized exchanges (CEXs) have historically played a significant role. However, concerns about potential price manipulation and malicious flash crashes on some centralized platforms have garnered widespread attention. These incidents can lead to unwarranted liquidations and substantial financial losses for traders. In this context, decentralized oracles are emerging as a promising solution to enhance market integrity. The Challenge of Malicious Flash Crashes on Centralized Exchanges A malicious flash crash refers to sudden, abnormal surges or drops in asset prices on trading charts. These abrupt movements can trigger traders’ stop-loss orders unexpectedly, leading to forced liquidations and financial losses. Causes may include market manipulation, insufficient liquidity, algorithmic trading errors, or technical glitches within the exchange. Given that CEXs have full control over their platforms, it becomes challenging for external parties and traders to verify the true origins of these anomalies. In contrast, decentralized exchanges like edgeX can integrate decentralized oracles into their platforms. Decentralized oracles are systems that collect and verify data through distributed networks, aiming to provide trustworthy and manipulation-resistant external information to decentralized applications. Unlike traditional centralized oracles, these decentralized counterparts rely on multiple independent data sources and validation nodes to ensure data accuracy and reliability. **How Decentralized Oracles Prevent Malicious Price Manipulations** 1: Decentralized Data Sources By aggregating price information from multiple mainstream exchanges and markets, decentralized oracles reduce the risk of relying on a single, potentially compromised data source. Even if one exchange experiences abnormal volatility, the oracle can provide accurate pricing by referencing alternative sources. This diversification enhances the robustness of the price data and mitigates the impact of localized anomalies. 1. Consensus Mechanism Verification Nodes within the oracle network use consensus algorithms to validate collected data, filtering out anomalous or outlier price points. This process ensures that the final price feed is both accurate and trustworthy. By requiring agreement among multiple nodes, the oracle network minimizes the risk of false data being introduced into the system. 1. Transparency and Auditability All data collection and verification steps are recorded, offering complete transparency. This auditability enhances the system’s credibility and minimizes the possibility of undetected manipulation. Traders and external parties can verify the integrity of the data, fostering trust in the platform. edgeX Uses Stork, the Most Battle-Proven Decentralized Oracle Provider for Perp DEX Stork is an oracle that offers unprecedented speed and pricing expertise to the world of leveraged derivatives trading. Stork serves as the backbone for over 35 perpetual decentralized exchanges (Perp DEX), supporting over 2,000 assets and securing over $300 billion in trading volume. **Technical Architecture** Stork is built on robust architecture designed for speed, reliability, and flexibility: **Decentralized Publisher Network:** The network of data providers supplies proprietary market data, signed in a chain-compatible format. **High-Frequency Oracle:** Redundant, geo-distributed infrastructure powers low-latency WebSockets for access to all price feeds. **Off-Chain Component:** Decentralized applications (dApps) integrate with a WebSocket to determine which updates should be sent on-chain. **On-Chain Contract:** Utilizes Stork’s On-Chain Verifier to ensure only approved publisher prices are considered. **Stork On-Chain Verifier:** Verifies the validity, source, and calculation method of published prices on-chain. For more details about Stork, visit the [Stork documentationarrow-up-right](https://docs.stork.network/) . **edgeX’s Commitment to Promoting Fair Competition for All Traders** edgeX utilizes the decentralized oracle Stork to obtain independent and precise price data, ensuring accurate pricing and mitigating liquidation risks stemming from malicious price swings. By minimizing opportunities for price manipulation, decentralized oracle integration contributes to a fairer trading environment for all traders. [PreviousSelf-Custodychevron-left](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/self-custody) [NexteStrategychevron-right](https://edgex-1.gitbook.io/edgex-documentation/estrategy) Last updated 1 year ago --- # eStrategy | edgeX Docs **Overview** #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/estrategy#edgex-estrategy) **edgeX eStrategy** **Liquidity Engine and Strategy Trading Protocol Library in the edgeX Ecosystem** As a liquidity provision and strategy trading protocol, **eStrategy** not only supplies the edgeX trading system with robust market depth but also enhances capital efficiency and risk management through advanced strategy design. In its initial phase, **eStrategy** supports the **Automated Market Maker (AMM) strategy**. This strategy enhances market liquidity by integrating with the platform’s AMM, thereby improving execution quality for traders by minimizing price impact. Depositors assume a share of the AMM’s positions, effectively acting as counterparties to other edgeX traders. For instance, if an edgeX trader takes a short position, depositors will hold the corresponding long position. The revenue of edgeX eLP is derived from **passive market-making profits, liquidation fees, and a portion of the platform’s trading fees**. In the second phase, **eStrategy** will introduce **customizable pools managed by individual traders or institutions**. Users can allocate funds to specific pools based on their historical performance and risk profiles. Each strategy carries inherent risks. Users should conduct thorough due diligence on a vault’s performance history and associated risks before making a deposit. **Lock-up Period and Withdrawal Rules** Users can submit withdrawal requests at any time; however, a maximum **2-day redemption lock-up period** applies. This is because positions corresponding to the withdrawal request must be closed before funds can be released. For example, if you make a deposit on **March 15 at 08:00**, you will be able to withdraw your funds no later than **March 17 at 08:00**. Once the lock-up period ends, the funds will be automatically transferred to your account. Please note that no returns will be accrued during the redemption period. What happens to open positions in a vault when someone withdraws? When a user withdraws from a vault, open positions remain unaffected if there is sufficient initial margin to support the set leverage. If the initial margin is insufficient, a proportional amount of all open positions is closed. For example, if a user represents 20% of the vault's total deposits, 20% of all open positions will be closed upon withdrawal, keeping liquidation prices relatively stable. Vault leaders can also configure the vault to always close positions proportionally during withdrawals to maintain consistent liquidation prices. Additionally, if a withdrawal causes insufficient margin, open margin-based orders will be canceled, starting with those using the least margin. **FAQ** **What are the risks of participating in the project?** Despite professional strategy management, there are still market risks, such as high volatility and liquidity risks in the cryptocurrency market. In addition, changes in regulatory policies may also have an impact on the project. **Where does APR come from?** APR comes from AMM income, liquidation fees. **How to Participate in the Vault** * Deposit to Vault: Please first deposit funds to your Main Account, then go to the eStrategy page and complete the transfer into the eLP Vault. * Withdraw from Vault: When you submit a withdrawal request from the Vault, your funds will be transferred back to your Main Account within 48 hours. [PreviousDecentralized Oracle Pricingchevron-left](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/decentralized-oracle-pricing) [NextCommunitychevron-right](https://edgex-1.gitbook.io/edgex-documentation/community) Last updated 2 months ago --- # Community | edgeX Docs [EDGEchevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/edge) [Maru 🦭chevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/maru) [XP (Pre TGE Season)chevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/xp-pre-tge-season) [PreviouseStrategychevron-left](https://edgex-1.gitbook.io/edgex-documentation/estrategy) [NextEDGEchevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/edge) Last updated 1 month ago --- # Maru 🦭 | edgeX Docs **Manifesto** Maru, the 99% everyday trader. The ones trading between subway stops, coffee lines, and sleepless nights. Wall Street had its century. Marble lobbies. Bloomberg terminal. Suits and ties. They wrote the rules. Told the story. Most traders were never invited. The 99% stayed invisible. Until now. Blockchain changed the map. Mobile-first. Instant execution. Deep liquidity. Leverage in your pocket. No desks. No offices. No gatekeepers. Maru doesn’t sit behind a terminal. Maru isn’t a whale or a suit. Maru trades in motion. in coffee shops, on lunch breaks, on the walk home. Trading-as-a-Habit, always on, always moving. Trading-as-Culture, an identity, a badge. Trading-as-Esport, tournaments, city by city. MARU is for anyone who is underestimated, undercapitalized, overlooked, and traded anyway. This time, the 99% write the story. From 2025 on, MARU is the flag. **Tokenomics Overview:** * **Total Supply:** 10,000,000,000 MARU * **70%** Airdrop + Ecosystem Incentives (multi-round distribution to community) * **20%** Liquidity (unlocked) * **10%** Core Contributors (locked) ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-45d20e8e9abd51c5c4867ab3c68b0c5c864a0674%252FMaru_1116.jpeg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=e307f836&sv=2) [PreviousEDGEchevron-left](https://edgex-1.gitbook.io/edgex-documentation/community/edge) [NextXP (Pre TGE Season)chevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/xp-pre-tge-season) Last updated 25 days ago --- # Self-Custody | edgeX Docs edgeX, a high-performance decentralized derivatives trading platform, is advancing user asset security and operational transparency by integrating StarkEx’s Layer 2 (L2) scalability solution. Developed by Israeli zero-knowledge proof (ZK) specialist StarkWare, StarkEx employs ZK-Rollup technology to enhance the Ethereum blockchain’s capabilities. This integration ensures that users maintain self-custody over their assets while benefiting from increased transaction speeds and reduced costs. **Leveraging StarkEx for Scalability and Security** At the core of edgeX V1’s trading and settlement system is StarkEx’s ZK-Rollup technology, which aggregates multiple transactions off-chain and then verifies them on-chain using zero-knowledge proofs. This approach significantly reduces the computational load on the Ethereum mainnet, enabling higher throughput without compromising security. Since its deployment in 2020, StarkEx has processed over **$1.3 trillion** in trading volume for more than **200,000 users** worldwide, making it one of the most battle-tested L2 solutions available. By adopting this technology, edgeX ensures that all transactions are securely validated and that the final state of transactions is both transparent and immutable. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-45d5fa452ea1566cff0de278b161fa6c8c6d50da%252FStarkEx_flow.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=b39ea336&sv=2) **System Operational Flow** **Overview** 1. Transaction Execution: Users initiate trades on edgeX, which are executed by the platform and sent to the StarkEx service for processing. 2. Batch Processing and Proof Generation: The StarkEx service batches these transactions and forwards them to the Shared Prover (SHARP) system. SHARP generates zero-knowledge proofs (STARK proofs) to validate the integrity of the batched transactions. 3. On-Chain Verification: The generated proofs are submitted to the on-chain STARK verifier. This verifier ensures that the proofs are valid before any state changes are accepted on the Ethereum blockchain. 4. State Update Submission: Upon successful verification, the StarkEx service submits the updated state to the StarkEx smart contract on the Ethereum mainnet. The contract accepts this new state only if the associated proof has been validated, ensuring the legitimacy of all recorded transactions. This meticulous process upholds the platform’s security and accuracy, providing users with confidence in the system’s reliability. Curious to learn more about StarkEx? Visit their comprehensive [documentationarrow-up-right](https://docs.starkware.co/starkex/index.html) for detailed insights. **User Asset Self-Custody: Control at the Forefront** Unlike centralized exchanges that hold custody of user funds, edgeX utilizes Ethereum smart contracts to store and manage assets transparently via the StarkEx solution. Users deposit their funds directly into these smart contracts on the Ethereum mainnet before engaging in any trading activities on the edgeX platform. Each transaction requires the user’s approval through their Ethereum private key, ensuring that only the account owner can authorize movements of their assets. This non-custodial approach means that even while assets are managed within the L2 system, users retain full control. Even in black swan scenarios where the L2 operator (edgeX) might experience downtime or fail to process transactions promptly, users can independently close their positions and withdraw their funds using their private keys. This mechanism provides an additional layer of security and autonomy, safeguarding user assets against potential operational risks. edgeX’s reliance on user signatures for all L2 account operations makes unauthorized transactions virtually impossible. The synchronization of L2 states with Ethereum’s Layer 1 custody contracts further ensures that all asset movements are transparent and verifiable on the blockchain. By design, no entity can construct fraudulent transactions to misappropriate user assets. **Anti-Censorship Measures and Forced Withdrawals** edgeX’s architecture includes robust features to protect user assets through anti-censorship mechanisms, ensuring that users can access their funds without interference at any time: * **Forced Withdrawals**: If, for any reason, edgeX does not process a user’s withdrawal request within a predetermined timeframe, users can initiate a forced withdrawal. This process allows them to interact directly with the smart contract to retrieve their assets, bypassing the operator. These features ensure that users have uninterrupted access to their assets, even in the face of unforeseen events or platform disruptions. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-83e36d891d5312ef9ac6d8c562aae3722fb61e31%252Fforced-operation.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7341ebf9&sv=2) For a step-by-step guide on the forced withdrawal process, please check out the [StarkEx Forced Operations pagearrow-up-right](https://docs.starkware.co/starkex/perpetual/performing-forced-transactions.html) . **Commitment to Transparency and User Empowerment** edgeX’s integration of StarkEx technology represents a significant advancement in exchange technology. By prioritizing self-custodial assets and incorporating mechanisms for anti-censorship, edgeX empowers users with unparalleled control over their assets. [PreviousV1 Technical Architecturechevron-left](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/v1-technical-architecture) [NextDecentralized Oracle Pricingchevron-right](https://edgex-1.gitbook.io/edgex-documentation/edgex-v1/decentralized-oracle-pricing) Last updated 1 year ago --- # XP (Pre TGE Season) | edgeX Docs As edgeX transitions from a Perp DEX to the EDGE Chain, the EDGE Chain is progressing from closed beta toward open beta. A broader liquidity network is taking shape, supported by both infrastructure maturity and continued expansion at the application layer. The Pre TGE Season is designed to reward organic platform usage through XP, the campaign’s incentive unit. XP will be distributed on a weekly basis until the TGE, which is expected to occur on or before March 31. For additional details, please visit the XP page: [https://pro.edgex.exchange/xparrow-up-right](https://t.co/a1PnrgUCUG) **Timeline** The Pre-TGE Season will conclude prior to the TGE. The latest possible TGE date is March 31. **EDGE Token Allocation (Excluding the allocation reserved for users from previous seasons)** Up to 5% of the total EDGE token supply is allocated to the Pre-TGE Season. If the TGE occurs earlier, the Season and corresponding rewards will conclude accordingly: TGE on or before Feb 3: 2% allocation TGE on or before Mar 3: 3.5% allocation TGE on or before Mar 31: 5% allocation **Token Release Schedule** Pre-TGE Season rewards will be released 24 hours after TGE The first 24 hours after TGE are reserved for the release of tokens allocated to users from previous season **XP Points System** The Pre-TGE Season introduces a new points unit: XP, which is separate from previous points systems. In addition to XP, users may also receive Maru rewards. **XP Multipliers & Boosts** Mobile Trading Multiplier Trades executed via the mobile app earn a 1.2× XP multiplier. Maru Holding Bonus Users holding Maru are eligible for additional XP boosts: 50,000 MARU: +5% XP 200,000 MARU or more: +10% XP 500,000 MARU or more: +15% XP Messenger XP Boost Celestial & Luna Messenger: +10% XP Messenger: +5% XP Referral XP Boost Users invited by a Messenger receive +5% XP Users invited by a Celestial or Luna Messenger receive +10% XP Stackable Multipliers XP boosts are stackable. Example: If a user trades on mobile (1.2×) and holds 200,000 MARU (+10%), Their total XP multiplier will be: 1.2 × 1.1 = 1.32× XP [PreviousMaru 🦭chevron-left](https://edgex-1.gitbook.io/edgex-documentation/community/maru) [NextGetting startedchevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started) Last updated 10 days ago --- # EDGE | edgeX Docs The total supply of EDGE is 1,000,000,000 tokens: * 25.0% to the genesis distribution * Up to 5% to the Pre TGE Season * 25.0% to core contributors * 10.0% to the Foundation * 35.0% to future ecosystem and community ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252FPTKxvJhLaUQyZt32s6xN%252FToken.png%3Falt%3Dmedia%26token%3D62c8b8bb-1b3d-4bef-a3ac-23a6d94b6a96&width=768&dpr=4&quality=100&sign=26c22fb9&sv=2) Tokens allocated to the genesis distribution will be fully unlocked at genesis. Pre-TGE Season allocation will be fully unlocked 24 hours after the genesis. Tokens allocated to core contributors will be subject to a 2-year lock-up following genesis, followed by a 2-year vesting schedule. [PreviousCommunitychevron-left](https://edgex-1.gitbook.io/edgex-documentation/community) [NextMaru 🦭chevron-right](https://edgex-1.gitbook.io/edgex-documentation/community/maru) Last updated 10 days ago --- # Accounts & Wallets | edgeX Docs **Connect Wallet** Click "Connect Wallet" ➡️ Select the wallet you prefer to use **For Standard Wallet Users:** 1. An EVM Wallet: If you don't already have an EVM wallet, such as MetaMask, you can easily set one up by visiting [MetaMask's official websitearrow-up-right](https://metamask.io/) . 2. USDT and ETH in Your EVM Wallet: 1. USDT: serves as collateral for trading. 2. ETH: used to cover gas fees when depositing USDT. **Wallet Login:** Login with your wallet and select an address you want to connect ➡️ Click "NEXT" ➡️ Complete the signature. **For MPC Login Users:** To create your wallet using your email: 1. Click the "Connect" button and enter your email address. After pressing "Submit," a 6-digit code will be sent to your email within a few seconds. Enter this code to log in. 2. Once connected, you need to deposit USDT. A new blockchain address is automatically created for your email address. Send USDT over the Arbitrum network to this address. You can do this easily from a centralized exchange or another standard wallet. **MPC Login:** Select MPC Wallet (email) login ➡️ Enter your email ➡️ Enter the verification code ➡️ edgeX will generate an EVM address for you. [PreviousGetting startedchevron-left](https://edgex-1.gitbook.io/edgex-documentation/getting-started) [NextDeposits and Withdrawalschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals) Last updated 1 year ago --- # Getting started | edgeX Docs [Accounts & Walletschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/accounts-and-wallets) [Deposits and Withdrawalschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals) [PreviousXP (Pre TGE Season)chevron-left](https://edgex-1.gitbook.io/edgex-documentation/community/xp-pre-tge-season) [NextAccounts & Walletschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/accounts-and-wallets) Last updated 1 year ago --- # Deposits and Withdrawals | edgeX Docs [Depositschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/deposits) [Withdrawalschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/withdrawals) [PreviousAccounts & Walletschevron-left](https://edgex-1.gitbook.io/edgex-documentation/getting-started/accounts-and-wallets) [NextDepositschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/deposits) Last updated 1 year ago --- # Deposits | edgeX Docs **Ethereum Deposits:** After connecting their wallet to edgeX, users can deposit USDT into their account by sending a transaction to the Ethereum mainnet. After the deposit transaction is mined, it typically requires approximately 15 confirmations (around 5 minutes) on the Ethereum network for the funds to become available for trading on edgeX. **Non-Ethereum Deposits:** edgeX has built multiple asset pools on different chains. When users deposit assets from a non-Ethereum chain, edgeX transfers an equivalent amount of assets to the user's L2 account through the corresponding asset pool on the respective chain. For USDT deposits from a non-Ethereum chain, edgeX transfers the equivalent amount to the user's L2 account through its asset pool. \*Kindly note that Ethereum deposits are processed instantly, regardless of the amount. However, for large one-time deposits (over $300K) on non-Ethereum chains, fund rebalancing between L1 and L2 may take up to 2 hours before the deposit is viewable on edgeX. **Deposit Fees:** Users are only responsible for the gas fees associated with the corresponding blockchain when making a deposit. Our platform does not charge any deposit fees. **Quick Guide:** For Wallet Users: 1: After connecting your wallet, click "Deposit." 2: Directly enter the amount to be deposited ➡️ First-time deposit requires USDT Approval ➡️ Approve in the wallet pop-up page 3: After approval, click "Deposit" ➡️ Complete the deposit. For MPC Account Users: Copy the created address and deposit from a centralized exchange account to the copied address via the **Arbitrum chain,** or use another wallet address to deposit through the **Arbitrum chain.** [PreviousDeposits and Withdrawalschevron-left](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals) [NextWithdrawalschevron-right](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/withdrawals) Last updated 1 year ago --- # Withdrawals | edgeX Docs **Ethereum Withdrawals:** For maximum security, all transactions are batched, verified rigorously, and then settled on Ethereum L1. The process could take up to 14 hours. **Non-Ethereum Withdrawals:** Users can withdraw assets directly to different EVM-compatible chains on edgeX. When withdrawing assets to an EVM-compatible chain, the asset is first transferred to edgeX's L2 asset pool. Subsequently, edgeX transfers the corresponding amount of assets to the user's address from its asset pool on the respective withdrawal chain. Please note that the maximum withdrawal amount is limited not only by the total assets available in a user's account but also by the maximum available amount in the chain's asset pool. **Withdrawal Fees:** For ETH standard withdrawals, users just need to cover the gas fees themselves. For non-ETH withdrawals, a cross-chain withdrawal fee of 0.1% applies, with a minimum fee of 1 USD. **Quick Guide** For Wallet Users: You can select the chain for withdrawal from Ethereum, BNB Chain, or Arbitrum ➡️ Enter the withdrawal amount ➡️ Click "Withdraw" ➡️ Confirm in the approval pop-up page ➡️ Complete the withdrawal. For MPC Account Users: Withdrawals can only be made via Arbitrum. ➡️ Enter the withdrawal amount. ➡️ Input the Arbitrum address for the withdrawal. ➡️ Click "Withdraw." ➡️ Confirm in the pop-up confirmation window. ➡️ Complete the withdrawal. [PreviousDepositschevron-left](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/deposits) [NextTradingchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading) Last updated 2 months ago --- # Trading Accounts & Margin | edgeX Docs **Collateral:** edgeX supports USDT as the primary collateral for trading. **Margin Mode and Trading Accounts:** By default, edgeX operates with a cross-margin system, allowing collateral to be shared among all positions within a single trading account. Users can also opt for isolated margins by creating separate trading accounts under the same wallet using the sub-accounts feature. Users can establish up to 20 trading accounts with independent margins per single wallet. The liquidation of one trading account does not affect the liquidation of other trading accounts associated with the same wallet. Transfers of Available Balance for Withdrawals (as defined below) between trading accounts are fee-free. However, such transfers can impact the margin ratio and potentially trigger liquidation for the involved accounts. For comprehensive details on the liquidation process, please refer to the Liquidation Logic section. **Margin, Profit & Loss (P&L) Calculations:** For USDT Perpetual Contracts, margin and P&L are calculated in USDT. This eliminates the need for traders to hedge their positions against non-stablecoin cryptocurrency risks. The P&L chart follows a linear curve; for instance, if the price moves by 100 USDT when trading 1 BTC, the trader's P&L will see a change of 100 USDT. **Hedge Mode:** Users can create sub-accounts to emulate Hedge Mode behavior, allowing them to simultaneously open long and short positions in the same market. [PreviousTradingchevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading) [NextTrading Ruleschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-rules) Last updated 1 year ago --- # Trading Rules | edgeX Docs The trading rules encompass various limitations and guidelines applicable to the markets listed on the exchange. Users can access detailed, market-specific trading rules through the 'Risk Limit' tab on the main trading screen. [PreviousTrading Accounts & Marginchevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-accounts-and-margin) [NextLast Price, Index Price & Oracle Pricechevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/last-price-index-price-and-oracle-price) Last updated 1 year ago --- # Trading | edgeX Docs [Trading Accounts & Marginchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-accounts-and-margin) [Trading Ruleschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-rules) [Last Price, Index Price & Oracle Pricechevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/last-price-index-price-and-oracle-price) [Trading Feeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-fees) [Funding Feeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/funding-fees) [Order Typeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/order-types) [Take Profit & Stop Losschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/take-profit-and-stop-loss) [Liquidation Logicchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/liquidation-logic) [TradingViewchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/tradingview) [Stock Perpetualchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual) [PreviousWithdrawalschevron-left](https://edgex-1.gitbook.io/edgex-documentation/getting-started/deposits-and-withdrawals/withdrawals) [NextTrading Accounts & Marginchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-accounts-and-margin) --- # Last Price, Index Price & Oracle Price | edgeX Docs **Last Price** The Last Price represents the most recent transaction price of a contract, updated in real time and displayed in the order book. This metric is essential for traders engaged in day trading and scalping strategies, as it reflects the latest market activity. By providing immediate insights into current trading conditions, the Last Price enables traders to make timely decisions based on the most recent data. **Index Price** The Index Price is derived from the weighted average of prices collected from multiple major crypto exchanges, including Binance, OKX, Bybit, and Coinbase. These weights are dynamically adjusted every four hours to align with fluctuations on these platforms. Utilizing the Index Price helps users sidestep exchange-specific anomalies, making it advantageous for swing trading positions. Notably, this aggregated price is primarily used to calculate funding fees, ensuring fair funding rates across the market. **Oracle Price** The Oracle Price is sourced from the independent provider Stork and is used to calculate margin requirements and liquidation prices. The estimated liquidation price is influenced by the user’s leverage and margin. If the Oracle Price reaches this liquidation threshold, the position will undergo forced liquidation. Oracle Prices are crucial for maintaining the integrity of the trading platform by providing reliable price data that is resistant to manipulation. For a comprehensive understanding of Stork's methodology for determining the Oracle Price, please refer to Stork's [documentationarrow-up-right](https://docs.stork.network/) . [PreviousTrading Ruleschevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-rules) [NextTrading Feeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-fees) Last updated 1 year ago --- # Order Types | edgeX Docs edgeX offers three order types for perpetual contract trades: Limit Orders, Market Orders, and Conditional Orders. **1\. Limit Order** A limit order allows you to place an order at a specific price or a more favorable price. However, there is no guarantee that a limit order will be filled, as it is only executed when the preferred price is reached. A limit order to buy will only be executed at the limit price or lower, and a limit order to sell will only be executed at the limit price or higher. Advanced limit order conditions can be set, such as time-in-force options to specify the order expiry time: * **Fill-or-Kill:** This order must be filled immediately or will be canceled. * **Good-Till-Time:** This order remains effective until fulfilled or until the maximum default period of 4 weeks is reached. * **Immediate-or-Cancel:** This order must be executed at the limit price or better immediately, or it will be canceled. Additionally, you can further customize your order by adding execution conditions with Post-Only or Reduce-Only: * **Post-Only:** Ensures your order is posted on the order book without being matched immediately, guaranteeing it is only executed as a maker order. * **Reduce-Only:** Dynamically reduces or adjusts your limit order's contract quantity, ensuring your position is not unintentionally increased. **2\. Market Order** A market order is a buy or sell order that gets filled at the best available price on the market after submission. Market orders are filled based on available liquidity, meaning the order is executed against the limit orders previously placed on the order book. The execution of a market order is guaranteed, but you cannot specify any prices. You can only specify the contract type and order amount, as all time-in-force and execution conditions are pre-set as a market order. **3\. Conditional Orders** Conditional orders are market or limit orders that have specific conditions attached to them, known as Conditional Market and Conditional Limit orders. This allows traders to set an additional trigger price condition on either market or limit orders. * **Conditional Market Order:** Unlike market orders, you can set a trigger price with conditional market orders. Once the trigger price is reached, the conditional market order will be filled immediately. * **Conditional Limit Order:** For a conditional limit order, you need to set two prices: a trigger price and a limit price. When the trigger price meets the last traded price, the order is submitted to the order book to await execution. The order is executed when the limit price, the maximum or minimum price at which you are willing to buy or sell contracts, is reached. [PreviousFunding Feeschevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/funding-fees) [NextTake Profit & Stop Losschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/take-profit-and-stop-loss) Last updated 1 year ago --- # Liquidation Logic | edgeX Docs edgeX employs Oracle Price to prevent liquidations triggered by low liquidity or market manipulation. In cross margin mode, a position is liquidated when the available balance reaches zero and the position margin drops to the maintenance margin level. [PreviousTake Profit & Stop Losschevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/take-profit-and-stop-loss) [NextTradingViewchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/tradingview) Last updated 1 year ago --- # Funding Fees | edgeX Docs Funding fees are a mechanism designed to ensure that the price of perpetual futures contracts aligns closely with the underlying asset's spot market price. These fees are periodically exchanged between traders holding long and short positions to incentivize the convergence of the contract price with the spot price. Mechanism of Funding Fees Funding fees are exchanged every hour between holders of long and short positions. The funding rate, which dictates the fee exchange, fluctuates in real-time. When the funding rate is positive at the time of settlement, long position holders pay the funding fees to short position holders. Conversely, when the funding rate is negative, short position holders pay the fees to long position holders. Only traders holding positions at the time of settlement are liable to either pay or receive funding fees. The calculation of the funding fees is based on the value of the position at the time of settlement, using the formula: _**Funding Fees=Position Value×Index Price×Funding Rate**_ **Funding Rate Calculation** The funding rate consists of two parts: **Interest Rate** and **Average Premium Index (P)**. edgeX calculates the **Interest Rate (I)** and the **Average Premium Index (P)** every minute by performing an N\*-Hour Time-Weighted-Average-Price (TWAP) over the series of minute rates. The closer to the funding fee settlement time, the greater the coefficient of the premium index. Taking an 4-hour funding interval as an example, the Average Premium Index (P) is calculated using the formula: (Premium Index \_1 \* 1 + Premium Index \_2 \* 2 +... + Premium Index \_240 \* 240)/(1 + 2 +... + 240). Each hour corresponds to 60-minute intervals. If the funding interval is every 4 hours, corresponding to 240 intervals (4 \* 60), then the coefficients would be 1, 2, ..., 240, forming an arithmetic progression starting from 1 with a common difference of 1. The Funding Rate is next calculated with the N\*-Hour Interest Rate component and the N\*-Hour premium/discount component. A +/−0.05% dampener is added. \*N = Funding Time interval. Suppose funding occurs once every 4 hours, N = 4. And if funding occurs once per hour, N = 1. Funding Rate (F) = Average Premium Index (P) + clamp (Interest Rate (I) − Average Premium Index (P), 0.05%, −0.05%) Hence, if (I − P) is within +/−0.05%, then F = P + (I − P) = I. In other words, the funding rate will equal the Interest Rate. This calculated funding rate is then applied to a trader’s position value to determine the funding fee to be paid or received at the funding timestamp **Interest Rate (I)** Formula Interest Rate (I) = Price Interest Rate Index − Base Rate Index/Fund Rate Interval * Interest Quote Index = The interest rate for borrowing the quoted currency * Interest Base Index = The interest rate for borrowing the base currency * Funding Interval = 24/Funding Time interval **Premium Index (P)** Formula Premium Index (P) = \[Max (0, Impact Bid Price − Index Price) − Max (0, Index Price − Impact Ask Price)\]/Index Price \* Impact Bid Price = The average fill price to execute the Impact Margin Notional on the Bid side \* Impact Ask Price = The average fill price to execute the Impact Margin Notional on the Ask side **Impact Margin Notional** (IMN) is the notion available to trade with a certain amount of margin. It’s used to determine how deep the order book is and to measure the Impact Bid or Ask Price. [PreviousTrading Feeschevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/trading-fees) [NextOrder Typeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/order-types) Last updated 1 year ago --- # Trading Fees | edgeX Docs The trading fees on edgeX are determined by the rolling traded volume over the past 30 days, with updates occurring daily at 00:00 (UTC). * **Maker Orders**: These orders add depth and liquidity to the order book as they are not executed and filled immediately. * **Taker Orders**: In contrast, these orders are executed and filled immediately, removing liquidity from the order book. * edgeX adopts a tiered fee structure based on a trader’s rolling 30-day trading volume. * The volume from sub-accounts is aggregated with the main account, ensuring that all sub-accounts benefit from the same fee tier. * Regarding gas fees for trade settlements, edgeX V1 will cover the gas costs on behalf of users. * For comprehensive information on VIP trading fees, please visit the [VIP page arrow-up-right](https://pro.edgex.exchange/vip) on our website. [PreviousLast Price, Index Price & Oracle Pricechevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/last-price-index-price-and-oracle-price) [NextFunding Feeschevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/funding-fees) Last updated 8 months ago --- # TradingView | edgeX Docs edgeX is excited to announce its integration with TradingView, bringing more advanced charts and technical analysis tools to our users. Through this collaboration, users will be able to access: 1. **Real-Time Market Analysis** Leverage TradingView’s professional candlestick charts and technical indicators to effortlessly track cryptocurrency price movements and refine trading strategies. For instance, by utilizing the [BTC/USDarrow-up-right](https://www.tradingview.com/symbols/BTCUSD/) price trend chart, users can gain a clear understanding of price fluctuations and the market dynamics of various cryptocurrencies, aiding them in making informed strategic trading decisions. 1. **Backtesting Functionality** Simulate trading decisions using historical data, enabling users to refine strategies and enhance their investment returns. 1. **Seamless Experience** In the future, users will have the capability to directly utilize TradingView tools within the edgeX interface, eliminating the need to switch between platforms, thus making operations more efficient and convenient. This successful integration with TradingView allows edgeX to offer even smarter and more convenient trading support to its users.With the integration of TradingView, edgeX is committed to providing a better trading experience, helping users trade more efficiently. [PreviousLiquidation Logicchevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/liquidation-logic) [NextStock Perpetualchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual) Last updated 1 month ago --- # Take Profit & Stop Loss | edgeX Docs **Take-Profit (TP):** Close your position once you've reached a specified level of profit. **Stop-Loss (SL):** Exit your position once the asset reaches a specified price to mitigate capital losses if the market moves against you. **Please note:** 1. **TP/SL Orders Function as Market Orders:** TP/SL orders are executed as market orders. 2. **Configuration After Execution:** You can only select and configure TP/SL options after your order is executed. For limit and conditional (market or limit) orders, you need to wait for the orders to transition from pending status (under Active or Conditional) to the "Positions" tab at the bottom of the trading page. As market orders are immediately executed at the best available price, you can set TP/SL immediately without waiting for a trigger price. 3. **Default Reduce-Only Orders:** By default, all TP/SL orders are Reduce-Only orders on edgeX. 4. **Setting TP/SL:** Check your open positions under the "Positions" tab and click on the \[+Add\] button to set TP/SL. 5. **Configuring TP/SL:** * A new window will pop up with the following fields: * All TP/SL orders can only be triggered by the Last Traded Price. * You can set either the Take-Profit or Stop-Loss sections, or both, if you want to apply both conditions to your orders. * Enter the Take-Profit trigger price and quantity. You can apply the TP condition to either a partial amount or the entirety of your order. * Similarly, for Stop-Loss, choose whether to apply the SL condition to a partial amount or the entirety of your order. * Click "Confirm" once you've verified the details of your order. 6. **Close By Limit Function:** Alternatively, you can use the Close By Limit function to set up Take-Profit orders, which serves the same purpose as Step 5 above. [PreviousOrder Typeschevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/order-types) [NextLiquidation Logicchevron-right](https://edgex-1.gitbook.io/edgex-documentation/trading/liquidation-logic) Last updated 1 year ago --- # Brand Kit | edgeX Docs [Brand Kit Linkarrow-up-right](https://edgex-brand-kit.notion.site/edgeX-Brand-Kit-23e62ca4b6108070ba51f2120d949bd0) [PreviousVision & Roadmapchevron-left](https://edgex-1.gitbook.io/edgex-documentation/vision-and-roadmap) [NextAuditschevron-right](https://edgex-1.gitbook.io/edgex-documentation/audits) Last updated 5 months ago --- # API Docs | edgeX Docs > **Warning:** This is a beta version and actively under development. Please open a ticket on [Discordarrow-up-right](https://discord.com/invite/edgex) > if you encounter any problems. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api#api-endpoint-domain) API Endpoint Domain #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api#http-endpoint) HTTP Endpoint Copy https://pro.edgex.exchange #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api#websocket-endpoint) WebSocket Endpoint Copy wss://quote.edgex.exchange #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api#authentication) Authentication > The authentication method for **third-party API** calls _**differs**_ from _web authentication_ methods. **Third-party API** calls only require two [authentication](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#auth-header) > request headers. [PreviousStock Perpetualchevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual) [NextAuthenticationchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/authentication) Last updated 1 year ago --- # Audits | edgeX Docs Platform: [Rigsec Audit Reportarrow-up-right](https://static.edgex.exchange/audit-reports/rigsec-edgex-audit-report.pdf) [SlowMist Audit Reportarrow-up-right](https://static.edgex.exchange/audit-reports/edgeX-SlowMist-Audit-Report.pdf) StarkEx: [PeckShield Audit Reportarrow-up-right](https://github.com/starkware-libs/starkex-contracts/blob/master/audit/StarkEx_v4.5_Audit_Report.pdf) [PreviousBrand Kitchevron-left](https://edgex-1.gitbook.io/edgex-documentation/brand-kit) [NextAboutchevron-right](https://edgex-1.gitbook.io/edgex-documentation/about) Last updated 1 month ago --- # Stock Perpetual | edgeX Docs Before you start trading Stock Perpetuals, please read the following trading rules carefully. These contracts are linked to underlying equity assets. During weekends and market holidays when the stock markets are closed, the trading mechanisms will be adjusted as follows: #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual#id-1.-trading-hours-and-market-status) 1\. Trading Hours & Market Status * 24/7 Trading: The perpetual market remains open 24/7, but price and volatility are significantly influenced by the status of the underlying stock market. * Market Status: The system determines the current status as "Market Open" or "Market Closed" in real-time, based on the official trading schedule of the relevant stock markets. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual#id-2.-special-rules-during-weekends-and-holidays) 2\. Special Rules During Weekends & Holidays **2.1 Order Types** To protect your assets from abnormal price fluctuations caused by low liquidity when the stock market is closed, the following rules apply: * Market Orders Rejected: The system will reject all Market Orders. * Limit Orders Only: Only Limit Orders are supported, and the limit price must fall within the designated price range. * Conditional Orders: All Conditional Orders (including Take Profit & Stop Loss (TP/SL), Conditional Limit Orders, and Conditional Market Orders) triggered during market closed period must follow the same rules: Market orders will be rejected, and Limit orders outside the price range will also be rejected. **2.2 Price Range & Mark Price** Price range Calculation: * Formula: Long price upper limit is Last Closing Index Price × (1 + 1 / Max Leverage of the pair); Short price lower limit is Last Closing Index Price × (1 - 1 / Max Leverage of the pair). * _Example: If the maximum leverage for a perp trading pair is 10x and the last closing Index Price is $100, buy limit orders cannot exceed $110 and sell limit orders cannot be below $90 during market closure._ Mark Price Adjustment: * During market closure, the Mark Price is also restricted within the price range. * Clamping Mechanism: The price change is limited to 0.5% every 3 seconds. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/trading/stock-perpetual#id-3.-risk-disclosure) 3\. Risk Disclosure * Order Execution Risk: Orders placed or triggered during weekends or holidays may be rejected if they do not meet the criteria mentioned above. * Price Deviation Risk: During market status transitions or periods of extreme volatility, the contract price may temporarily deviate from the external spot price. * Liquidation Risk: If your margin is insufficient, you may face the risk of forced liquidation [PreviousTradingViewchevron-left](https://edgex-1.gitbook.io/edgex-documentation/trading/tradingview) [NextAPI Docschevron-right](https://edgex-1.gitbook.io/edgex-documentation/api) Last updated 56 minutes ago --- # Public API | edgeX Docs [Meta Data APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) [Quote APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api) [Funding APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api) [PreviousL2 Signaturechevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/sign) [NextMeta Data APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) Last updated 1 year ago --- # Vision & Roadmap | edgeX Docs "Build something traders love to use." We aim to develop, step by step, from trader-centric applications to a comprehensive trader ecosystem with aggregated liquidity. This ecosystem will evolve into a "trading collage" made of permissionless financial modules, enabling developers and traders with minimal programming experience to create their own highly customizable and composable trader-centric applications tailored for diverse trading preferences. **Development Milestones** * Q1 2025: Perpetual and Spot Decentralized Exchange Web and Mobile Applications Launch * Q2 2025: eStrategy: On-Chain Asset Management eLP and Trading Strategy Vaults Launch * Q3 2025: edgeX V2: High-Performance Ethereum Layer 2 Blockchain Testnet Launch * Q4 2025: Permissionless Liquidity Modules Launch [PreviousWebsocket APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api) [NextBrand Kitchevron-right](https://edgex-1.gitbook.io/edgex-documentation/brand-kit) Last updated 8 months ago --- # Official Links | edgeX Docs Homepage: [https://www.edgex.exchange/arrow-up-right](https://www.edgex.exchange/) Twitter: [https://x.com/edgeX\_exchangearrow-up-right](https://x.com/edgeX_exchange) Discord: [https://discord.com/invite/edgexarrow-up-right](https://discord.com/invite/edgex) Blog: [https://medium.com/@edgexexchangearrow-up-right](https://medium.com/@edgexexchange) [PreviousAboutchevron-left](https://edgex-1.gitbook.io/edgex-documentation/about) [NextTerms of Usechevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/terms-of-use) Last updated 1 year ago --- # Private API | edgeX Docs [Account APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api) [Asset APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api) [Order APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api) [Transfer APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api) [Withdraw APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api) [PreviousFunding APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api) [NextAccount APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api) Last updated 1 year ago --- # About | edgeX Docs [Official Linkschevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/official-links) [Terms of Usechevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/terms-of-use) [Privacy Policychevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/privacy-policy) [PreviousAuditschevron-left](https://edgex-1.gitbook.io/edgex-documentation/audits) [NextOfficial Linkschevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/official-links) --- # Authentication | edgeX Docs Authentication is crucial for ensuring that only authorized users can access private APIs. This document outlines the authentication mechanisms used for public and private APIs. [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#public-api) Public API ------------------------------------------------------------------------------------------------------- Public APIs do not require authentication. These interfaces are accessible to anyone without the need for any credentials. Copy No authentication is required for public interfaces. [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#private-api) Private API --------------------------------------------------------------------------------------------------------- Private APIs require authentication to ensure that only authorized users can access them. Authentication is achieved using custom headers that include a timestamp and a signature. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#auth-header) Auth Header The following headers must be included in the request to authenticate access to private APIs: Name Location Type Required Description `X-edgeX-Api-Timestamp` header string must The timestamp when the request was made. This helps prevent replay attacks. `X-edgeX-Api-Signature` header string must The signature generated using the private key and request details. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#curl-example) CURL Example Copy curl --location --request GET 'https://pro.edgex.exchange/api/v1/private/account/getPositionTransactionPage?filterTypeList=SETTLE_FUNDING_FEE&size=10&accountId=544159487963955214' \ --header 'X-edgeX-Api-Signature: 06d28020763542c0afc296dc8743797c6fda8ea9727745b57b671f70326dfed6077cd******************************aff3162e39d05d9df1c3ddf9648650382d6e62ff1076b14c0e6c687088d3917d8490e5412a080a6e9ea940c720ddd' \ --header 'X-edgeX-Api-Timestamp: 1736313025024' ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#signature-elements) Signature Elements The signature is generated using the following elements: **Signature Element** **Description** `X-edgeX-Api-Timestamp` The timestamp when the request was made. This is retrieved from the request header. **Request Method (Uppercase)** The HTTP method of the request, converted to uppercase (e.g., GET, POST). **Request Path** The URI path of the request (e.g., `/api/v1/resource`). **Request Parameter/Body** The query parameters or request body, sorted alphabetically. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#request-parameter-to-signature-content) Request Parameter To Signature Content The request parameters are concatenated into a single string that forms the signature content. This string includes the timestamp, HTTP method, request path, and sorted query parameters or request body, ensuring the integrity and authenticity of the request. For example, the following request parameters are concatenated into a single string: > 1735542383256GET/api/v1/private/account/getPositionTransactionPageaccountId=543429922991899150&filterTypeList=SETTLE\_FUNDING\_FEE&size=10 #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#how-to-get-your-private-key) How To GET Your Private Key To sign messages, you need to obtain your private key. This key is used to generate signatures that authorize various actions on the platform. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-7d724b6b784a7e308cb4e836bb25f3c952fa0fcb%252F20250102-134437.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7fd8ba2f&sv=2) **How To GET Your Private Key** > **Warning:** Keep your private key secure and never share it with anyone. Anyone with access to your private key can sign messages on your behalf. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#private-api-example) Private API Example **Private API Auth Signature:** This is used for authentication. We do not want the hash computation to consume excessive CPU resources. Therefore, this will use SHA3 to hash the request body string before signing. We provide SDKs in multiple languages to help you get started quickly. > [Python SDK: make\_authenticated\_requestarrow-up-right](https://github.com/edgex-Tech/edgex-python-sdk/blob/main/edgex_sdk/internal/async_client.py#L161) > > [Golang SDK: requestInterceptorarrow-up-right](https://github.com/edgex-Tech/edgex-golang-sdk/blob/5a8c8617e8a934c85c8c8c85a1878543f0053b7b/sdk/client.go#L97) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#java-example) Java Example Below is a Java implementation of the Ecdsa signature algorithm. This example demonstrates how to sign a GET request using a private key. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#request-body-to-body-string-code-example) Request Body To Body String Code Example The following Java code example demonstrates how to convert a JSON request body into a sorted string format suitable for signature generation: ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#signature-algorithm) Signature Algorithm The signature algorithm used is Ecdsa (Elliptic Curve Digital Signature Algorithm). [PreviousAPI Docschevron-left](https://edgex-1.gitbook.io/edgex-documentation/api) [NextL2 Signaturechevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/sign) Last updated 2 months ago * [Public API](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#public-api) * [Private API](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#private-api) * [Auth Header](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#auth-header) * [CURL Example](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#curl-example) * [Signature Elements](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#signature-elements) * [Private API Example](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#private-api-example) * [Request Body To Body String Code Example](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#request-body-to-body-string-code-example) * [Signature Algorithm](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#signature-algorithm) Copy import java.math.BigInteger; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; import java.time.Duration; import org.web3j.abi.TypeEncoder; import org.web3j.abi.datatypes.Utf8String; import org.web3j.crypto.Hash; import org.web3j.utils.Numeric; import org.web3j.abi.datatypes.generated.Uint256; import com.starkbank.ellipticcurve.utils.RandomInteger; import com.starkbank.ellipticcurve.PrivateKey; import com.starkbank.ellipticcurve.Curve; import com.starkbank.ellipticcurve.Signature; import com.starkbank.ellipticcurve.Math; import com.starkbank.ellipticcurve.Point; public class EcdsaSignatureDemo { private static final BigInteger K_MODULUS = Numeric .toBigInt("0x0800000000000010ffffffffffffffffb781126dcae7b2321e66a241adc64d2f"); private static Curve secp256k1 = new Curve(BigInteger.ONE, new BigInteger("3141592653589793238462643383279502884197169399375105820974944592307816406665"), new BigInteger("3618502788666131213697322783095070105623107215331596699973092056135872020481"), new BigInteger("3618502788666131213697322783095070105526743751716087489154079457884512865583"), new BigInteger("874739451078007766457464989774322083649278607533249481151382481072868806602"), new BigInteger("152666792071518830868575557812948353041420400780739481342941381225525861407"), "secp256k1", new long[] { 1L, 3L, 132L, 0L, 10L }); // replace with your account id and private key private static final String AccountID = "****"; private static final String PrivateKey = "****"; public static void main(String[] args) { String host = "https://pro.edgex.exchange"; String path = "/api/v1/private/account/getAccountById"; String method = "GET"; String param = "accountId=" + AccountID; long timestamp = System.currentTimeMillis(); String message = timestamp + method + path + param; String signature = signParams(message); String requestUrl = host + path + "?" + param; try { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(30)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(requestUrl)) .timeout(Duration.ofSeconds(30)) .header("X-edgeX-Api-Signature", signature) .header("X-edgeX-Api-Timestamp", String.valueOf(timestamp)) .header("Content-Type", "application/json") .GET() .build(); HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println("Response Status: " + response.statusCode()); System.out.println("Response Body: " + response.body()); } catch (Exception e) { System.err.println("Request failed: " + e.getMessage()); e.printStackTrace(); } } private static String signParams(String message) { String msg = TypeEncoder.encodePacked(new Utf8String(message)); BigInteger msgHash = Numeric.toBigInt(Hash.sha3(Numeric.hexStringToByteArray(msg))); msgHash = msgHash.mod(K_MODULUS); // Please replace it with a real private key when actually using String privateKeyHex = PrivateKey; if (privateKeyHex.startsWith("0x")) { privateKeyHex = privateKeyHex.substring(2); } BigInteger mySecretKey = new BigInteger(privateKeyHex, 16); PrivateKey privateKey = new PrivateKey(secp256k1, mySecretKey); Signature signature = sign(msgHash, privateKey); return TypeEncoder.encodePacked(new Uint256(signature.r)) + TypeEncoder.encodePacked(new Uint256(signature.s)) + TypeEncoder.encodePacked(new Uint256(privateKey.publicKey().point.y)); } private static Signature sign(BigInteger numberMessage, PrivateKey privateKey) { Curve curve = privateKey.curve; BigInteger randNum = RandomInteger.between(BigInteger.ONE, curve.N); Point randomSignPoint = Math.multiply(curve.G, randNum, curve.N, curve.A, curve.P); BigInteger r = randomSignPoint.x.mod(curve.N); BigInteger s = numberMessage.add(r.multiply(privateKey.secret)).multiply(Math.inv(randNum, curve.N)) .mod(curve.N); return new Signature(r, s); } } Copy org.web3j core 4.10.3 com.starkbank.ellipticcurve starkbank-ecdsa 1.0.2 Copy import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.List; import java.util.TreeMap; import java.util.stream.Collectors; public class RequestBodyToString { private static final String EMPTY_STRING = ""; private static String getValue(JsonElement valueJson) { if (valueJson.isJsonNull()) { return EMPTY_STRING; } else if (valueJson.isJsonPrimitive()) { return valueJson.getAsString(); } else if (valueJson.isJsonArray()) { JsonArray valueArray = valueJson.getAsJsonArray(); if (valueArray.isEmpty()) { return EMPTY_STRING; } List values = new ArrayList<>(); for (JsonElement itemValue : valueArray) { values.add(getValue(itemValue)); } return String.join("&", values); } else if (valueJson.isJsonObject()) { TreeMap sortedDataMap = new TreeMap<>(); JsonObject valueJsonObj = valueJson.getAsJsonObject(); for (String key : valueJsonObj.keySet()) { sortedDataMap.put(key, getValue(valueJsonObj.get(key))); } return sortedDataMap.keySet().stream() .map(key -> key + "=" + sortedDataMap.get(key)) .collect(Collectors.joining("&")); } return EMPTY_STRING; } } --- # L2 Signature | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#how-to-sign-message) How To Sign Message --------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#overview) Overview In Layer 2 trading systems, to ensure transaction security and prevent unauthorized operations, critical operations (such as limit orders, transfers, withdrawals, etc.) require users to provide digital signatures to prove the legitimacy of the operations. This signature is passed through the `l2Signature` parameter. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#how-to-get-your-l2-private-key) How To GET Your L2 Private Key To generate l2Signature, you first need to obtain your L2 private key. This key is used to generate signatures that authorize various actions on the platform. ![](https://edgex-1.gitbook.io/edgex-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-7d724b6b784a7e308cb4e836bb25f3c952fa0fcb%252F20250102-134437.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7fd8ba2f&sv=2) **How To GET Your L2 Private Key** > **⚠️ Security Warning:** > > * Keep your private key secure and never share it with anyone > > * Anyone with access to your private key can sign messages and execute operations on your behalf > ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#signature-algorithm) Signature Algorithm #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#two-algorithms-are-used-in-the-signature-process) Two algorithms are used in the signature process: 1. **ECDSA** (Elliptic Curve Digital Signature Algorithm) is used to generate and verify signatures. 2. **Pedersen Hash** which consumes more CPU resources compared to regular Ethereum signatures, is used for message hashing. L2Signature generation follows these standard steps: 1. **Collect Parameters**: Gather all required parameters for the operation 2. **Calculate Hash**: Use Pedersen Hash to compute the message hash 3. **Generate Signature**: Use ECDSA algorithm and L2 private key to sign the hash 4. **Format Output**: Format the signature according to API requirements > [Python L2Signature Demoarrow-up-right](https://github.com/edgex-Tech/edgex-python-sdk/blob/main/edgex_sdk/internal/client.py#L111) > [Golang L2Signature Demoarrow-up-right](https://github.com/edgex-Tech/edgex-golang-sdk/blob/main/sdk/internal/utils.go#L30) > [Java Script L2Signature Demoarrow-up-right](https://www.npmjs.com/package/@starkware-industries/starkware-crypto-utils#signing-a-starkex-order) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#java-l2signature-example) Java L2Signature Example Below is a Java implementation of the Ecdsa signature algorithm. This example demonstrates how to sign a message using a private key. [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#signature-construction-guide) Signature Construction Guide --------------------------------------------------------------------------------------------------------------------------------- This section provides detailed instructions for constructing signatures for various actions on the platform. Each operation has specific message formats and parameter requirements. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#withdrawal-signature) Withdrawal Signature Used to authorize withdrawing assets from Layer 2 to an Ethereum address. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#parameters) Parameters * `assetIdCollateral` - Asset ID for the collateral token from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) * `positionId` - User's account ID in Layer 2 * `ethAddress` - Destination Ethereum address for withdrawal * `nonce` - Unique transaction identifier to prevent replay attacks * `expirationTimestamp` - Unix timestamp when signature expires * `amount` - Amount to withdraw in base units #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#calculation) Calculation The following TypeScript function constructs the withdrawal message for signing: ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#limit-order-signature) Limit Order Signature Used to authorize a limit order for perpetual trading. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#parameters-1) Parameters * `assetIdSynthetic` - Synthetic asset ID from [`meta_data.contractList.starkExSyntheticAssetId`](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) * `assetIdCollateral` - Collateral asset ID from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) * `isBuyingSynthetic` - `true` for buy orders, `false` for sell orders * `assetIdFee` - Fee token asset ID from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) * `amountSynthetic` - Amount of synthetic asset * `amountCollateral` - Amount of collateral asset * `maxAmountFee` - Maximum fee amount allowed * `nonce` - Unique order identifier * `positionId` - User's position ID * `expirationTimestamp` - Unix timestamp when order expires #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#calculation-1) Calculation The following TypeScript function constructs the limit order message for signing: ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#transfer-signature) Transfer Signature Used to authorize transfers between Layer 2 accounts. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#parameters-2) Parameters * `assetId` - Asset ID being transferred * `receiverPublicKey` - Recipient's public key * `senderPositionId` - Sender's position ID * `receiverPositionId` - Recipient's position ID * `srcFeePositionId` - Fee source position ID * `nonce` - Unique transfer identifier * `amount` - Transfer amount * `expirationTimestamp` - Unix timestamp when transfer expires * `assetIdFee` - Fee token asset ID (optional, default '0') * `maxAmountFee` - Maximum fee amount (optional, default '0') #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/sign#calculation-2) Calculation The following TypeScript function constructs the transfer message for signing: For more details on the signature construction, see the [StarkEx documentationarrow-up-right](https://docs.starkware.co/starkex/perpetual/signature_construction_perpetual.html) . [PreviousAuthenticationchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/authentication) [NextPublic APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api) Last updated 2 months ago * [How To Sign Message](https://edgex-1.gitbook.io/edgex-documentation/api/sign#how-to-sign-message) * [Overview](https://edgex-1.gitbook.io/edgex-documentation/api/sign#overview) * [How To GET Your L2 Private Key](https://edgex-1.gitbook.io/edgex-documentation/api/sign#how-to-get-your-l2-private-key) * [Signature Algorithm](https://edgex-1.gitbook.io/edgex-documentation/api/sign#signature-algorithm) * [Signature Construction Guide](https://edgex-1.gitbook.io/edgex-documentation/api/sign#signature-construction-guide) * [Withdrawal Signature](https://edgex-1.gitbook.io/edgex-documentation/api/sign#withdrawal-signature) * [Limit Order Signature](https://edgex-1.gitbook.io/edgex-documentation/api/sign#limit-order-signature) * [Transfer Signature](https://edgex-1.gitbook.io/edgex-documentation/api/sign#transfer-signature) Copy public static CreateOrderRequest signOrder( CreateOrderRequest request, Contract contract, Coin quotelCoin, PrivateKey privateKey) { BigInteger msgHash = L2SignUtil.hashLimitOrder( request.getSide() == OrderSide.BUY, BigIntUtil.toBigInt(quotelCoin.getStarkExAssetId()), BigIntUtil.toBigInt(contract.getStarkExSyntheticAssetId()), BigIntUtil.toBigInt(quotelCoin.getStarkExAssetId()), UnsignedLong.valueOf(new BigDecimal(request.getL2Value()) .multiply(new BigDecimal(BigIntUtil.toBigInt(quotelCoin.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.valueOf(new BigDecimal(request.getL2Size()) .multiply(new BigDecimal(BigIntUtil.toBigInt(contract.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.valueOf(new BigDecimal(request.getL2LimitFee()) .multiply(new BigDecimal(BigIntUtil.toBigInt(quotelCoin.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.fromLongBits(request.getAccountId()), UnsignedInteger.valueOf(request.getL2Nonce()), UnsignedInteger.valueOf(request.getL2ExpireTime() / (60 * 60 * 1000L))); Signature signature = Ecdsa.sign(msgHash, privateKey); return request.toBuilder() .setL2Signature(L2Signature.newBuilder() .setR(BigIntUtil.toHexStr(signature.r)) .setS(BigIntUtil.toHexStr(signature.s)) .build()) .build(); } public static BigInteger hashLimitOrder( boolean isBuyingSynthetic, BigInteger assetIdCollateral, BigInteger assetIdSynthetic, BigInteger assetIdFee, UnsignedLong amountCollateral, UnsignedLong amountSynthetic, UnsignedLong maxAmountFee, UnsignedLong positionId, UnsignedInteger nonce, UnsignedInteger expirationTimestamp) { BigInteger assetIdSell; BigInteger assetIdBuy; UnsignedLong amountSell; UnsignedLong amountBuy; if (isBuyingSynthetic) { assetIdSell = assetIdCollateral; assetIdBuy = assetIdSynthetic; amountSell = amountCollateral; amountBuy = amountSynthetic; } else { assetIdSell = assetIdSynthetic; assetIdBuy = assetIdCollateral; amountSell = amountSynthetic; amountBuy = amountCollateral; } BigInteger packedMessage0 = amountSell.bigIntegerValue(); packedMessage0 = packedMessage0.shiftLeft(64).add(amountBuy.bigIntegerValue()); packedMessage0 = packedMessage0.shiftLeft(64).add(maxAmountFee.bigIntegerValue()); packedMessage0 = packedMessage0.shiftLeft(32).add(nonce.bigIntegerValue()); BigInteger packedMessage1 = BigInteger.valueOf(3); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(32).add(expirationTimestamp.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(17); BigInteger msg = pedersenHash(assetIdSell, assetIdBuy); msg = pedersenHash(msg, assetIdFee); msg = pedersenHash(msg, packedMessage0); msg = pedersenHash(msg, packedMessage1); return msg; } public static BigInteger pedersenHash(BigInteger... input) { BigInteger[][] points = PEDERSEN_POINTS; Point shiftPoint = new Point(points[0][0], points[0][1]); for (int i = 0; i < input.length; i++) { BigInteger x = input[i]; for (int j = 0; j < 252; j++) { int pos = 2 + i * 252 + j; Point pt = new Point(points[pos][0], points[pos][1]); if (x.and(BigInteger.ONE).intValue() != 0) { shiftPoint = EcMath.add(shiftPoint, pt, Curve.secp256k1.A, Curve.secp256k1.P); } x = x.shiftRight(1); } } return shiftPoint.x; } public static Signature sign(BigInteger msgHash, PrivateKey privateKey) { Curve curve = privateKey.curve; BigInteger randNum = new BigInteger(curve.N.toByteArray().length * 8 - 1, new SecureRandom()).abs().add(BigInteger.ONE); Point randomSignPoint = EcMath.multiply(curve.G, randNum, curve.N, curve.A, curve.P); BigInteger r = randomSignPoint.x.mod(curve.N); BigInteger s = ((msgHash.add(r.multiply(privateKey.secret))).multiply(EcMath.inv(randNum, curve.N))).mod(curve.N); return Signature.create(r, s); } Copy // Construct withdrawal message for signing function getWithdrawalToAddressMsg({ assetIdCollateral, positionId, ethAddress, nonce, expirationTimestamp, amount }) { // Pack parameters into 256-bit words const w1 = assetIdCollateral; let w5 = BigInt(withdrawalToAddress); // Constant identifier w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 32) + BigInt(nonce); w5 = (w5 << 64) + BigInt(amount); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 49; // Calculate Pedersen hash return pedersen([\ pedersen([w1, ethAddress]),\ w5.toString(16)\ ]); } Copy function getLimitOrderMsg({ assetIdSynthetic, assetIdCollateral, isBuyingSynthetic, assetIdFee, amountSynthetic, amountCollateral, maxAmountFee, nonce, positionId, expirationTimestamp }) { // Determine sell/buy assets based on order side const [assetIdSell, assetIdBuy] = isBuyingSynthetic ? [assetIdCollateral, assetIdSynthetic] : [assetIdSynthetic, assetIdCollateral]; const [amountSell, amountBuy] = isBuyingSynthetic ? [amountCollateral, amountSynthetic] : [amountSynthetic, amountCollateral]; // Pack order data into 256-bit words const w1 = assetIdSell; const w2 = assetIdBuy; const w3 = assetIdFee; // Calculate message hash let msg = pedersen([w1, w2]); msg = pedersen([msg, w3]); let w4 = BigInt(amountSell); w4 = (w4 << 64) + BigInt(amountBuy); w4 = (w4 << 64) + BigInt(maxAmountFee); w4 = (w4 << 32) + BigInt(nonce); msg = pedersen([msg, w4.toString(16)]); let w5 = BigInt(limitOrderWithFees); // Constant identifier w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 17; return pedersen([msg, w5.toString(16)]); } Copy function getTransferMsg({ assetId, receiverPublicKey, senderPositionId, receiverPositionId, srcFeePositionId, nonce, amount, expirationTimestamp, assetIdFee = '0', maxAmountFee = '0' }) { // Pack transfer data into 256-bit words const w1 = assetId; const w2 = assetIdFee; const w3 = receiverPublicKey; let w4 = BigInt(senderPositionId); w4 = (w4 << 64) + BigInt(receiverPositionId); w4 = (w4 << 64) + BigInt(srcFeePositionId); w4 = (w4 << 32) + BigInt(nonce); let w5 = BigInt(transfer); // Constant identifier w5 = (w5 << 64) + BigInt(amount); w5 = (w5 << 64) + BigInt(maxAmountFee); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 81; // Calculate message hash let msg = pedersen([w1, w2]); msg = pedersen([msg, w3]); msg = pedersen([msg, w4.toString(16)]); return pedersen([msg, w5.toString(16)]); } --- # Websocket API | edgeX Docs ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#websocket-api-documentation) WebSocket API Documentation This document outlines the WebSocket API for both private (user account) and public (market data) information. ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#private-websocket-user-account-information-websocket-interface) (Private WebSocket) User Account Information WebSocket Interface #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#description) Description * **01.** Private WebSocket connections do not require subscriptions; data is automatically pushed after a successful connection. This includes both trading messages and custom messages. * **02.** Trading messages are identified with the type `type-event`. Other message types will be defined separately. * **03.** The `event` field within the body of a trading message can be one of the following: `Snapshot`, `ACCOUNT_UPDATE`, `DEPOSIT_UPDATE`, `WITHDRAW_UPDATE`, `TRANSFER_IN_UPDATE`, `TRANSFER_OUT_UPDATE`, `ORDER_UPDATE`, `FORCE_WITHDRAW_UPDATE`, `FORCE_TRADE_UPDATE`, `FUNDING_SETTLEMENT`, `ORDER_FILL_FEE_INCOME`, `START_LIQUIDATING`, `FINISH_LIQUIDATING`, or `UNRECOGNIZED`. * **04.** Ping-Pong Mechanism: * **Server Ping (Heartbeat):** * After a successful WebSocket connection, the server sends a Ping message at a fixed interval. The message body looks like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the server's timestamp when the Ping was sent. * The client must respond with a Pong message upon receipt, with a body like: `{"type":"pong","time":"1693208170000"}`. * If the server doesn't receive a Pong response after 5 consecutive Pings, the server will terminate the connection. * **Client Ping (Latency Measurement):** * After a successful WebSocket connection, the client can also initiate a Ping message with a body like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the client's timestamp when the Ping was sent. * The server will immediately respond with a Pong message, with a body like: `{"type":"pong","time":"1693208170000"}`. The `time` field in the Pong will match the `time` field in the client's Ping. * **05.** Authentication: * **Web:** * Browsers don't allow custom headers during WebSocket connections, so special handling is required. * Use the same authentication logic as HTTP. Create a JSON string using the `X-edgeX-Api-Signature`, `X-edgeX-Api-Timestamp` key-value pairs, for example: `{"X-edgeX-Api-Signature": "00e6b34cf9c3c0ca407cc2fe149fad836206c97201f236137c0e89fd079760470672b5257fa372710b5863d1ec6e0215e5bd6b2c3a319eda88886250a100524706ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d", "X-edgeX-Api-Timestamp": "1705720068228"}`. * Base64 encode this JSON string. * During the WebSocket request, pass the base64 encoded value in the `SEC_WEBSOCKET_PROTOCOL` header. * **App/API:** * App/API WebSocket connections can use [custom](https://edgex-1.gitbook.io/edgex-documentation/api/authentication#private-api) headers. Therefore, Apps/API can continue using the same authentication logic as HTTP, or they can use the Web authentication method described above. * WebSocket is a GET request and there is no need to sign the request body. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#url-api-v1-private-ws) URL: `/api/v1/private/ws` **Payload** ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#public-websocket-market-data-websocket-interface) (Public WebSocket) Market Data WebSocket Interface #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#url-api-v1-public-ws) URL: `/api/v1/public/ws` #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#description-1) Description * **01.** When subscribing or unsubscribing, the server will validate the channel. For invalid channels, the server will respond with an error message, for example: `{"type":"error","content":{"code":"INVALID_CONTRACT_ID""msg":"invalid contractId:100000001"}}` * **02.** The message structure for subscribing and unsubscribing is: `{"type": "subscribe", "channel": "ticker.10000001"}`. * **03.** Ping-Pong Mechanism: * **Server Ping (Heartbeat):** * After a successful WebSocket connection, the server sends a Ping message at a fixed interval. The message body looks like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the server's timestamp when the Ping was sent. * The client must respond with a Pong message upon receipt, with a body like: `{"type":"pong","time":"1693208170000"}`. * If the server doesn't receive a Pong response after 5 consecutive Pings, the server will terminate the connection. * **Client Ping (Latency Measurement):** * After a successful WebSocket connection, the client can also initiate a Ping message with a body like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the client's timestamp when the Ping was sent. * The server will immediately respond with a Pong message, with a body like: `{"type":"pong","time":"1693208170000"}`. The `time` field in the Pong will match the `time` field in the client's Ping. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#subscription-metadata) Subscription Metadata **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#subscribe-to-24-hour-market-ticker) Subscribe to 24-Hour Market Ticker **Channel Explanation** Channel Description ticker.{contractId} Subscribe to the ticker of contract `contractId` ticker.all Subscribe to the ticker of all contracts ticker.all.1s Subscribe to the ticker of all contracts (periodic push) **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#subscribe-to-k-line-data) Subscribe to K-Line Data **Channel Explanation** Channel Description kline.{priceType}.{contractId}.{interval} Subscribe to the `interval` K-Line of contract `contractId` based on `priceType` `**priceType**` **Parameter** Value Description LAST\_PRICE Last Price K-Line MARK\_PRICE Mark Price K-Line `**interval**` **Parameter** Value Description MINUTE\_1 1-Minute K-Line MINUTE\_5 5-Minute K-Line MINUTE\_15 15-Minute K-Line MINUTE\_30 30-Minute K-Line HOUR\_1 1-Hour K-Line HOUR\_2 2-Hour K-Line HOUR\_4 4-Hour K-Line HOUR\_6 6-Hour K-Line HOUR\_8 8-Hour K-Line HOUR\_12 12-Hour K-Line DAY\_1 Daily K-Line WEEK\_1 Weekly K-Line MONTH\_1 Monthly K-Line **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#subscribe-to-order-book) Subscribe to Order Book **Usage Instructions** > After a successful subscription, a full dataset is pushed once initially (`depthType=SNAPSHOT`), and subsequent pushes will be incremental updates (`depthType=CHANGED`). **Channel Explanation** Channel Description depth.{contractId}.{depth} Subscribe to the order book of contract `contractId` with a depth of `depth` `**depth**` **Parameter** Value Description 15 15 levels 200 200 levels **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#subscribe-to-latest-trades) Subscribe to Latest Trades **Channel Explanation** Channel Description trades.{contractId} Subscribe to the latest trades of contract `contractId` **Request** **Response** **Payload** [PreviousWithdraw APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api) [NextVision & Roadmapchevron-right](https://edgex-1.gitbook.io/edgex-documentation/vision-and-roadmap) Last updated 1 year ago * [WebSocket API Documentation](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#websocket-api-documentation) * [(Private WebSocket) User Account Information WebSocket Interface](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#private-websocket-user-account-information-websocket-interface) * [(Public WebSocket) Market Data WebSocket Interface](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api#public-websocket-market-data-websocket-interface) Copy { // The type for trading messages is "trade-event". Custom messages have their own defined type. "error" indicates an error message sent by the server. "type": "trade-event", // The body of a trading message has the structure below. The message structure for custom messages will be defined separately by the user. "content": { // The event that triggered the data update "event": "ACCOUNT_UPDATE", // Data update version "version": "1000", // Data "data": { // Account information "account": [\ ], // Collateral information "collateral": [\ ], // Collateral transaction details "collateralTransaction": [\ ], // Position information "position": [\ ], // Position transaction details "positionTransaction": [\ ], // Deposit records "deposit": [\ ], // Withdrawal records "withdraw": [\ ], // Transfer in records "transferIn": [\ ], // Transfer out records "transferOut": [\ ], // Order information "order": [\ ], // Trade details "orderFillTransaction": [\ ] } } } Copy { "type": "subscribe", "channel": "metadata" } Copy { "type": "subscribed", "channel": "metadata" } Copy { // error "type": "quote-event", "channel": "metadata", "content": { // snapshot quote-event "dataType": "Snapshot", // "channel": "metadata", "data": [\ {\ // Coin information\ "coin": [\ ],\ // Contract information\ "contract": [\ ]\ }\ ] } } Copy { "type": "subscribe", "channel": "ticker.10000001" } Copy { "type": "subscribed", "channel": "ticker.10000001" } Copy { "type": "payload", "channel": "ticker.10000001", "content": { "dataType": "Snapshot", "channel": "ticker.10000001", "data": [\ {\ "contractId": "string",\ "priceChange": "string",\ "priceChangePercent": "string",\ "trades": "string",\ "size": "string",\ "value": "string",\ "high": "string",\ "low": "string",\ "open": "string",\ "close": "string",\ "highTime": "string",\ "lowTime": "string",\ "startTime": "string",\ "endTime": "string",\ "lastPrice": "string"\ }\ ] } } Copy { "type": "subscribe", "channel": "kline.LAST_PRICE.10000001.MINUTE_1" } Copy { "type": "subscribed", "channel": "kline.LAST_PRICE.10000001.MINUTE_1" } Copy { "type": "payload", "channel": "kline.LAST_PRICE.10000001.MINUTE_1", "content": { "dataType": "Changed", "channel": "kline.LAST_PRICE.10000001.MINUTE_1", "data": [\ {\ "klineId": "1",\ "contractId": "10000001",\ "klineType": "MINUTE_1",\ "klineTime": "1688365544504",\ "trades": "5",\ "size": "10.1",\ "value": "100000",\ "high": "31200",\ "low": "31000",\ "open": "3150",\ "close": "31010",\ "makerBuySize": "5",\ "makerBuyValue": "150000"\ }\ ] } } Copy { "type": "subscribe", "channel": "depth.10000001.15" } Copy { "type": "subscribed", "channel": "depth.10000001.15" } Copy { "type": "payload", "channel": "depth.10000001.15", "content": { "dataType": "Snapshot", "channel": "depth.10000001.15", "data": [\ {\ "startVersion": "string",\ "endVersion": "string",\ "level": 0,\ "contractId": "10000001",\ "depthType": "Snapshot", // Data type: SNAPSHOT for full data, CHANGED for incremental data\ "bids": [\ [\ "26092",\ // Price\ "0.9014"\ // Size. A size of 0 indicates a deletion. Positive numbers mean increase. Negative numbers mean decrease.\ ],\ [\ "26091",\ "0.9667"\ ]\ ],\ "asks": [\ [\ "26093",\ "0.964"\ ],\ [\ "26094",\ "1.0213"\ ]\ ]\ }\ ] } } Copy { "type": "subscribe", "channel": "trades.10000001" } Copy { "type": "subscribed", "channel": "trades.10000001" } Copy { "type": "payload", "channel": "trades.10000001", "content": { "dataType": "Changed", "channel": "trades.10000001", "data": [\ {\ "ticketId": "1",\ "time": "1688365544504",\ "price": "30065.12",\ "size": "0.01",\ "value": "300.6512",\ "takerOrderId": "10",\ "makerOrderId": "11",\ "takerAccountId": "3001",\ "makerAccountId": "3002",\ "contractId": "10000001",\ "isBestMatch": true,\ "isBuyerMaker": false\ }\ ] } } --- # Funding API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#fundingpublicapi) FundingPublicApi --------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#get-get-latest-funding-rate-by-contract-id) GET Get Latest Funding Rate by Contract ID GET /api/v1/public/funding/getLatestFundingRate #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#request-parameters) Request Parameters Name Location Type Required Description contractId query string No Contract ID > Example Response > 200 Response Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "fundingTime": "1734595200000",\ "fundingTimestamp": "1734597720000",\ "oraclePrice": "101559.9220921285450458526611328125",\ "indexPrice": "101522.558968500",\ "fundingRate": "-0.00005537",\ "isSettlement": false,\ "forecastFundingRate": "-0.00012293",\ "previousFundingRate": "0.00000567",\ "previousFundingTimestamp": "1734595140000",\ "premiumIndex": "-0.00036207",\ "avgPremiumIndex": "-0.00032293",\ "premiumIndexTimestamp": "1734597720000",\ "impactMarginNotional": "100",\ "impactAskPrice": "101485.8",\ "impactBidPrice": "101484.7",\ "interestRate": "0.0003",\ "predictedFundingRate": "0.00005000",\ "fundingRateIntervalMin": "240",\ "starkExFundingIndex": "101559.9220921285450458526611328125"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734597737870", "responseTime": "1734597737873", "traceId": "5e27ebfb0ae79f51bbd347d2bf3585f9" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#response-codes) Response Codes Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemapagedatafundingrate%3E) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#get-get-funding-rate-history-by-contract-id-with-pagination) GET Get Funding Rate History by Contract ID with Pagination GET /api/v1/public/funding/getFundingRatePage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#request-parameters-1) Request Parameters Name Location Type Required Description contractId query string No Contract ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If not provided or empty, retrieves the first page filterSettlementFundingRate query string No If true, only query settlement funding rates (funding rate settlement occurs every 8 hours, with a predicted funding rate calculated every minute) filterBeginTimeInclusive query string No Start time. If not provided, retrieves the oldest data filterEndTimeExclusive query string No End time. If not provided, retrieves the latest data > Example Response > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#response-codes-1) Response Codes Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#pagedatafundingrate%3E) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#data-models) Data Models ----------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#pagedatafundingrate) pagedatafundingrate Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise indicates failure data [PageDataFundingRate](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemapagedatafundingrate) false none General pagination response errorParam object false none Parameter information in the error message requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemapagedatafundingrate) schemapagedatafundingrate Name Type Required Constraints Description dataList \[[FundingRate](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemafundingrate)\ \] false none Data list nextPageOffsetData string false none Offset data to retrieve the next page. Empty string if there is no next page #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#listfundingrate) listfundingrate Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise indicates failure data \[[FundingRate](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemafundingrate)\ \] false none Successful response data errorParam object false none Parameter information in the error message requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#schemafundingrate) schemafundingrate Name Type Required Constraints Description contractId string(int64) false none Contract ID fundingTime string(int64) false none Funding rate settlement time. E.g., the funding rate for the 08:00-09:00 period is calculated from the previous 07:00-08:00 data, finalized at 08:00, and used for settlement at 09:00 fundingTimestamp string(int64) false none Funding rate calculation time in milliseconds oraclePrice string false none Oracle price indexPrice string false none Index price fundingRate string false none Funding rate isSettlement boolean false none Funding rate settlement flag forecastFundingRate string false none Forecast funding rate previousFundingRate string false none Previous funding rate previousFundingTimestamp string(int64) false none Previous funding rate calculation time in milliseconds premiumIndex string false none Premium index avgPremiumIndex string false none Average premium index premiumIndexTimestamp string false none Premium index calculation time impactMarginNotional string false none Quantity required for deep weighted buy/sell price calculation impactAskPrice string false none Deep weighted ask price impactBidPrice string false none Deep weighted bid price interestRate string false none Fixed interest rate predictedFundingRate string false none Comprehensive interest rate (interestRate/frequency) fundingRateIntervalMin string(int64) false none Funding rate time interval in minutes starkExFundingIndex string false none StarkEx funding index [PreviousQuote APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api) [NextPrivate APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api) Last updated 1 year ago * [FundingPublicApi](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#fundingpublicapi) * [GET Get Latest Funding Rate by Contract ID](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#get-get-latest-funding-rate-by-contract-id) * [GET Get Funding Rate History by Contract ID with Pagination](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#get-get-funding-rate-history-by-contract-id-with-pagination) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api#data-models) Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "contractId": "10000001",\ "fundingTime": "1733702400000",\ "fundingTimestamp": "1733702400000",\ "oraclePrice": "101120.888977311551570892333984375",\ "indexPrice": "101121.681521500",\ "fundingRate": "0.00005000",\ "isSettlement": true,\ "forecastFundingRate": "",\ "previousFundingRate": "0.00005000",\ "previousFundingTimestamp": "1733702340000",\ "premiumIndex": "0.00022566",\ "avgPremiumIndex": "0.00017953",\ "premiumIndexTimestamp": "1733702400000",\ "impactMarginNotional": "500",\ "impactAskPrice": "101269.6",\ "impactBidPrice": "101269.1",\ "interestRate": "0.0003",\ "predictedFundingRate": "0.00005000",\ "fundingRateIntervalMin": "240",\ "starkExFundingIndex": "101120.888977311551570892333984375"\ }\ ], "nextPageOffsetData": "0880A08A97B532" }, "msg": null, "errorParam": null, "requestTime": "1734597585432", "responseTime": "1734597586672", "traceId": "02465a59be5d19088ba7e4b5c6b94f6d" } --- # Terms of Use | edgeX Docs THE edgeX INTERFACE (AS DEFINED BELOW) IS NOT AVAILABLE TO PERSONS OR ENTITIES WHO RESIDE IN, ARE LOCATED IN, ARE INCORPORATED IN, OR HAVE A REGISTERED OFFICE IN THE UNITED STATES OF AMERICA OR CANADA (COLLECTIVELY, “BLOCKED PERSONS”). MOREOVER, NO SERVICES (AS DEFINED BELOW) ARE OFFERED TO PERSONS OR ENTITIES WHO RESIDE IN, ARE CITIZENS OF, ARE LOCATED IN, ARE INCORPORATED IN, OR HAVE A REGISTERED OFFICE IN ANY RESTRICTED TERRITORY (AS DEFINED BELOW, AND ANY SUCH PERSON OR ENTITY FROM A RESTRICTED TERRITORY, A “RESTRICTED PERSON”). WE DO NOT MAKE EXCEPTIONS; THEREFORE, IF YOU ARE A BLOCKED PERSON, THEN DO NOT ATTEMPT TO USE THE edgeX INTERFACE AND IF YOU ARE A RESTRICTED PERSON, THEN DO NOT ATTEMPT TO USE ANY OF THE SERVICES. USE OF A VIRTUAL PRIVATE NETWORK (“VPN”) TO CIRCUMVENT THE RESTRICTIONS SET FORTH HEREIN IS PROHIBITED. These terms of use, together with any documents and additional terms they expressly incorporate by reference, which includes any other terms and conditions or other agreement that edgeX Trading Inc. and its affiliates (“edgeX,” “we,” “us” and “our”) posts publicly or makes available to you or the company or other legal entity you represent (“you” or “your”) (collectively, these “Terms”), are entered into between edgeX and you concerning your use of, and access to: * edgeX’s websites, including edgeX.exchange (and their respective subdomains); web applications; mobile applications; and all associated sites linked thereto by edgeX (collectively with any materials and services available therein, and successor website(s) or application(s) thereto, the “Site”); * all products and features available via the Site, including the order book, matching engine, smart contracts, decentralized applications, APIs and all other software that edgeX or a third party has developed for trading blockchain-based assets (collectively, “Digital Assets”), including entering into perpetual contracts (“Perpetual Contracts”) related to Digital Assets, or exchanging one Digital Asset for another Digital Asset through the 0x API, and the computation and storage scalability service known as “StarkEx” (the “StarkEx Service”) (collectively the “Interface”); and * non-fungible tokens (“NFTs”) available in connection with the Interface, or registration for or attendance at events sponsored or hosted by edgeX (collectively with the Site and the Interface, the “Services”). Please read these Terms carefully, as these Terms govern your use of the Services. These Terms expressly cover your rights and obligations, and our disclaimers and limitations of legal liability, relating to your use of, and access to, the Services. By clicking “I agree” (or a similar language) to these Terms, acknowledging these Terms by other means, or otherwise accessing or using the Services, you accept and agree to be bound by and to comply with these Terms, including the mandatory arbitration provision in Section 15. If you do not agree to these Terms, then you must not access or use the Services.Please carefully review the disclosures and disclaimers set forth in Section 12 in their entirety before using any software developed by edgeX. The information in Section 12 provides important details about the legal obligations associated with your use of the Services. By accessing or using the Services, you agree that edgeX does not provide execution, settlement, or clearing services of any kind and is not responsible for the execution, settlement, or clearing of transactions automated through the Services. **MODIFICATIONS TO THESE TERMS** Please read these Terms carefully, as these Terms govern your use of the Services. These Terms expressly cover your rights and obligations, and our disclaimers and limitations of legal liability, relating to your use of, and access to, the Services. By clicking “I agree” (or a similar language) to these Terms, acknowledging these Terms by other means, or otherwise accessing or using the Services, you accept and agree to be bound by and to comply with these Terms, including the mandatory arbitration provision in Section 15. If you do not agree to these Terms, then you must not access or use the Services. **USE OF SERVICES** 2.1 As a condition to accessing or using the Services, you represent and warrant to edgeX the following: * if you are entering into these Terms as an individual, then you are of legal age in the jurisdiction in which you reside and you have the legal capacity to enter into these Terms and be bound by them; * if you are entering into these Terms as an entity, then you must have the legal authority to accept these Terms on that entity’s behalf, in which case “you” (except as used in this paragraph) will mean that entity; * if you are entering into these Terms to access the Interface or will in the future access the Interface, then you are not a Blocked Person, and are not accessing the Interface from within the United States or Canada (collectively, "Blocked Countries"); provided, however, that, notwithstanding anything to the contrary herein, all existing users of the Interface as of April 7, 2023 (the "Wind-Down Date") that reside in, are located in, are incorporated in, or have a registered office in Canada will be permitted to access the Interface until seven (7) days after the Wind-Down Date, and thereafter any associated accounts will be permanently blocked from placing orders other than market orders that reduce your positions; * you must not be a resident, citizen or agent of, or incorporated in, and do not have a registered office in Iran, Cuba, North Korea, Syria, Myanmar (Burma), the regions of Crimea, Donetsk or Luhansk, or any other country or region that is the subject of comprehensive country-wide or region-wide economic sanctions by the United States (collectively, “Restricted Territories”); * you are not the subject of economic or trade sanctions administered or enforced by any governmental authority or otherwise designated on any list of prohibited or restricted parties (including the list maintained by the Office of Foreign Assets Control of the U.S. Department of the Treasury) (collectively, “Sanctioned Person”); * you do not intend to transact with any Restricted Person or Sanctioned Person; * you do not, and will not, use a VPN or any other privacy or anonymization tools or techniques to circumvent, or attempt to circumvent, any restrictions that apply to the Services; and * your access to the Services (a) is not prohibited by and does not otherwise violate or assist you to violate any domestic or foreign law, rule, statute, regulation, by-law, order, protocol, code, decree, or another directive, requirement, or guideline, published or in force that applies to or is otherwise intended to govern or regulate any person, property, transaction, activity, event or other matter, including any rule, order, judgment, directive or other requirement or guideline issued by any domestic or foreign federal, provincial or state, municipal, local or other governmental, regulatory, judicial or administrative authority having jurisdiction over edgeX, you, the Services, or as otherwise duly enacted, enforceable by law, the common law or equity (collectively, “Applicable Laws”); and (b) does not contribute to or facilitate any illegal activity. 2.2 As a condition to accessing or using the Services, you acknowledge, understand, and agree to the following: * rom time to time, the Services may be inaccessible or inoperable for any reason, including: (a) equipment or technology or other infrastructure delay, inaccessibility, or malfunctions; (b) periodic maintenance procedures or repairs that edgeX or any of our suppliers or contractors may undertake from time to time; (c) causes beyond edgeX’s control or that edgeX could not reasonably foresee; (d) disruptions and temporary or permanent unavailability of underlying blockchain infrastructure; or (e) unavailability of third-party service providers or external partners for any reason. Without limitation of any other provision of these Terms, and as set forth below, edgeX has no responsibility or liability for any losses or other injuries resulting from any such events; * we reserve the right to disable or modify access to the Services (such as restricting features of the Services) at any time in the event of any breach of these Terms, including, if we reasonably believe any of your representations and warranties may be untrue, misleading, or inaccurate, and we will not be liable to you for any losses or damages you may suffer as a result of or in connection with the Services being inaccessible to you at any time or for any reason; * the Services may evolve, which means edgeX may apply changes, replace, or discontinue (temporarily or permanently) the Services at any time in our sole discretion; * the pricing information and other data provided on the Site does not represent (i) an offer, a solicitation of an offer, or recommendation to enter into, a transaction with edgeX (other than the payment of fees to edgeX) or (ii) any advice regarding a transaction entered into using the Site and the Services; * edgeX does not act as an agent for you or any other user of the Services; * you are solely responsible for your use of the Services, including all of your transfers of Digital Assets; * to the fullest extent not prohibited by Applicable Law, we owe no fiduciary duties or liabilities to you or any other party, and that to the extent any such duties or liabilities may exist at law or in equity, you hereby irrevocably disclaim, waive, and eliminate those duties and liabilities; * you are solely responsible for reporting and paying any taxes applicable to your use of the Services; * we have no control over, or liability for, the delivery, quality, safety, legality, or any other aspect of any Digital Assets that you may transfer to or from a third party, and we are not responsible for ensuring that an entity with whom you transact completes the transaction or is authorized to do so, and if you experience a problem with any transactions in Digital Assets using the Services, then you bear the entire risk; * we may, from time to time, operate contests, promotions, sweepstakes or other activities or offer referral programs (“Promotions and Referrals”), which may be governed by separate terms and conditions and rules that may contain certain eligibility requirements; and you are responsible for reading all terms and conditions and rules relating to the Promotions and Referrals to determine whether you are eligible to participate; if you enter or participate in any Promotions and Referrals, then you agree to abide by and to comply with all terms and conditions and rules of such Promotions and Referrals; all Promotions and Referrals will be optional so you should not enter or participate in such Promotions and Referrals if you do not agree to abide by and comply with all such terms and conditions and rules; and * if you receive discounts on fees from any Promotions and Referrals that are not subject to separate terms and conditions and rules, then edgeX reserves the right to add to, modify or eliminate the discounts and any other aspect of such Promotions and Referrals. 2.3 As a condition to accessing or using the Services, you covenant to edgeX the following: * in connection with using the Services, you only will transfer legally-obtained Digital Assets that belong to you; * you will obey all Applicable Laws in connection with using the Services, and you will not use the Services if the laws of your country, or any other Applicable Law, prohibit you from doing so; * any Digital Assets you use in connection with the Services are either owned by you or you are validly authorized to carry out actions using such Digital Assets; and * in addition to complying with all restrictions, prohibitions, and other provisions of these Terms, you will (a) ensure that, at all times, all information that you provide on the Site and during your use of the Services is current, complete, and accurate; and (b) maintain the security and confidentiality of your private keys associated with your public Ethereum address, passwords, API keys, private keys associated with your StarkEx Service account (STARK keys) and other related credentials. **3\. FEES AND PRICE ESTIMATES** In connection with your use of the Services, unless expressly stated otherwise pursuant to a promotion operated by edgeX, you are required to pay all fees necessary for interacting with the Ethereum blockchain, including “gas” costs, as well as all other fees reflected on the Site at the time of your use of the Services. Although we attempt to provide accurate fee information, this information reflects our estimates of fees, which may vary from the actual fees paid to use the Services and interact with the Ethereum blockchain. **4\. NO PROFESSIONAL ADVICE OR FIDUCIARY DUTIES** All information provided in connection with your access and use of the Services is for informational purposes only and should not be construed as professional advice. You should not take, or refrain from taking any action based on any information contained on the Site or any other information that we make available at any time, including blog posts, data, articles, links to third-party content, discord content, news feeds, tutorials, tweets, and videos. Before you make any financial, legal, or other decisions involving the Services, you should seek independent professional advice from an individual who is licensed and qualified in the area for which such advice would be appropriate. The Terms are not intended to, and do not, create or impose any fiduciary duties on us. You further agree that the only duties and obligations that we owe you are those set out expressly in these Terms. **5\. PROHIBITED ACTIVITY** You may not use the Services to engage in the categories of activity set forth below (“Prohibited Uses”). The specific activities set forth below are representative, but not exhaustive, of Prohibited Uses. If you are uncertain as to whether your use of the Services involves a Prohibited Use or have other questions about how these requirements apply to you, then please contact us at support@edgex.exchange. By using the Services, you confirm that you will not engage in any of the following Prohibited Uses: * violate any Applicable Laws including any relevant and applicable anti-money laundering and anti-terrorist financing laws and sanctions programs, such as the Bank Secrecy Act and the U.S. Department of Treasury’s Office of Foreign Asset Controls; * engage in transactions involving items that infringe or violate any copyright, trademark, right of publicity or privacy, or any other proprietary right under Applicable Law, including sales, distribution or access to counterfeit music, movies, software or other licensed materials without the appropriate authorization from the rights holder; use of edgeX’s or our licensors’ intellectual property, name or logo, including use of edgeX’s trade, service or licensed marks, without express consent from edgeX or in a manner that otherwise harms edgeX; any action that implies an untrue endorsement by or affiliation with edgeX; * engage in improper or abusive trading practices, including, but not limited to, (a) any fraudulent act or scheme to defraud, deceive, trick or mislead; (b) trading ahead of another user of the Services or front-running; (c) fraudulent trading; (d) accommodation trading; (e) fictitious transactions; (f) pre-arranged or non-competitive transactions; (g) cornering, or attempted cornering, of any Perpetual Contracts or other Digital Assets; (h) violations of bids or offers; (i) wash trading (i.e., entering buy and sell orders at or about the same price, volume, and time for the purpose of generating trading volume); (j) manipulation (i.e., trading for the purposes of affecting the market price of a Digital Asset and creating an artificial price); (k) spoofing (i.e., placing buy or sell orders without a bona fide intent to transact and with the intent to cancel before execution); (l) knowingly making any bid or offer for the purpose of making a market price that does not reflect the true state of the market; (m) entering orders for the purpose of entering into transactions without a net change in either party’s open positions but a resulting profit to one party and a loss to the other party, commonly known as a “money pass;” or (n) any other trading activity that, in the reasonable judgment of edgeX, is abusive, improper or disruptive to the operation of the Interface. * use the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other users from fully enjoying the Services, or that could damage, disable, overburden, or impair the functioning of the Site or the Services in any manner; * circumvent any content-filtering techniques, security measures or access controls that edgeX employs on the Site, including through the use of a VPN; * use any robot, spider, crawler, scraper or other automated means or interface not provided by us to access the Services, to extract data, or to introduce any malware, virus, Trojan horse, worm, logic bomb, drop-dead device, backdoor, shutdown mechanism or other harmful material into the Site or the Services; * provide false, inaccurate, or misleading information while using the Services or engage in activity that operates to defraud edgeX, other users of the Services or any other person; * use or access the Services to transmit or exchange Digital Assets that are the direct or indirect proceeds of any criminal or fraudulent activity, including terrorism or tax evasion; * use the Services in any way that is, in our sole discretion, libelous, defamatory, profane, obscene, pornographic, sexually explicit, indecent, lewd, vulgar, suggestive, harassing, stalking, hateful, threatening, offensive, discriminatory, bigoted, abusive, inflammatory, fraudulent, deceptive or otherwise objectionable, or likely or intended to incite, threaten, facilitate, promote, or encourage hate, racial intolerance or violent acts against others; * use the Services from a jurisdiction (including an IP address in a jurisdiction) that we have, in our sole discretion, determined is a jurisdiction where the use of the Site, the Interface or the Services is prohibited, including any Blocked Countries or any Restricted Territory; * harass, abuse or harm another person, including edgeX’s employees and service providers; * impersonate another user of the Services or otherwise misrepresent yourself; or * engage or attempt to engage, or encourage, induce or assist any third party to engage or attempt to engage in any of the activities prohibited under this Section 5 or any other provision of these Terms. **6\. CONTENT** You hereby grant to us a royalty-free, fully paid-up, sublicensable (through multiple tiers), transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, copy, modify, create derivative works of, display, perform, publish and distribute, in any form, medium or manner, any content that is available to other users as a result of your use of the Site or the Services (collectively, “Your Content”), including for promoting edgeX or the Services. You represent and warrant that (a) you own Your Content or have the right to grant the rights and licenses in these Terms; and (b) Your Content and our use of Your Content, as licensed herein, does not and will not violate, misappropriate or infringe on any third party’s rights. **7\. PROPRIETARY RIGHTS** You hereby grant to us a royalty-free, fully paid-up, sublicensable (through multiple tiers), transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, copy, modify, create derivative works of, display, perform, publish and distribute, in any form, medium or manner, any content that is available to other users as a result of your use of the Site or the Services (collectively, “Your Content”), including for promoting edgeX or the Services. You represent and warrant that (a) you own Your Content or have the right to grant the rights and licenses in these Terms; and (b) Your Content and our use of Your Content, as licensed herein, does not and will not violate, misappropriate or infringe on any third party’s rights. * 7.1.You acknowledge that certain aspects of the Services may use, incorporate or link to certain open-source components and that your use of the Services is subject to, and you will comply with, any applicable open-source licenses that govern any such open-source components (collectively, the “Open-Source Licenses”). Without limiting the generality of the foregoing, you may not (a) resell, lease, lend, share, distribute, or otherwise permit any third party to use the Services; (b) use the Services for time-sharing or service bureau purposes; or (c) otherwise use the Services in a manner that violates the Open-Source Licenses. * 7.2.Excluding third-party software that the Services incorporates, as between you and edgeX, edgeX owns the Services, including all technology, content and other materials used, displayed or provided on the Site or in connection with the Services (including all intellectual property rights subsisting therein, whether or not subject to the Open-Source Licenses), and hereby grants you a limited, non-exclusive, revocable, non-transferable, non-sublicensable license to access and use those portions of the Site and the Services that are proprietary to edgeX and not available pursuant to the Open-Source Licenses. * 7.3.Any of edgeX’s product or service names, logos, and other marks used on the Site or as a part of the Services including edgeX’s name and logo are trademarks owned by edgeX or our licensors You may not copy, imitate, or use them without the prior written consent of edgeX or the applicable licensors, and these Terms do not grant you any rights in those trademarks. You may not remove, obscure, or alter any legal notices displayed in or along with the Site or the Services. * 7.4.The Services are non-custodial. When you deposit Digital Assets into any smart contract available on the Interface, you are not transferring Digital Assets to edgeX, and you retain control over those Digital Assets at all times. The private key associated with the Ethereum address from which you transfer Digital Assets or the private key associated with the StarkEx Service account (STARK key) is the only private key that can control the Digital Assets you transfer into the smart contracts available on the Interface. **8\. LINKS** The Services or third parties may provide, links to other World Wide Web or accessible sites, applications, or resources. You acknowledge and agree that edgeX is not responsible for the availability of such external sites, applications or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. You further acknowledge and agree that Company will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods, or services available on or through any such site or resource. **9\. MODIFICATION, SUSPENSION, AND TERMINATION** We may, at our sole discretion, from time to time and with or without prior notice to you, modify, suspend or discontinue, temporarily or permanently, the Services (or any part thereof) with or without notice, for any reason whatsoever, including to only allow open Perpetual Contracts to be closed. Upon termination of your access, your right to use the Services will immediately cease. We will not be liable for any losses suffered by you resulting from any modification, suspension or discontinuance of any Services or from any modification, suspension or termination, for any reason, of your access to all or any portion of the Services. The following sections of these Terms will survive any termination of your access to the Site or the Services, regardless of the reasons for its expiration or termination, in addition to any other provision which by law or by its nature should survive: Section 7 and Sections 9 through Section 17. **10\. RISKS** * 10.1.By accessing or using the Services , you understand and agree to the inherent risks associated with cryptographic systems and blockchain-based networks; Digital Assets, including the usage and intricacies of native Digital Assets, like ether (ETH); smart contract-based tokens, including fungible tokens and NFTs; and systems that interact with blockchain-based networks. edgeX does not own or control any of the underlying software through which blockchain networks are formed. In general, the software underlying blockchain networks, including the Ethereum blockchain, is open source, such that anyone can use, copy, modify, and distribute it. By using the Services, you acknowledge and agree (a) that edgeX is not responsible for the operation of the blockchain-based software and networks underlying the Services, (b) that there exists no guarantee of the functionality, security, or availability of that software and networks, and (c) that the underlying blockchain-based networks are subject to sudden changes in operating rules, such as those commonly referred to as “forks,” which may materially affect the Services. Blockchain networks use public and private key cryptography. You alone are responsible for securing your private key(s). We do not have access to your private key(s). Losing control of your private key(s) will permanently and irreversibly deny you access to Digital Assets on the Ethereum blockchain or other blockchain-based networks. Neither edgeX nor any other person or entity will be able to retrieve or protect your Digital Assets. If your private key(s) are lost, then you will not be able to transfer your Digital Assets to any other blockchain address or wallet. If this occurs, then you will not be able to realize any value or utility from the Digital Assets that you may hold. * 10.2.You acknowledge and understand that the Services and your Digital Assets could be impacted by one or more regulatory inquiries or regulatory actions, which could impede or limit the ability of edgeX to continue to make available our proprietary software and could impede or limit your ability to access or use the Services. * 10.3.You acknowledge and understand that cryptography is a progressing field with advances in code cracking or other technical advancements, such as the development of quantum computers, which may present risks to Digital Assets and the Services, and could result in the theft or loss of your Digital Assets. To the extent possible, the smart contracts available on the Interface will be updated to account for any advances in cryptography and to incorporate additional security measures necessary to address risks presented from technological advancements, but that intention does not guarantee or otherwise ensure full security of the Services. * 10.4.You understand that the Ethereum blockchain remains under development, which creates technological and security risks when using the Services in addition to uncertainty relating to Digital Assets and transactions therein. You acknowledge that the cost of transacting on the Ethereum blockchain is variable and may increase at any time causing impact to any activities taking place on the Ethereum blockchain, which may result in price fluctuations or increased costs when using the Services. * 10.5.You acknowledge that the Services are subject to flaws and that you are solely responsible for evaluating any code provided relating to the Services. This warning and other warnings that edgeX provides in these Terms are in no way evidence or represent an on-going duty to alert you to all of the potential risks of utilizing the Services. * 10.6.Although we intend to provide accurate and timely information and data on the Site and during your use of the Services, the Site and other information available when using the Services may not always be entirely accurate, complete, or current and may also include technical inaccuracies or typographical errors. To continue to provide you with as complete and accurate information as possible, information may be changed or updated from time to time without notice, including information regarding our policies. Accordingly, you acknowledge and understand that you should verify all information before relying on it, and all decisions based on information contained on the Site or as part of the Services are your sole responsibility. No representation is made as to the accuracy, completeness, or appropriateness for any particular purpose of any pricing information distributed via the Site or otherwise when using the Services. Prices and pricing information may be higher or lower than prices available on platforms providing similar services. * 10.7.Any use or interaction with the Services requires a comprehensive understanding of applied cryptography and computer science to appreciate the inherent risks, including those listed above. You represent and warrant that you possess relevant knowledge and skills. Any reference to a type of Digital Asset on the Site or otherwise during the use of the Services does not indicate our approval or disapproval of the technology on which the Digital Asset relies, and should not be used as a substitute for your understanding of the risks specific to each type of Digital Asset. * 10.8.Use of the Services in particular for entering into Perpetual Contracts may carry financial risk. Digital Assets, especially in connection with Perpetual Contracts, are, by their nature, highly experimental, risky, and volatile. Transactions entered into in connection with the Services are irreversible, final and there are no refunds. You acknowledge and agree that you will access and use the Services at your own risk. The risk of loss in trading Digital Assets, especially entering into Perpetual Contracts, can be substantial. You should, therefore, carefully consider whether such trading is suitable for you in light of your circumstances and financial resources. By using the Services, you represent and warrant that you have been, are, and will be solely responsible for making your independent appraisal and investigations into the risks of a given transaction and the underlying Digital Assets, including Perpetual Contracts. You represent that you have sufficient knowledge, market sophistication, professional advice, and experience to make your evaluation of the merits and risks of any transaction conducted in connection with the Services or any Digital Asset. You accept all consequences of using the Services, including the risk that you may lose access to your Digital Assets indefinitely. All transaction decisions are made solely by you. Notwithstanding anything in these Terms, we accept no responsibility whatsoever for, and will in no circumstances be liable to you for any loss or injury sustained by you or any third parties in connection with, your use of the Services for performing Digital Asset transactions, including entering into Perpetual Contracts. * 10.9.We must comply with Applicable Law, which may require us to, upon request by government agencies, take certain actions or provide information. You acknowledge and understand that edgeX may in its sole discretion take any action it deems appropriate to cooperate with government agencies or comply with Applicable Law. * 10.10.You understand that the StarkEx Service remains under development, which creates technological, trading, and other risks when using the Services. These risks include, among others, delays in trades, withdrawals, and deposits resulting from the servers of edgeX or the operator of the StarkEx Services being offline; an incorrect display of information on the Site in the case of server errors; or transactions using the Services being rolled back in the case of server errors. You acknowledge that these risks may have a material impact on your transactions using the Services, which may result in, among other things, failing to fulfill transactions at your desired price or at all. * 10.11.You understand that you are responsible for all trades you place, including any erroneous orders that may be filled. We do not take any action to resolve erroneous trades that result from your errors. * 10.12.You hereby assume the risks set forth in this Section 10 and Section 2, and acknowledge and agree that edgeX will have no responsibility or liability for the risks set forth in this Section 10. You hereby irrevocably waive, release and discharge all claims, whether known or unknown to you, against edgeX and our shareholders, members, directors, officers, employees, agents, and representatives, suppliers, and contractors (“Representatives”) related to any of the risks set forth in this Section 10 and Section 2. **11\. INDEMNIFICATION** You will defend, indemnify, and hold harmless edgeX and our Representatives (collectively, “Indemnified Parties”) from any claim, demand, lawsuit, action, proceeding, investigation, liability, damage, loss, cost or expense, including reasonable attorneys’ fees, arising out of or relating to (a) your use of, or conduct in connection with the Services; (b) Digital Assets associated with your Ethereum address; (c) any feedback or user content you provide to edgeX, if any, concerning the Services; (d) your violation of these Terms; or (e) your infringement or misappropriation of the rights of any other person or entity. If you are obligated to indemnify any Indemnified Party, edgeX (or, at our sole discretion, the applicable Indemnified Party) will have the right, in our or its sole discretion, to control any action or proceeding and to determine whether edgeX wishes to settle, and if so, on what terms, and you agree to cooperate with edgeX in the defense. **12\. DISCLOSURES; DISCLAIMERS** * 12.1edgeX is a developer of software. edgeX does not operate a Digital Asset or derivatives exchange platform or offer trade execution or clearing services and has no oversight, involvement, or control concerning your transactions using the Services. All transactions between users of the Interface are executed peer-to-peer directly between the users’ Ethereum addresses through a smart contract. You are responsible for complying with all Applicable Laws that govern your Digital Assets. As a result of restrictions under the Commodity Exchange Act and the regulations promulgated thereunder by the U.S. Commodity Futures Trading Commission (“CFTC”), no Blocked Person may enter into Perpetual Contracts using the Services. * 12.2You understand that edgeX is not registered or licensed by any regulatory agency or authority. No such agency or authority has reviewed or approved the use of the Services. * 12.3To the maximum extent permitted under Applicable Law, the Services (and any of their content or functionality) provided by or on behalf of us are provided on an “AS IS” and “AS AVAILABLE” basis, and we expressly disclaim, and you hereby waive, any representations, conditions or warranties of any kind, whether express or implied, legal, statutory or otherwise, or arising from statute, otherwise in law, course of dealing, or usage of trade, and whether or not known or discoverable, including the implied or legal warranties and conditions of merchantability, merchantable quality, quality or fitness for a particular purpose, title, security, availability, reliability, accuracy, quiet enjoyment and non-infringement of third party rights. Without limiting the foregoing, we do not represent or warrant that the Services (including any data relating thereto) will be uninterrupted, available at any particular time, or error-free. Further, we do not warrant that errors in the Services are correctable or will be correctable. * 12.4You acknowledge that data you provide while accessing or using the Services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, and agree that, to the maximum extent permitted under Applicable Law, we will not be liable for any loss or damage caused by denial-of-service attacks, software failures, viruses or other technologically harmful materials (including those which may infect your computer equipment), protocol changes by third-party providers, Internet outages, force majeure events or other disasters, scheduled or unscheduled maintenance, or other causes either within or outside of our control. **13\. LIMITATION OF DAMAGES; EXCLUSION OF CONSEQUENTIAL AND RELATED DAMAGES** * 13.1Without limitation of any other provision of these Terms, you hereby agree that neither edgeX nor any of its Representatives will have any responsibility or liability whatsoever for any loss or injury sustained by you or any third parties as a result of (i) any equipment or technology or other infrastructure delay, inaccessibility, or malfunctions; (ii)periodic maintenance procedures or repairs that edgeX or any of our suppliers or contractors may undertake from time to time; (iii) causes beyond edgeX’s control or that edgeX could not reasonably foresee; (iv) disruptions and temporary or permanent unavailability of underlying blockchain infrastructure; or (v) unavailability of third-party service providers or external partners for any reason. Under no circumstances will edgeX or its Representatives have any liability for any such loss or injury caused by any of the foregoing events, including but not limited to any obligation to cover or reimburse any damages or losses caused by such events. You expressly acknowledge that any risk of loss resulting from such events shall be borne by you, and you expressly assume any and all such risks. * 13.2In no event will edgeX, our suppliers and contractors, and edgeX’s or our suppliers’ and contractors’ respective stockholders, members, directors, officers, managers, employees, attorneys, agents, representatives, suppliers and contractors (collectively, the “Risk Limited Parties”) be liable for any incidental, indirect, special, punitive, consequential or similar damages or liabilities whatsoever (including damages for loss of fiat, assets, data, information, revenue, opportunities, use, goodwill, profits or other business or financial benefit) arising out of or in connection with the Services (and any of their respective content and functionality), any execution or settlement of a transaction, any performance or non-performance of the Services, your Digital Assets, Perpetual Contracts or any other product, service or other item provided by or on behalf of edgeX, whether under contract, tort (including negligence), civil liability statute strict liability breach of warranties or under any other theory of liability and whether or not we have been advised of, knew of or should have known of the possibility of such damages and, notwithstanding any failure of the essential purpose of these Terms or any limited remedy hereunder, nor is edgeX in any way responsible for the execution or settlement of transactions between users of the Services. **14\. LIMITATION OF LIABILITY** Without limitation of any provision of these Terms, in the event that edgeX or any related party is found liable under these Terms, the aggregate liability of edgeX (together with our equity owners, members, directors, managers, officers, employees, attorneys, agents, representatives, suppliers, or contractors), arising out of or in connection with your use of the Services (and any of their content and functionality), any performance or nonperformance of the Services, your Digital Assets, Perpetual Contracts or any other product, service or other item provided by or on behalf of edgeX, whether under contract, tort (including negligence), civil liability, statute, strict liability or other theory of liability, will not exceed the amount of fees paid by you to edgeX under these Terms, if any, in the two (2) month period immediately preceding the event giving rise to the claim for liability. **15\. DISPUTE RESOLUTION AND ARBITRATION** PLEASE READ THE FOLLOWING SECTION CAREFULLY BECAUSE IT MAY SIGNIFICANTLY IMPACT YOUR LEGAL RIGHTS, INCLUDING YOUR RIGHT TO BRING A LAWSUIT AGAINST edgeX IN ANY COURT OR GOVERNING AUTHORITY. EXCEPT AS EXPRESSLY PROVIDED BELOW, THIS SECTION REQUIRES YOU TO SUBMIT ANY DISPUTE, CLAIM, OR DISAGREEMENT (EACH A “DISPUTE”) ARISING OUT OF THESE TERMS OR THE SERVICES, INCLUDING ANY DISPUTE THAT AROSE BEFORE THE EFFECTIVE DATES OF THESE TERMS, TO BINDING INDIVIDUAL ARBITRATION. THIS SECTION EXTENDS TO DISPUTES THAT AROSE OR INVOLVE FACTS OCCURING BEFORE THE EXISTENCE OF THIS OR ANY PRIOR VERSIONS OF THE TERMS AS WELL AS DISPUTES THAT MAY ARISE AFTER THE TERMINATION OF THE TERMS. You and edgeX agree that any Dispute arising out of or related to these Terms or the Services is personal to you and edgeX and that any Dispute will be resolved solely through individual arbitration, and will not be brought as a class arbitration, class action, or any other type of representative proceeding. Nothing in this Section precludes you or edgeX from bringing an individual action for damages in a small claims court if such claims qualify and remain in small claims court, or from seeking injunctive or other equitable relief in court for infringement or other alleged misuse of intellectual property rights (such as trademarks, trade dress, domain names, trade secrets, copyrights, and patents). Except as specified above, you and edgeX waive your rights to a judge or jury trial or to have any Dispute arising out of or related to these Terms or the Services resolved in court. Instead, for any Dispute that you have against edgeX or relating in any way to the Services, you agree to first contact edgeX and attempt to resolve the claim informally by sending a written notice of your claim (“Notice”) to edgeX by email at legal@edgeX.exchange. The Notice must (a) include your name, residence address, email address, and telephone number; (b) describe the nature and basis of the claim; and (c) set forth the specific relief sought. Our notice to you will be similar in form to that described above. If you and edgeX cannot reach an agreement to resolve the claim within thirty (30) days after such Notice is received, then either party may submit the Dispute to binding arbitration administered by JAMS or, under the limited circumstances set forth above, in court. All Disputes submitted to JAMS will be resolved through confidential, binding arbitration before one arbitrator. Arbitration proceedings will be held in San Francisco, California, under the JAMS Streamlined Arbitration Rules and Procedures (“JAMS Rules”). The most recent version of the JAMS Rules are available on the JAMS website and are hereby incorporated by reference. You either acknowledge and agree that you have read and understand the JAMS Rules or waive your opportunity to read the JAMS Rules and waive any claim that the JAMS Rules are unfair or should not apply for any reason. You and edgeX agree that these Terms affect interstate commerce and that the enforceability of this Section 15 will be substantively and procedurally governed by the Federal Arbitration Act, 9 U.S.C. § 1, et seq. (the “FAA”), to the maximum extent permitted by applicable law. As limited by the FAA, these Terms and the JAMS Rules, the arbitrator will have exclusive authority to make all procedural and substantive decisions regarding any dispute and to grant any remedy that would otherwise be available in court, including the power to determine the question of arbitrability. The arbitrator may conduct only an individual arbitration and may not consolidate more than one individual’s claims, preside over any type of class or representative proceeding or preside over any proceeding involving more than one individual. The arbitrator, edgeX, and you will maintain the confidentiality of any arbitration proceedings, judgments and awards, including all information gathered, prepared, and presented for purposes of the arbitration or related to the dispute(s) therein. The arbitrator will have the authority to make appropriate rulings to safeguard confidentiality unless the law provides to the contrary. The duty of confidentiality does not apply to the extent that disclosure is necessary to prepare for or conduct the arbitration hearing on the merits, in connection with a court application for a preliminary remedy or in connection with a judicial challenge to an arbitration award or its enforcement, or to the extent that disclosure is otherwise required by law or judicial decision. You and edgeX agree that for any arbitration you initiate, you will pay the filing fee and all other JAMS fees and costs. For any arbitration initiated by edgeX, edgeX will pay all JAMS fees and costs. You and edgeX agree that the state or federal courts of the State of California and the United States sitting in San Francisco, California have exclusive jurisdiction over the enforcement of an arbitration award. Any claim arising out of or related to these Terms or the Services must be filed within one (1) year after such claim arose; otherwise, the claim is permanently barred, which means that you and edgeX will not have the right to assert the claim. If any portion of this Section 15 is found to be unenforceable or unlawful for any reason, (a) the unenforceable or unlawful provision will be severed from these Terms; (b) severance of the unenforceable or unlawful provision will have no impact whatsoever on the remainder of this Section 15 or the parties’ ability to compel arbitration of any remaining claims on an individual basis under this Section 15; and (c) to the extent that any claims must therefore proceed on a class, collective, consolidated, or representative basis, such claims must be litigated in a civil court of competent jurisdiction and not in arbitration, and the parties agree that litigation of those claims will be stayed pending the outcome of any individual claims in arbitration. Further, if any part of this Section 15 is found to prohibit an individual claim seeking public injunctive relief, then that provision will have no effect to the extent such relief is allowed to be sought out of arbitration, and the remainder of this Section 15 will be enforceable. **16\. GOVERNING LAW** The interpretation and enforcement of these Terms, and any Dispute related to these Terms or the Services, will be governed by and construed and enforced under the laws of the State of California, as applicable, without regard to conflict of law rules or principles (whether of the State of California or any other jurisdiction) that would cause the application of the laws of any other jurisdiction. You agree that we may initiate a proceeding related to the enforcement or validity of our intellectual property rights in any court having jurisdiction. For any other proceeding that is not subject to arbitration under these Terms, the state and federal courts located in San Francisco, California will have exclusive jurisdiction. You waive any objection to venue in any such courts. **17\. GENERAL INFORMATION** * 17.1.Please refer to our privacy policy, which is incorporated herein by reference and available at https://edgeX.exchange/privacy/, for information about how we collect, use, share and otherwise process information about you. * 17.2.You consent to receive all communications, agreements, documents, receipts, notices, and disclosures electronically (collectively, our “Communications”) that we provide in connection with these Terms or any Services. You agree that we may provide our Communications to you by posting them on the Site, by emailing them to you at the email address you provide in connection with using the Services, if any, or by Telegram at the username you provided to us during the course of your use of the Services. You should maintain copies of our Communications by printing a paper copy or saving an electronic copy. You may also contact us with questions, complaints, or claims concerning the Services at legal@edgeX.exchange. * 17.3.Any right or remedy of edgeX set forth in these Terms is in addition to, and not in lieu of, any other right or remedy whether described in these Terms, under Applicable Law, at law, or in equity. The failure or delay of edgeX in exercising any right, power, or privilege under these Terms will not operate as a waiver thereof. * 17.4.The invalidity or unenforceability of any of these Terms will not affect the validity or enforceability of any other of these Terms, all of which will remain in full force and effect. * 17.5.We will have no responsibility or liability for any failure or delay in performance of any of the Services, or any loss or damage that you may incur, due to any circumstance or event beyond our control, including any flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, communications, power failure, or equipment or software malfunction. * 17.6.You may not assign or transfer any right to use the Services, or any of your rights or obligations under these Terms, without our express prior written consent, including by operation of law or in connection with any change of control. We may assign or transfer any or all of our rights or obligations under these Terms, in whole or in part, with or without notice or obtaining your consent or approval. * 17.7.Except to the extent otherwise provided or unless the context otherwise requires, for the purposes of these Terms: (a) headings of sections are for convenience only and will not be used to limit or construe such sections; (b) whenever the words “include,” “includes” or “including” are used in these Terms, they are deemed to be followed by the words “without limitation”; and (c) the use of “or” is not intended to be exclusive. * 17.8.These Terms contain the entire agreement between you and edgeX, and supersede all prior and contemporaneous understandings between the parties with respect to the Services. * 17.9.In the event of any conflict between these Terms and any other agreement you may have with us, these Terms will control unless such other agreement specifically identifies these Terms and declares that such other agreement supersedes these Terms * 17.10.You agree that, except as otherwise expressly provided in this Agreement, there is no third-party beneficiaries to the Agreement other than the Indemnified Parties. **18\. APPLE-ENABLED SOFTWARE** With respect to the mobile application that is made available by edgeX for your use in connection with an Apple-branded product (the “Apple-Enabled Software”), in addition to the other terms and conditions set forth in these Terms, the following terms and conditions apply: * edgeX and you acknowledge that these Terms are concluded only between edgeX and you, and not with Apple Inc. or its affiliates (collectively, “Apple”), and that as between edgeX and Apple, edgeX, not Apple, is solely responsible for the Apple-Enabled Software and the content thereof. * You may not use the Apple-Enabled Software in any manner that is in violation of or inconsistent with the Usage Rules set forth for Apple-Enabled Software in, or otherwise be in conflict with, the Apple Media Services Terms and Conditions (the “Usage Rules”). * Your license to use the Apple-Enabled Software is limited to a non-transferable license to use the Apple-Enabled Software on an iOS product that you own or control, as permitted by the Usage Rules. * Apple has no obligation whatsoever to provide any maintenance or support services with respect to the Apple-Enabled Software. * Apple is not responsible for any product warranties, whether express or implied by law. In the event of any failure of the Apple-Enabled Software to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price for the Apple-Enabled Software, if any, to you; and, to the maximum extent permitted by applicable law, Apple will have no other warranty obligation whatsoever with respect to the Apple-Enabled Software, or any other claims, losses, liabilities, damages, costs, or expenses attributable to any failure to conform to any warranty, which will be edgeX’s sole responsibility, to the extent it cannot be disclaimed under applicable law. * edgeX and you acknowledge that edgeX, not Apple, is responsible for addressing any claims of you or any third party relating to the Apple-Enabled Software or your possession or use of that Apple-Enabled Software, including: (a) product liability claims; (b) any claim that the Apple-Enabled Software fails to conform to any applicable legal or regulatory requirement; and (c) claims arising under consumer protection, privacy, or similar legislation. * In the event of any third-party claim that the Apple-Enabled Software or your possession and use of that Apple-Enabled Software infringes that third party’s intellectual property rights, as between edgeX and Apple, edgeX, not Apple, will be solely responsible for the investigation, defense, settlement, and discharge of any such intellectual property infringement claim. * You represent and warrant that (i) you are not located in a country that is subject to a United States government embargo, or that has been designated by the United States government as a “terrorist supporting” country; and (ii) you are not listed on any United States government list of prohibited or restricted parties. * You must comply with applicable third-party terms of agreement when using the Apple-Enabled Software, including your wireless data service agreement. * edgeX and you acknowledge and agree that Apple, and Apple’s subsidiaries, are third-party beneficiaries of these Terms with respect to the Apple-Enabled Software, and that, upon your acceptance of the terms and conditions of these Terms, Apple will have the right (and will be deemed to have accepted the right) to enforce these Terms against you with respect to the Apple-Enabled Software as a third-party beneficiary thereof. * If you have any questions, complaints, or claims with respect to the Apple-Enabled Software, the foregoing should be directed to edgeX in accordance with Section 17.2. [PreviousOfficial Linkschevron-left](https://edgex-1.gitbook.io/edgex-documentation/about/official-links) [NextPrivacy Policychevron-right](https://edgex-1.gitbook.io/edgex-documentation/about/privacy-policy) Last updated 1 year ago --- # Privacy Policy | edgeX Docs This Privacy Policy (“Policy”) describes how EDGEX DAO PTE. LTD. and its affiliates (“edgeX”, “we”, “us” or “our”) may collect, process, use, safeguard and disclose personal information, and your rights choices regarding this information. For the purposes of this Policy, “personal information” is any information related to an identified or identifiable individual. Please note that we may change this Policy from time to time. We encourage you to review this Policy periodically. Please read this Policy carefully. You can contact us with questions using the details in the “Contact Us” section of this Policy. **Applicability of This Policy** This Policy applies to personal information collected in connection with the Services (in each case, as defined in the [Terms of Use)arrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) . If you do not agree with the terms of this Policy, do not access or use the Services, or any other aspect of our business. **What We Collect** When you interact with the Services, we may collect personal information about you from different sources listed below. Based on your consent and performance of a contract with you, we use your data to communicate with you, process your request, and provide products or services. Basic Information * IP address * Country information * Device type, model and related operation system * Language and time zone settings * Browse (plug-in) type and version * Submit source (Web, App) * Basic equipment information: including equipment brand, equipment manufacturer, equipment model number, equipment name, equipment system type and version, equipment basic configuration, equipment basic settings, equipment environment * Device network information, including network access form, wireless router identification (BSSID, SSID) and IP address, WIFI list, network operator information, network base station information, network connection status * Device application information, including SDK host application package name, version number and installed application. The Installed application information with ishuemi SDK, in order to fraud prevention, security, or compliance with laws. For example, monitor whether the device is in the root environment, whether there is a hook risk, and whether it is running on a real device, etc. To provide product functionality, analyze performance, solve bugs, and guarantee the basic availability and stability of the product. This purpose is based on your consent and/or our legitimate interests in improving experience and security to deal with operational bugs or product issues you encounter during use. Financial Information * Your Ethereum network address (on-chain address) * Cryptocurrency wallet information * Transaction history * Trading data and associated fees paid. * Transaction Information, such as information about the transactions you make on the Services, such as the type of transaction, transaction amount, and timestamp. * Correspondence, such as your feedback, questionnaire and other survey responses, and information you provide to our support teams, including via our help chat or social media messaging channels. Personal information collected via automated means * Online Identifiers, such as geo-location or tracking details, browser fingerprint, operating system, browser name and version, and IP addresses. * Usage and Diagnostics Data, such as conversion events, user preferences, crash logs, device information and other data collected via cookies and similar technologies. * Information from cookies and other tracking technologies. We, and third parties we authorize, may use cookies, web beacons, and similar technologies to record your preferences, track the use of the Services, including our mobile applications, and collect information about the use of the Services, as well with other information we collect about you. You may choose to set your web browser to refuse cookies, or to alert you when cookies are being sent. If you do so, please note that some parts of the Services may not function properly. Personal information we receive from third parties * Information We Receive from Third Parties. Sometimes, we receive personal information about you from other sources as required or permitted by applicable law, including public databases. We may combine the information collected from these sources with the information we get from the Services in order to comply with our legal obligations and limit the use of the Services in connection with fraudulent or other illicit activities. **How We Use Information** We use your personal information in accordance with your instructions, including any applicable terms in the[Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , and as required by applicable law. We may also use the personal information we collect for: * Providing Services and Features.We may use the personal information we collect to provide, maintain, and improve the Services, including as we described in the [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) . In particular we will use your personal information to perform our contractual obligation towards you to allow you to browse and use the Services. This includes using information to: * operate, maintain, customize, measure, and improve the Services, and manage our business; * create and update user accounts; * process transactions; * send information, including confirmations, notices, updates, security alerts, and support and administrative messages. * Safety and Security. It is in our legitimate business interest to use your personal information to help maintain the safety, security, and integrity of you and the Services, including to: * protect, investigate, and deter against fraudulent, unauthorized, or illegal activity; * monitor and verify identity or service access, combat spam, malware or security risks; * perform internal operations necessary to provide the Services, including to troubleshoot software bugs and operational problems; * enforce our agreements with third parties, and address violations of our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) or agreements for other products or services; * comply with applicable security laws and regulations. * Customer Support. If you reach out to us for support, it is in our legitimate business interest to use your personal information to provide customer support, including to: * direct questions to the appropriate customer support person; * investigate and address user concerns; * monitor and improve our customer support responses and processes. * Personalization. We may use your personal information to personalize your experience and use of the Services and our communications. * Research and Development. It is in our legitimate business interest to use your personal information for testing, research, analysis, and product development to improve your experience. This helps us to improve and enhance the safety and security of the Services, improve our ability to prevent the use of the Services for illegal or improper purposes and develop new features and products relating to the Services. * Legal and Regulatory Compliance. It is in our legitimate interests to enforce compliance with our terms and policies, including our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , to ensure the integrity of the Services and to defend ourselves against legal claims or disputes. Where we do so, we will use the personal information relevant to such a case. We may also verify your identity by comparing the personal information you provide against third-party databases and public records and we use personal information to investigate or address claims or disputes relating to use of the Services, or as otherwise allowed by applicable law, or as requested by regulators, government entities, and official inquiries. * Direct Marketing. Except where consent is required, it is in our legitimate interest to use the information we collect to market the Services to you. This may include sending you communications about the Services, features, promotions, surveys, news, updates, and events, and managing your participation in these promotions and events. If you do not want us to send you marketing communications, please opt out by selecting “unsubscribe” to any marketing email sent by us or by contacting us using the details in the “Contact Us” section of this Policy. * Anonymization and Aggregation. It is in our legitimate interests to aggregate or anonymize personal information in a form that does not allow you to be personally identified and use the resulting information for statistical analysis regarding the use of the Services, such as to better understand our customer base, or for other purposes. **When We Share and Disclose Information** We may share your information in the following circumstances: * To Comply with Our Legal Obligations. We may share your information: (a) to cooperate with government investigations; (b) when we are compelled to do so by a subpoena, court order, or similar legal procedure; (c) when we believe in good faith that the disclosure of personal information is necessary to prevent harm to another person; (d) to report suspected illegal activity; or (e) to investigate violations of our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , agreements for other products or services, or any other applicable policies. * With Service Providers or Other Third Parties. We may share your personal information with service providers or other third parties who help facilitate business and compliance operations, such as marketing and technology services. * Partners. We may share your personal information with business partners, for example marketing partners, subject to any consent requirements. * Affiliates. We may share your personal information with our subsidiaries and affiliates, for purposes consistent with this Policy. * During a Change to Our Business. If we engage in a merger, acquisition, bankruptcy, dissolution, reorganization, sale of some or all of our assets or stock, financing, public offering of securities, acquisition of all or a portion of our business, a similar transaction or proceeding, or steps in contemplation of such activities, some or all of your personal information may be shared or transferred, subject to standard confidentiality arrangements. * Aggregated or De-identified Data. We may share aggregated or anonymized data with other persons for their own uses. **INTERNATIONAL TRANSFERS** We operate globally, and we may need to transfer your personal data internationally. To provide secure and stabile of the Services, we maintain servers in Japan, Singapore, and Hong Kong. Your personal data may be processed outside your country of residence. Data protection laws vary from country to country, with some countries offer more protection than others. Wherever your personal data is processed, we apply the same protections as described in this Notice. We transfer your personal data in accordance with legal frameworks required in different jurisdictions. Recipients of your personal data must agree to at least the same level of privacy safeguards required by applicable data protection laws. Such as those described below:In some cases, we rely on the following adequacy decisions: * [European Commission adequacy decisionsarrow-up-right](https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en) * [UK adequacy regulationsarrow-up-right](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/international-transfers/international-transfers-a-guide/#adequacy) * [Swiss adequacy decisionsarrow-up-right](https://www.edoeb.admin.ch/edoeb/en/home/datenschutz/arbeit_wirtschaft/datenuebermittlung_ausland.html) In some cases, we rely on the following agreements: * [EEA Standard Contractual Clauses (SCCs)arrow-up-right](https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en) * [UK Standard clause contractarrow-up-right](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/international-transfers/international-data-transfer-agreement-and-guidance/) **Data Retention** We retain your personal information only for as long as is necessary to fulfill the purposes for which it was collected and processed, in accordance with our retention procedures, and in accordance with applicable laws or until you withdraw your consent (where applicable). To determine the appropriate retention period for your personal information, we consider the amount, nature and sensitivity of the personal information, the potential risk of harm from unauthorized use or disclosure of your personal information, the purposes for which we use your personal information and whether we can achieve those purposes through other means, and the applicable legal requirements. **Your Rights and Choices** To view or update your information, contact us using the details in the “Contact Us” section of this Policy. If provided under any applicable law and subject to any limitations in such law, you may: Ask us for access to your personal information we hold; Request corrections or deletions of your personal information; Request to restrict the processing of your personal information, or object to that processing; Withdraw your consent (where we are processing your personal information based on your consent) to the processing of your personal information; Request for the receipt or the transfer to another organization, in a machine-readable form, of the personal information that you have provided to us; and Complain to your local data protection authority of violation of your privacy rights, or your suffering as a result of unlawful processing of your personal information. Please note that, prior to any response to the exercise of such rights, we will require you to verify your identity. In addition, we may have valid legal reasons to refuse your request, and will inform you if that is the case. If you would like to exercise your rights, or for more information on your rights, please contact us using the details in the “Contact Us” section of this Policy. **Security** We maintain administrative, technical and physical safeguards designed to protect the personal information we maintain against unauthorized access, use, disclosure, alteration or destruction in line with applicable data protection and privacy laws and we require our third-party service providers to implement appropriate safeguards. No system can be completely secure. Therefore, although we take steps to secure you information, we cannot guarantee that your information, searches or other communication will always remain secure. You are responsible for all activity on the Services relating to any of your Ethereum network addresses or cryptocurrency wallets. **Age Limitations** To the extent prohibited by applicable law, we do not allow use of the Services by anyone younger than 18 years old. If you learn that anyone younger than 18 years old has unlawfully provided us with personal data, please contact us using the details in the “Contact Us” section of this Policy and we will take steps to delete such information, close any such accounts, and, to the extent possible, prevent the user from continuing to use the Services. **Third-Party Matters** Through the Services, we may provide links to websites, mobile applications or any other online assets that are not owned or controlled by us. This Policy does not apply to those websites. If you choose to use those websites, please check the legal and privacy statements posted on each website, mobile application or the online asset you access to understand their privacy practices. We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.For the avoidance of doubt, any TradingView charts displayed on the Site is governed by this Policy and not by TradingView’s [Privacy Policyarrow-up-right](https://www.tradingview.com/privacy-policy/) . **Changes to This Policy** If we make any changes, we will change the Last Updated date above. We encourage you to review this Policy to stay informed. If we make material changes, we will provide additional notice. **Online Tracking** Cookies are small text files of letters and numbers that are stored and accessed on your browser or the hard drive of your device. Like many companies online, we use services provided by Google and other companies that use cookies and other tracking technology to collect directly from your device information about your browsing activities, your interactions with websites, and the device you are using to connect to the Internet. The use of these technologies will improve your experience when you browse or use the Services, and allow us to enhance the functionality of the Services, increase security, and measure the use and effectiveness of the Services. This Policy also governs: * Pixels: A pixel is a small amount of code on a web page or in an email notification that typically works in conjunction with cookies to identify users and record user behavior. We use pixels to learn whether you have interacted with certain web or email content. This helps us measure and improve the Services and personalize your experience. * Local Storage: Local storage is an industry-standard technology that allows a website or application to store information locally on your computer or mobile device. We use local storage, including HTML5, to customize what we show you based on your content consumption and other past interactions with the Services. * Device Identifiers: Device identifiers are distinctive numbers associated with a smartphone or similar handheld device. We use mobile device identifiers for purposes set out in this Policy, for example to recognize your device when you return to the Services or otherwise use the Services. We use the following types of cookies: * Strictly necessary cookies: These cookies are necessary for the Services to function and cannot be switched off in our systems. They allow us to enable security, prevent fraud and debug the website and are usually only set in response to actions made by you which amount to a request for Services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but then some parts of the Services will not work. * Analytical or Performance cookies: These cookies allow us to count visits and traffic sources so we can measure and improve the performance of the Services. They help us to know which pages are the most and least popular and see how visitors move around the Services. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited the Services and will not be able to monitor its performance. * Functional cookies: These are used to recognize you when you return to the Services. This enables us to personalize our content for you, greet you by name and remember your account preferences. * Marketing cookies: These cookies are used by third-party advertisers or publishers to display personalized advertising. They do this by tracking your activity across websites. We use both persistent cookies and session cookies. Persistent cookies stay on your device for a set period of time or until you delete them, while session cookies are deleted once you close your web browser. The cookies placed through your use of the Services are either set by us (first-party cookies) or by a third party at our request (third-party cookies) You have a number of options to object, control or limit how we, our partners, and other third parties use cookies. You can block cookies through the mechanisms described below. However, note that cookies are important to many aspects of the Services. If you disable all cookies, you may not be able to enjoy all features of the Services. * Blocking cookies in your browser. Most browsers let you remove or reject cookies, including cookies used for interest-based advertising. To do this, follow the instructions in your browser settings. Many browsers accept cookies by default until you change your settings. For more information about cookies, including how to see what cookies have been set on your device and how to manage and delete them, visit [www.allaboutcookies.org.arrow-up-right](https://allaboutcookies.org/) * Blocking advertising ID use in your mobile settings. Your mobile device settings may provide functionality to limit use of the advertising ID associated with your mobile device for interest-based advertising purposes. * Using privacy plug-ins or browsers. You can block our websites from setting cookies used for interest-based ads by using a browser with privacy features, like Brave, or installing browser plugins like Privacy Badger, Ghostery or uBlock Origin, and configuring them to block third-party cookies or trackers. * Platform opt-outs. The following advertising partner offers opt-out features that let you opt-out of use of your information for interest-based advertising: * Google: [https://adssettings.google.com.arrow-up-right](https://adssettings.google.com/) * Advertising industry opt-out tools. You can also use the opt-out options set forth below to limit use of your information for interest-based advertising by participating companies. Note that because these opt-out mechanisms are specific to the device or browser on which they are exercised, you will need to opt out on every browser and device that you use. * Digital Advertising Alliance: [http://optout.aboutads.infoarrow-up-right](http://optout.aboutads.info/) **Notice to California Residents (“CCPA Notice”)** We are required by the California Consumer Privacy Act of 2018 (“CCPA”) to provide this CCPA Notice to California residents to explain how we collect, use and share their personal information, and the rights and choices we offer California residents regarding our handling of their personal information. **CCPA Scope and Exclusions** This CCPA Notice, including the description of our Privacy Practices and your Privacy Rights, apply only to California residents whose interactions with us are limited to: * visiting our consumer websites; and * signing up for email alerts. This CCPA Notice does not apply to the personal information we collect, use or disclose about: * individuals who provide information to us to initiate or complete the process of trading on our platform, which are subject to the notice set forth in the "Additional Disclosure" section of this Policy; or * representatives of businesses that seek to obtain our products or Services, or to provide products or services to us. **Privacy Practices** We do not “sell” the personal information (as defined in the CCPA) we collect for monetary value (and will not sell it without providing a right to opt out). Like many companies, we may use third-party cookies for our advertising purposes. If you would like to learn how you may opt out of our use of cookies and other tracking technologies, please review the instructions provided in the "Online Tracking" section of this Policy. **Privacy Rights** The CCPA grants individuals the following rights: * Information. You can request information about how we have collected, used and shared your personal information during the past 12 months. For details about the personal information we have collected over the last 12 months, including the categories of sources, please see the "What We Collect" section of this Policy. We collect this information for the business and commercial purposes described in the How We Use Information section of this Policy. We share this information with the categories of third parties described in the "When We Share and Disclose Information" section of this Policy. * Access. You can request a copy of the personal information that we maintain about you. * Deletion. You can ask us to delete the personal information that we collected or maintain about you. Please note that the CCPA limits these rights by, for example, prohibiting us from providing certain sensitive information in response to an access request and limiting the circumstances in which we must comply with a deletion request. We will also respond to requests for information and access only to the extent we are able to associate, with a reasonable effort, the information we maintain with the identifying details you provide in your request. If we deny your request, we will communicate our decision to you. You are entitled to exercise the rights described above free from discrimination. **How to Submit a Request** To request access to or deletion of personal information, contact us using the details in the “Contact Us” section of this Policy. **Identity Verification** The CCPA requires us to verify the identity of the individual submitting a request to access or delete personal information before providing a substantive response to the request. We will ask you to verify your identity when you submit a request. **Authorized Agents** California residents can empower an “authorized agent” to submit requests on their behalf. We will require the authorized agent to have a written authorization confirming that authority. **Additional Disclosure for Our Consumers and Customers (“Additional Disclosure”)** This Additional Disclosure governs our collection, use and sharing of personal information that users provide to us to initiate or complete the process of trading on the edgeX protocol. To the extent there are conflicting provisions between this "Additional Disclosure" section and other sections of this Policy, this "Additional Disclosure" section will govern. The types of personal information we collect and share can include: * Contact details * IP addresses * Trading history * Cryptocurrency balances and wallets * Conversion events Notwithstanding anything to the contrary in this Policy, when you are no longer our customer, we continue to share your information as described in this Additional Disclosure. **Reasons We Can Share Your Personal Information** We need to share users’ personal information to operate certain aspects of the edgeX protocol and our business. Whether we share your personal information, the reasons for which we share your personal information and whether you can limit this sharing include the following: * We share users’ personal information for our everyday business purposes, such as to process and match your orders and respond to court orders and legal investigations. You cannot limit our sharing of this information. * Subject to any consent requirements in any applicable laws, we may share users’ personal information for our marketing purposes, such as to offer our products and services to you. * We do not share users’ personal information for joint marketing with financial companies. * We do not share users’ personal information for our affiliates’ everyday business purposes. * We do not share users’ personal information for our affiliates to market to you. * We share users’ personal information for nonaffiliates to market to you. **How Does edgeX Collect My Personal Information?** We collect your personal information, for example, when you deposit cryptoassets in the edgeX protocol, make trades using the edgeX protocol, or withdraw cryptoassets from the edgeX, protocol. We may also collect your personal information from other companies. **Why Can’t I Limit All Sharing?** Applicable laws give you the right to limit only (a) sharing for affiliates’ everyday business purposes, (b) affiliates from using your information to market to you, and (c) sharing for nonaffiliates to market to you. State laws, regional laws and individual companies may give you additional rights to limit sharing. See above for more on your rights under state law. As used in this "Additional Disclosure" section, “affiliates” refer to companies related by common ownership or control; “nonaffiliates” refer to companies not related by common ownership or control; and “joint marketing” refers to a formal agreement between nonaffiliated financial companies that together market financial products or services to you. **Contact Us** edgeX is the entity responsible for the processing of your personal information. Please contact us if you have any questions about this Policy or if you are seeking to exercise any of your statutory rights. We will respond within a reasonable time frame. You may contact us at our website or at our mailing address: support@edgex.exchange Privacy Officer EDGEX DAO PTE. LTD. [PreviousTerms of Usechevron-left](https://edgex-1.gitbook.io/edgex-documentation/about/terms-of-use) Last updated 1 year ago --- # Meta Data API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#metadatapublicapi) MetaDataPublicApi ------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#get-server-time) GET Server Time GET /api/v1/public/meta/getServerTime > Example Response > 200 Response Copy { "code": "SUCCESS", "data": { "timeMillis": "1734596189305" }, "msg": null, "errorParam": null, "requestTime": "1734596189305", "responseTime": "1734596189305", "traceId": "a69e6ec51701d7246cb344a719c99cbf" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#response-body) Response Body Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#getservertime) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#get-meta-data) GET Meta Data GET /api/v1/public/meta/getMetaData > Example Response > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#response-body-1) Response Body Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#MetadataResult) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------ #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#metadataresult) MetadataResult Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, others for failure. data [MetaData](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemametadata) false none Global metadata errorParam object false none Parameter information in error message requestTime string(timestamp) false none Server request receiving time responseTime string(timestamp) false none Server response returning time traceId string false none Call traceId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemametadata) schemametadata Name Type Required Constraints Description global [Global](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemaglobal) false none Global meta information coinList \[[Coin](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemacoin)\ \] false none All coin meta information contractList \[[Contract](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemacontract)\ \] false none All contract meta information multiChain [MultiChain](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemamultichain) false none Cross-chain withdrawal related class #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemamultichain) schemamultichain Name Type Required Constraints Description coinId string(int64) false none Asset id for deposit and withdrawal maxWithdraw string false none Maximum withdrawal amount minWithdraw string false none Minimum withdrawal amount minDeposit string false none Minimum deposit amount chainList \[[Chain](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemachain)\ \] false none Supported chains #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemachain) schemachain Name Type Required Constraints Description chain string false none Main chain name chainId string(int64) false none chainId chainIconUrl string false none Main chain icon url contractAddress string false none Contract address depositGasFeeLess boolean false none Whether to charge deposit fee feeLess boolean false none Whether to exempt from fees feeRate string false none Fee rate gasLess boolean false none Whether to charge gas fee gasToken string false none Main chain token name minFee string false none Minimum withdrawal fee. If gas + value\*fee\_rate is less than min\_fee, it will be charged according to min\_fee rpcUrl string false none Online node service of the chain webTxUrl string false none Transaction tx link withdrawGasFeeLess boolean false none Whether to charge withdrawal fee tokenList \[[MultiChainToken](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemamultichaintoken)\ \] false none Collection of cross-chain related token information txConfirm string(int64) false none Number of confirmations for on-chain deposit blockTime string false none Block time appRpcUrl string false none none #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemamultichaintoken) schemamultichaintoken Name Type Required Constraints Description tokenAddress string false none Token contract address decimals string(int64) false none Token precision iconUrl string false none Token icon url token string false none Token name pullOff boolean false none Whether to delist, default is false withdrawEnable boolean false none Whether to support withdrawal of this type of asset useFixedRate boolean false none Whether to use a fixed exchange rate fixedRate string false none Fixed exchange rate #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemacontract) schemacontract Name Type Required Constraints Description contractId string(int64) false none Perpetual contract pair identifier contractName string false none Perpetual contract pair name baseCoinId string(int64) false none e.g., 10000001 (BTC) quoteCoinId string(int64) false none e.g., 1001 (USD/USDT) tickSize string(decimal) false none Minimum price increment (quoteCoinId) stepSize string(decimal) false none Minimum quantity increment (baseCoinId) minOrderSize string(decimal) false none Minimum order quantity (baseCoinId) maxOrderSize string(decimal) false none Maximum order quantity (baseCoinId) maxOrderBuyPriceRatio string(decimal) false none Maximum limit buy order price ratio (compared to oracle price), decimal (quote\_coin\_id) minOrderSellPriceRatio string(decimal) false none Minimum limit sell order price ratio (compared to oracle price), decimal (quote\_coin\_id) maxPositionSize string(decimal) false none Maximum position quantity (baseCoinId) riskTierList \[[RiskTier](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemarisktier)\ \] false none List of risk limit tiers defaultTakerFeeRate string(decimal) false none Default taker fee rate for the contract defaultMakerFeeRate string(decimal) false none Default maker fee rate for the contract defaultLeverage string(decimal) false none Initial default leverage multiplier when user has not set a trading leverage liquidateFeeRate string(decimal) false none Liquidation fee rate enableTrade boolean false none Whether trading is allowed. true: allowed, false: not allowed enableDisplay boolean false none Whether to display. true: display, false: hide enableOpenPosition boolean false none Whether opening positions is allowed. true: allowed to open and close, false: only allowed to close positions fundingInterestRate string(decimal) false none Default value of overall interest rate, e.g., 0.0003 fundingImpactMarginNotional string(decimal) false none Quantity for calculating depth-weighted bid/ask price, e.g., 8000 fundingMaxRate string(decimal) false none Maximum funding rate, e.g., 0.000234 fundingMinRate string(decimal) false none Minimum funding rate, e.g., -0.000234 fundingRateIntervalMin string(decimal) false none Settlement interval of funding rate (in minutes, must be an integer multiple of 60 minutes, settlement starts from 00:00 UTC) decimal displayDigitMerge string(decimal) false none Depth merge. e.g., "1,0.1,0.001" displayMaxLeverage string(decimal) false none Maximum leverage multiplier to display, decimal. e.g., 20 displayMinLeverage string(decimal) false none Minimum leverage multiplier to display, decimal. e.g., 1 displayNewIcon boolean false none Whether it is a newly listed pair displayHotIcon boolean false none Whether it is a hot pair matchServerName string false none Matching service name, e.g., xxx-match-server-a. This value cannot be changed once configured, otherwise data migration is required. starkExSyntheticAssetId string(int64) false none Synthetic asset id of the current pair, bigint for hex str. starkExResolution string(int64) false none Processing precision of the quantity held by the current pair, bigint for hex str starkExOraclePriceQuorum string(int64) false none Legal number of oracle prices, bigint for hex str starkExOraclePriceSignedAssetId \[string\] false none bigint for hex str starkExOraclePriceSigner \[string\] false none bigint for hex str #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemarisktier) schemarisktier Name Type Required Constraints Description tier integer(int32) false none Tier, starting from 1 positionValueUpperBound string(decimal) false none Upper limit of position value for the tier (inclusive) maxLeverage string(decimal) false none Maximum available leverage for the tier maintenanceMarginRate string(decimal) false none Maintenance margin rate for the tier (only for display, the actual maintenance margin rate used is stark\_ex\_risk / 2^32 as an accurate maintenance margin rate), decimal starkExRisk string(int64) false none 1 ≤ risk < 2^32 starkExUpperBound string(int64) false none bigint. 0 ≤ upper\_bound ≤ 2^128-1 #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemacoin) schemacoin Name Type Required Constraints Description coinId string(int64) false none Coin id coinName string false none Coin name stepSize string(decimal) false none Minimum quantity unit showStepSize string(decimal) false none Minimum unit displayed to the user iconUrl string(url) false none Coin icon url starkExAssetId string(int64) false none starkex asset id. If empty, it means it does not exist starkExResolution string false none starkex processing precision. If empty, it means it does not exist #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemaglobal) schemaglobal Name Type Required Constraints Description appName string false none xxx appEnv string false none dev/testnet/mainnet appOnlySignOn string false none https://xxx.exchange feeAccountId string(int64) false none Fee account id feeAccountL2Key string false none Fee account l2Key, bigint for hex str poolAccountId string(int64) false none Asset pool account id poolAccountL2Key string false none Asset pool account l2Key, bigint for hex str fastWithdrawAccountId string(int64) false none Fast withdrawal account id fastWithdrawAccountL2Key string false none Fast withdrawal account l2Key, bigint for hex str fastWithdrawMaxAmount string false none Maximum amount for fast withdrawal fastWithdrawRegistryAddress string false none Fast withdrawal account address starkExChainId string false none Chain id of starkex. bigint for hex str starkExContractAddress string false none starkex contract address. starkExCollateralCoin [Coin](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemacoin) false none Coin meta information starkExMaxFundingRate integer(int32) false none Maximum funding rate per second after starkex precision processing. i.e. stark\_ex\_max\_funding\_rate \* 2^32 is the actual maximum funding rate per second. E.g.: 1120 starkExOrdersTreeHeight integer(int32) false none Order merkle tree height. E.g.: 64 starkExPositionsTreeHeight integer(int32) false none Account merkle tree height. E.g.: 64 starkExFundingValidityPeriod integer(int32) false none Funding rate submission validity period in seconds. E.g.: 86400 starkExPriceValidityPeriod integer(int32) false none Oracle price submission validity period in seconds. E.g.: 86400 maintenanceReason string false none Maintenance reason, empty if no maintenance #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#getservertime) getservertime Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, others for failure. data [GetServerTime](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemagetservertime) false none Server time errorParam object false none Parameter information in error message requestTime string(timestamp) false none Server request receiving time responseTime string(timestamp) false none Server response returning time traceId string false none Call traceId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#schemagetservertime) schemagetservertime Name Type Required Constraints Description timeMillis string(int64) false none Server timestamp, milliseconds [PreviousPublic APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/public-api) [NextQuote APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api) Last updated 1 year ago * [MetaDataPublicApi](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#metadatapublicapi) * [GET Server Time](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#get-server-time) * [GET Meta Data](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#get-meta-data) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api#data-models) Copy { "code": "SUCCESS", "data": { "global": { "appName": "edgeX", "appEnv": "testnet", "appOnlySignOn": "https://testnet.edgex.exchange", "feeAccountId": "123456", "feeAccountL2Key": "0x1e240", "poolAccountId": "542076087396467085", "poolAccountL2Key": "0x3bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "fastWithdrawAccountId": "542076087396467085", "fastWithdrawAccountL2Key": "0x3bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "fastWithdrawMaxAmount": "100000", "fastWithdrawRegistryAddress": "0xb2846943C2EdA3830Fb784d2a6de93435267b11D", "starkExChainId": "0xaa36a7", "starkExContractAddress": "0xa3Cb2622C532e46c4376FAd4AbFDf9eDC717BABf", "starkExCollateralCoin": { "coinId": "1000", "coinName": "USDT", "stepSize": "0.000001", "showStepSize": "0.0001", "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg", "starkExAssetId": "0x33bda5c923bae4e84825b74762d5482889b9512465fbffc50d1ae4b82e345c3", "starkExResolution": "0xf4240" }, "starkExMaxFundingRate": 1120, "starkExOrdersTreeHeight": 64, "starkExPositionsTreeHeight": 64, "starkExFundingValidityPeriod": 604800, "starkExPriceValidityPeriod": 31536000, "maintenanceReason": "" }, "coinList": [\ {\ "coinId": "1000",\ "coinName": "USDT",\ "stepSize": "0.000001",\ "showStepSize": "0.0001",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "starkExAssetId": "0x33bda5c923bae4e84825b74762d5482889b9512465fbffc50d1ae4b82e345c3",\ "starkExResolution": "0xf4240"\ },\ {\ "coinId": "1001",\ "coinName": "BTC",\ "stepSize": "0.001",\ "showStepSize": "0.001",\ "iconUrl": "https://static.edgex.exchange/icons/coin/BTC.svg",\ "starkExAssetId": null,\ "starkExResolution": null\ }\ ], "contractList": [\ {\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "baseCoinId": "1001",\ "quoteCoinId": "1000",\ "tickSize": "0.1",\ "stepSize": "0.001",\ "minOrderSize": "0.001",\ "maxOrderSize": "50.000",\ "maxOrderBuyPriceRatio": "0.05",\ "minOrderSellPriceRatio": "0.05",\ "maxPositionSize": "60.000",\ "riskTierList": [\ {\ "tier": 1,\ "positionValueUpperBound": "50000",\ "maxLeverage": "100",\ "maintenanceMarginRate": "0.005",\ "starkExRisk": "21474837",\ "starkExUpperBound": "214748364800000000000"\ },\ {\ "tier": 22,\ "positionValueUpperBound": "79228162514264337593543",\ "maxLeverage": "6",\ "maintenanceMarginRate": "0.105",\ "starkExRisk": "450971567",\ "starkExUpperBound": "340282366920938463463374607431768211455"\ }\ ],\ "defaultTakerFeeRate": "0.00055",\ "defaultMakerFeeRate": "0.0002",\ "defaultLeverage": "50",\ "liquidateFeeRate": "0.01",\ "enableTrade": true,\ "enableDisplay": true,\ "enableOpenPosition": true,\ "fundingInterestRate": "0.0003",\ "fundingImpactMarginNotional": "10",\ "fundingMaxRate": "0.000234",\ "fundingMinRate": "-0.000234",\ "fundingRateIntervalMin": "240",\ "displayDigitMerge": "0.1,0.5,1,2,5",\ "displayMaxLeverage": "50",\ "displayMinLeverage": "1",\ "displayNewIcon": false,\ "displayHotIcon": true,\ "matchServerName": "edgex-match-server",\ "starkExSyntheticAssetId": "0x425443322d31300000000000000000",\ "starkExResolution": "0x2540be400",\ "starkExOraclePriceQuorum": "0x1",\ "starkExOraclePriceSignedAssetId": [\ "0x425443555344000000000000000000004d616b6572",\ "0x425443555344000000000000000000005374437277",\ "0x4254435553440000000000000000000053746f726b",\ "0x425443555344000000000000000000004465787472",\ "0x4254435553440000000000000000000053744b6169"\ ],\ "starkExOraclePriceSigner": [\ "0x28253746dcd68a62df58cda44db2613ab11c8d17deb036feaec5ece1f8a16c1",\ "0x41dbe627aeab66504b837b3abd88ae2f58ba6d98ee7bbd7f226c4684d9e6225",\ "0xcc85afe4ca87f9628370c432c447e569a01dc96d160015c8039959db8521c4",\ "0x2af704df5467285c5d1bd7c08ee33c49057fb2a05ecdc4f949293190f28ce7e",\ "0x63f0f8507cc674ff668985a1ea854d3b73835a8181bfbb4564ae422bf68a2c0"\ ]\ },\ {\ "contractId": "10000002",\ "contractName": "ETHUSDT",\ "baseCoinId": "1002",\ "quoteCoinId": "1000",\ "tickSize": "0.01",\ "stepSize": "0.01",\ "minOrderSize": "0.01",\ "maxOrderSize": "500.00",\ "maxOrderBuyPriceRatio": "0.05",\ "minOrderSellPriceRatio": "0.05",\ "maxPositionSize": "800.00",\ "riskTierList": [\ {\ "tier": 1,\ "positionValueUpperBound": "50000",\ "maxLeverage": "100",\ "maintenanceMarginRate": "0.005",\ "starkExRisk": "21474837",\ "starkExUpperBound": "214748364800000000000"\ },\ {\ "tier": 22,\ "positionValueUpperBound": "79228162514264337593543",\ "maxLeverage": "6",\ "maintenanceMarginRate": "0.105",\ "starkExRisk": "450971567",\ "starkExUpperBound": "340282366920938463463374607431768211455"\ }\ ],\ "defaultTakerFeeRate": "0.00055",\ "defaultMakerFeeRate": "0.0002",\ "defaultLeverage": "50",\ "liquidateFeeRate": "0.01",\ "enableTrade": true,\ "enableDisplay": true,\ "enableOpenPosition": true,\ "fundingInterestRate": "0.0003",\ "fundingImpactMarginNotional": "100",\ "fundingMaxRate": "0.000234",\ "fundingMinRate": "-0.000234",\ "fundingRateIntervalMin": "240",\ "displayDigitMerge": "0.01,0.02,0.04,0.1,0.2",\ "displayMaxLeverage": "50",\ "displayMinLeverage": "1",\ "displayNewIcon": true,\ "displayHotIcon": false,\ "matchServerName": "edgex-match-server",\ "starkExSyntheticAssetId": "0x4554482d3900000000000000000000",\ "starkExResolution": "0x3b9aca00",\ "starkExOraclePriceQuorum": "0x1",\ "starkExOraclePriceSignedAssetId": [\ "0x455448555344000000000000000000004d616b6572",\ "0x455448555344000000000000000000005374437277",\ "0x4554485553440000000000000000000053746f726b",\ "0x455448555344000000000000000000004465787472",\ "0x4554485553440000000000000000000053744b6169"\ ],\ "starkExOraclePriceSigner": [\ "0x28253746dcd68a62df58cda44db2613ab11c8d17deb036feaec5ece1f8a16c1",\ "0x41dbe627aeab66504b837b3abd88ae2f58ba6d98ee7bbd7f226c4684d9e6225",\ "0xcc85afe4ca87f9628370c432c447e569a01dc96d160015c8039959db8521c4",\ "0x2af704df5467285c5d1bd7c08ee33c49057fb2a05ecdc4f949293190f28ce7e",\ "0x63f0f8507cc674ff668985a1ea854d3b73835a8181bfbb4564ae422bf68a2c0"\ ]\ }\ ], "multiChain": { "coinId": "1000", "maxWithdraw": "100000", "minWithdraw": "0", "minDeposit": "10", "chainList": [\ {\ "chain": "Sepolia - Testnet",\ "chainId": "11155111",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xC820e27D4821071129D4fB04CcD9ae8a370373bc",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "ETH",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/eth-sepolia",\ "webTxUrl": "https://sepolia.etherscan.io/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0xd98B590ebE0a3eD8C144170bA4122D402182976f",\ "decimals": "6",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "12",\ "allowAaDeposit": true,\ "allowAaWithdraw": false,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/eth-sepolia"\ },\ {\ "chain": "BNB - Testnet",\ "chainId": "97",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xBe8dCAE2b5E58BdEe4695F7f366fF0A8B0A414D1",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "BSC",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/bsc-testnet",\ "webTxUrl": "https://testnet.bscscan.com/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0xda6c748A7593826e410183F05893dbB363D025a1",\ "decimals": "6",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "3",\ "allowAaDeposit": false,\ "allowAaWithdraw": false,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/bsc-testnet"\ },\ {\ "chain": "Arbitrum - Testnet",\ "chainId": "421614",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xeeA926DB072E839063321776ddAdaddeECdF9718",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "ETH",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/arbitrum-sepolia",\ "webTxUrl": "https://sepolia.arbiscan.io/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0x608babb39bb03C038b8DABc3D4bF4e0D02d455Cd",\ "decimals": "18",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "3",\ "allowAaDeposit": true,\ "allowAaWithdraw": true,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/arbitrum-sepolia"\ }\ ] } }, "msg": null, "errorParam": null, "requestTime": "1734595526342", "responseTime": "1734595526343", "traceId": "1ee9b62c30925f0df6bd6c8604f32df4" } --- # Quote API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#quotepublicapi) QuotePublicApi --------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-get-quote-summary) GET Get Quote Summary GET /api/v1/public/quote/getTicketSummary #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters) Request Parameters Name Location Type Required Description period query string No Summary period > Response Example > 200 Response Copy { "code": "SUCCESS", "data": { "tickerSummary": { "period": "LAST_DAY_1", "trades": "31450", "value": "201048203.7979", "openInterest": "13.565" } }, "msg": null, "errorParam": null, "requestTime": "1734596957000", "responseTime": "1734596957003", "traceId": "574a8b43497ebd0bca55d0b257d034fa" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#gettickersummarymodel) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-24-hour-quotes) GET Query 24-Hour Quotes GET /api/v1/public/quote/getTicker #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters-1) Request Parameters Name Location Type Required Description contractId query string No Contract ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-1) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistticker) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-multi-contract-quantitative-k-line) GET Query Multi-Contract Quantitative K-Line GET /api/v1/public/quote/getMultiContractKline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters-2) Request Parameters Name Location Type Required Description contractIdList query string No Collection of Contract IDs priceType query string No Price type klineType query string No K-line type size query string No Number to retrieve. Must be greater than 0 and less than or equal to 200 filterBeginKlineTimeInclusive query string No Query start time (if 0, means from current time). Returns in descending order by time filterEndKlineTimeExclusive query string No Query end time > Request Example > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-2) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistcontractkline) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-data-structure) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-k-line) GET Query K-Line GET /api/v1/public/quote/getKline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters-3) Request Parameters Name Location Type Required Description contractId query string No Contract ID priceType query string No Price type klineType query string No K-line type size query string No Number to retrieve. Must be greater than 0 and less than or equal to 1000 offsetData query string No Pagination offset. If empty, get the first page filterBeginKlineTimeInclusive query string No Query start time (if 0, means from current time). Returns in descending order by time filterEndKlineTimeExclusive query string No Query end time > Request Example > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-3) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultpagedatakline) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-get-exchange-long-short-ratio) GET Get Exchange Long Short Ratio GET /api/v1/public/quote/getExchangeLongShortRatio #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters-4) Request Parameters Name Location Type Required Description range query string No If empty, return data with the smallest range filterContractIdList query string No If empty, return data for all contracts filterExchangeList query string No If empty, return data for all exchanges > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-4) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#gettickersummarymodel) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-order-book-depth) GET Query Order Book Depth GET /api/v1/public/quote/getDepth #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#request-parameters-5) Request Parameters Name Location Type Required Description contractId query string No Contract ID level query string No Depth level. Currently 15 and 200 levels available > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-5) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistdepth) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#response-data-structure-1) Response Data Structure [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#data-models) Data Models --------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistdepth) schemaresultlistdepth Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[Depth](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemadepth)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemadepth) schemadepth Name Type Required Constraints Chinese Name Description startVersion string(int64) false none Start order book version number endVersion string(int64) false none End order book version number level integer(int32) false none Depth level contractId string(int64) false none Contract ID contractName string false none Contract name asks \[[BookOrder](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemabookorder)\ \] false none Ask list bids \[[BookOrder](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemabookorder)\ \] false none Bid list depthType string false none Depth type **Enum Values** Property Value depthType UNKNOWN\_DEPTH\_TYPE depthType SNAPSHOT depthType CHANGED depthType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemabookorder) schemabookorder Name Type Required Constraints Chinese Name Description price string(decimal) false none Price size string(decimal) false none Quantity #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultpagedatakline) schemaresultpagedatakline Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data [PageDataKline](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemapagedatakline) false none Generic paginated response errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemapagedatakline) schemapagedatakline Name Type Required Constraints Chinese Name Description dataList \[[Kline](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemakline)\ \] false none Data list nextPageOffsetData string false none Offset for the next page. If there is no next page, it's an empty string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemakline) schemakline Name Type Required Constraints Chinese Name Description klineId string(int64) false none K-Line ID contractId string(int64) false none Perpetual contract ID contractName string false none Perpetual contract name klineType string false none K-Line type klineTime string(int64) false none K-Line time priceType string false none Price type of the K-line trades string(int64) false none Number of trades size string(decimal) false none Volume value string(decimal) false none Value high string(decimal) false none High price low string(decimal) false none Low price open string(decimal) false none Opening price close string(decimal) false none Closing price makerBuySize string(decimal) false none Maker buy volume makerBuyValue string(decimal) false none Maker buy value **Enum Values** Property Value klineType UNKNOWN\_KLINE\_TYPE klineType MINUTE\_1 klineType MINUTE\_5 klineType MINUTE\_15 klineType MINUTE\_30 klineType HOUR\_1 klineType HOUR\_2 klineType HOUR\_4 klineType HOUR\_6 klineType HOUR\_8 klineType HOUR\_12 klineType DAY\_1 klineType WEEK\_1 klineType MONTH\_1 klineType UNRECOGNIZED priceType UNKNOWN\_PRICE\_TYPE priceType ORACLE\_PRICE priceType INDEX\_PRICE priceType LAST\_PRICE priceType ASK1\_PRICE priceType BID1\_PRICE priceType OPEN\_INTEREST priceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistcontractkline) schemaresultlistcontractkline Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[ContractMultiKline](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemacontractmultikline)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemacontractmultikline) schemacontractmultikline Name Type Required Constraints Chinese Name Description contractId string(int64) false none Perpetual contract ID klineList \[[Kline](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemakline)\ \] false none Collection of kline data #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemaresultlistticker) schemaresultlistticker Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[Ticker](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schematicker)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schematicker) schematicker Name Type Required Constraints Chinese Name Description contractId string(int64) false none Contract ID contractName string false none Contract Name priceChange string(decimal) false none Price change priceChangePercent string(decimal) false none Price change percentage trades string(int64) false none 24-hour number of trades size string(decimal) false none 24-hour trading volume value string(decimal) false none 24-hour trading value high string(decimal) false none 24-hour high price low string(decimal) false none 24-hour low price open string(decimal) false none 24-hour opening price close string(decimal) false none 24-hour closing price highTime string(int64) false none 24-hour high price time lowTime string(int64) false none 24-hour low price time startTime string(int64) false none 24-hour quote start time endTime string(int64) false none 24-hour quote end time lastPrice string(decimal) false none Latest trade price indexPrice string(decimal) false none Current index price oraclePrice string(decimal) false none Current oracle price openInterest string(decimal) false none Open Interest fundingRate string false none Current already settled funding rate fundingTime string(int64) false none Funding rate settlement time nextFundingTime string(int64) false none Next funding rate settlement time #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#gettickersummarymodel) gettickersummarymodel Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data [GetTickerSummary](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemagettickersummary) false none Get quote summary response errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schemagettickersummary) schemagettickersummary Name Type Required Constraints Chinese Name Description tickerSummary [TickerSummary](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schematickersummary) false none Quote summary #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#schematickersummary) schematickersummary Name Type Required Constraints Chinese Name Description period string false none Summary period trades string false none Total exchange number of trades value string false none Total traded value openInterest string false none Current total open interest **Enum Values** Property Value period UNKNOWN\_PERIOD period LAST\_DAY\_1 period LAST\_DAY\_7 period LAST\_DAY\_30 period UNRECOGNIZED [PreviousMeta Data APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/metadata-api) [NextFunding APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/funding-api) Last updated 1 year ago * [QuotePublicApi](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#quotepublicapi) * [GET Get Quote Summary](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-get-quote-summary) * [GET Query 24-Hour Quotes](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-24-hour-quotes) * [GET Query Multi-Contract Quantitative K-Line](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-multi-contract-quantitative-k-line) * [GET Query K-Line](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-k-line) * [GET Get Exchange Long Short Ratio](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-get-exchange-long-short-ratio) * [GET Query Order Book Depth](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#get-query-order-book-depth) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/public-api/quote-api#data-models) Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "priceChange": "-2270.5",\ "priceChangePercent": "-0.021849",\ "trades": "79372",\ "size": "499.487",\ "value": "50821443.7464",\ "high": "105331.5",\ "low": "98755.0",\ "open": "103913.2",\ "close": "101642.7",\ "highTime": "1734524115631",\ "lowTime": "1734575388228",\ "startTime": "1734510600000",\ "endTime": "1734597000000",\ "lastPrice": "101642.7",\ "indexPrice": "101676.380723500",\ "oraclePrice": "101636.3750002346932888031005859375",\ "openInterest": "0.105",\ "fundingRate": "-0.00012236",\ "fundingTime": "1734595200000",\ "nextFundingTime": "1734609600000"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734597508246", "responseTime": "1734597508250", "traceId": "a49014b0ad76a121193d4717294f85fc" } Copy https://pro.edgex.exchange/api/v1/public/quote/getMultiContractKline?contractIdList=10000001&klineType=HOUR_1&filterBeginKlineTimeInclusive=1733416860000&filterEndKlineTimeExclusive=1734601200000&priceType=LAST_PRICE Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "klineList": [\ {\ "klineId": "687194849731486048",\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "klineType": "HOUR_1",\ "klineTime": "1734595200000",\ "priceType": "LAST_PRICE",\ "trades": "3123",\ "size": "7.947",\ "value": "807240.1268",\ "high": "101798.4",\ "low": "101326.3",\ "open": "101603.8",\ "close": "101605.6",\ "makerBuySize": "5.222",\ "makerBuyValue": "530431.6634"\ }\ ]\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734601896988", "responseTime": "1734601897009", "traceId": "7edd9609a0c5976c1cb58bdee3d08088" } Copy https://pro.edgex.exchange/api/v1/public/quote/getKline?contractId=10000002&klineType=HOUR_1&filterBeginKlineTimeInclusive=1733416860000&filterEndKlineTimeExclusive=1734601200000&priceType=LAST_PRICE Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "klineId": "687194918450962784",\ "contractId": "10000002",\ "contractName": "ETHUSDT",\ "klineType": "HOUR_1",\ "klineTime": "1734595200000",\ "priceType": "LAST_PRICE",\ "trades": "3142",\ "size": "111.96",\ "value": "412199.6286",\ "high": "3694.59",\ "low": "3667.42",\ "open": "3694.57",\ "close": "3670.42",\ "makerBuySize": "52.21",\ "makerBuyValue": "192147.4907"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734601267556", "responseTime": "1734601267581", "traceId": "72cfd2eeb27fc602aa64990ad84cd8dd" } Copy { "code": "SUCCESS", "data": { "exchangeLongShortRatioList": [\ {\ "range": "30m",\ "contractId": "10000001",\ "exchange": "_total_",\ "buyRatio": "50.9900",\ "sellRatio": "49.0100",\ "buyVolUsd": "567855766.2701",\ "sellVolUsd": "545892952.7900",\ "createdTime": "1734597018839",\ "updatedTime": "1734597018839"\ }\ ], "allRangeList": [\ "30m",\ "1h",\ "4h",\ "12h",\ "24h"\ ] }, "msg": null, "errorParam": null, "requestTime": "1734597836994", "responseTime": "1734597837001", "traceId": "60af97ec1357f9d00da50bada9e4364c" } Copy { "code": "SUCCESS", "data": [\ {\ "startVersion": "201223746",\ "endVersion": "201223747",\ "level": 15,\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "asks": [\ {\ "price": "101695.9",\ "size": "0.579"\ },\ {\ "price": "101696.0",\ "size": "0.923"\ },\ {\ "price": "101703.0",\ "size": "0.129"\ }\ ],\ "bids": [\ {\ "price": "101695.5",\ "size": "1.710"\ },\ {\ "price": "101694.1",\ "size": "0.189"\ },\ {\ "price": "101692.9",\ "size": "0.223"\ }\ ],\ "depthType": "SNAPSHOT"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734598036434", "responseTime": "1734598036435", "traceId": "99b69f04bac0df6e37961f249b9545e4" } --- # Withdraw API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawprivateapi) WithdrawPrivateApi --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-withdraw-id) GET Get Withdrawals By Withdraw ID GET /api/v1/private/withdraw/getWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-parameters) Request Parameters Name Location Type Required Description accountId query string Yes Account ID withdrawIdList query string Yes List of withdraw IDs to retrieve. Used to batch fetch withdraw records by their IDs > Response Example > 200 Response Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawlist) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-client-withdraw-id) GET Get Withdrawals By Client Withdraw ID GET /api/v1/private/withdraw/getWithdrawByClientWithdrawId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-parameters-1) Request Parameters Name Location Type Required Description accountId query string Yes Account ID clientWithdrawIdList query string Yes List of client-defined withdraw IDs. Used to batch fetch withdraw records by client-specified IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawlist) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-active-withdrawals-with-pagination) GET Get Active Withdrawals with Pagination GET /api/v1/private/withdraw/getActiveWithdraw #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-parameters-2) Request Parameters Name Location Type Required Description accountId query string Yes Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100. Default: 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter withdrawals by specified coin IDs. If not provided, all coin withdrawals are retrieved filterStatusList query string No Filter withdrawals by specified statuses. If not provided, all status withdrawals are retrieved filterStartCreatedTimeInclusive query string No Filter withdrawals created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter withdrawals created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#pagedatawithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdraw-available-amount) GET Get Withdraw Available Amount GET /api/v1/private/withdraw/getWithdrawAvailableAmount #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string Yes Account ID coinId query string Yes Coin ID to check available withdrawal amount > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#getwithdrawavailableamount) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#post-create-withdraw) POST Create Withdraw POST /api/v1/private/withdraw/createWithdraw #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-parameters-4) Request Parameters Name Location Type Required Description accountId body string Yes Account ID coinId body string Yes Currency ID amount body string Yes Withdraw amount (decimal format) ethAddress body string Yes Ethereum address for the withdrawal erc20Address body string Yes ERC20 token contract address clientWithdrawId body string Yes Client-defined ID for idempotency verification riskSignature body string Yes Risk control signature (128 characters fixed length) l2Nonce body string Yes L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime body string Yes L2 signature expiration time in milliseconds. For signature generation/verification, use hours: l2\_expire\_time / 3600000 l2Signature body string Yes L2 signature submitted (128 characters fixed length) extraType body string Yes Additional type for upper-layer business use extraDataJson body string No Extra data in JSON format, defaults to empty string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#request-body-schema) Request Body Schema > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#createwithdraw) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawlist) WithdrawList Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [WithdrawModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawmodel) \[\] false none Withdraw List Array of withdraw records errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#pagedatawithdraw) PageDataWithdraw Name Type Required Constraints Description Notes dataList [WithdrawModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawmodel) \[\] false none Data List Array of withdraw records nextPageOffsetData string false none Next Page Offset Offset for retrieving the next page. If no next page data, empty string. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawmodel) WithdrawModel Name Type Required Constraints Description Notes id string(int64) false none Withdraw ID Unique identifier for the withdraw record userId string(int64) false none User ID ID of the owning user accountId string(int64) false none Account ID ID of the owning account coinId string(int64) false none Coin ID ID of the collateral coin amount string false none Withdraw Amount Amount of the withdrawal ethAddress string false none Ethereum Address Ethereum address for the withdrawal erc20Address string false none ERC20 Contract Address Contract address of the withdrawn token clientWithdrawId string false none Client Withdraw ID Client-defined ID for idempotency verification riskSignature [L2SignatureModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#l2signaturemodel) false none Risk Signature Risk control signature l2Nonce string(int64) false none L2 Nonce L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 Expire Time L2 signature expiration time in milliseconds l2Signature [L2SignatureModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#l2signaturemodel) false none L2 Signature L2 signature submitted extraType string false none Extra Type Additional type for upper-layer business use extraDataJson string false none Extra Data JSON Extra data in JSON format status string false none Withdraw Status Current status of the withdrawal collateralTransactionId string(int64) false none Collateral Transaction ID Associated collateral transaction ID when status is SUCCESS\_XXX/FAILED\_L2\_REJECT/FAILED\_L2\_REJECT\_APPROVED censorTxId string(int64) false none Censor Transaction ID Censorship processing sequence number when status is SUCCESS\_XXX/FAILED\_XXX censorTime string(int64) false none Censor Time Censorship processing time when status is SUCCESS\_XXX/FAILED\_XXX censorFailCode string false none Censor Fail Code Censorship failure code censorFailReason string false none Censor Fail Reason Censorship failure reason l2TxId string(int64) false none L2 Transaction ID Layer 2 transaction ID l2RejectTime string(int64) false none L2 Reject Time Layer 2 rejection time l2RejectCode string false none L2 Reject Code Layer 2 rejection code l2RejectReason string false none L2 Reject Reason Layer 2 rejection reason l2ApprovedTime string(int64) false none L2 Approved Time Layer 2 approval time createdTime string(int64) false none Created Time Record creation time updatedTime string(int64) false none Updated Time Record last update time #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#l2signaturemodel) L2SignatureModel Name Type Required Constraints Description Notes r string false none Signature R Component Bigint represented as hex string s string false none Signature S Component Bigint represented as hex string v string false none Signature V Component Bigint represented as hex string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#getwithdrawavailableamount) GetWithdrawAvailableAmount Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [GetWithdrawAvailableAmountModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#getwithdrawavailableamountmodel) false none Available Amount Response Response data for available withdrawal amount errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#getwithdrawavailableamountmodel) GetWithdrawAvailableAmountModel Name Type Required Constraints Description Notes availableAmount string false none Available Amount Available amount for withdrawal (decimal format) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#createwithdraw) CreateWithdraw Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [CreateWithdrawModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#createwithdrawmodel) false none Create Withdraw Response Response data for withdraw creation errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#createwithdrawmodel) CreateWithdrawModel Name Type Required Constraints Description Notes withdrawId string(int64) false none Withdraw ID ID of the created withdraw record [PreviousTransfer APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api) [NextWebsocket APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/websocket-api) Last updated 2 months ago * [WithdrawPrivateApi](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#withdrawprivateapi) * [GET Get Withdrawals By Withdraw ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-withdraw-id) * [GET Get Withdrawals By Client Withdraw ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-client-withdraw-id) * [GET Get Active Withdrawals with Pagination](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-active-withdrawals-with-pagination) * [GET Get Withdraw Available Amount](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#get-get-withdraw-available-amount) * [POST Create Withdraw](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#post-create-withdraw) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api#data-models) Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "availableAmount": "100.000000" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "accountId": "543429922991899150", "coinId": "1000", "amount": "10.000000", "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A", "erc20Address": "0x...", "clientWithdrawId": "client_withdraw_123", "riskSignature": "0x...", "l2Nonce": "123456789", "l2ExpireTime": "1734352781355", "l2Signature": "0x...", "extraType": "", "extraDataJson": "" } Copy { "code": "SUCCESS", "data": { "withdrawId": "563516408235819790" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } --- # Transfer API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferprivateapi) TransferPrivateApi --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-in-records-by-transfer-in-id) Get Transfer In Records By Transfer In ID GET /api/v1/private/transfer/getTransferInById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters) Request Parameters Name Location Type Required Description accountId query string Yes Account ID transferInIdList query string Yes List of transfer in IDs to retrieve. Used to batch fetch transfer in records by their IDs > Response Example > 200 Response Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "senderAccountId": "543429922991899151",\ "senderL2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "senderTransferOutId": "563516408235819789",\ "clientTransferId": "client_transfer_123",\ "isConditionTransfer": false,\ "conditionFactRegistryAddress": "",\ "conditionFactErc20Address": "",\ "conditionFactAmount": "",\ "conditionFact": "",\ "transferReason": "NORMAL_TRANSFER",\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferinlist) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-active-transfer-in-records-with-pagination) Get Active Transfer In Records with Pagination GET /api/v1/private/transfer/getActiveTransferIn #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters-1) Request Parameters Name Location Type Required Description accountId query string Yes Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100. Default: 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter transfer in records by specified coin IDs. If not provided, all coin transfers are retrieved filterStatusList query string No Filter transfer in records by specified statuses. If not provided, all status transfers are retrieved filterTransferReasonList query string No Filter transfer in records by specified transfer reasons. If not provided, all reason transfers are retrieved filterStartCreatedTimeInclusive query string No Filter transfer in records created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter transfer in records created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#pagedatatransferin) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-out-records-by-transfer-out-id) Get Transfer Out Records By Transfer Out ID GET /api/v1/private/transfer/getTransferOutById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters-2) Request Parameters Name Location Type Required Description accountId query string Yes Account ID transferOutIdList query string Yes List of transfer out IDs to retrieve. Used to batch fetch transfer out records by their IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferoutlist) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-active-transfer-out-records-with-pagination) Get Active Transfer Out Records with Pagination GET /api/v1/private/transfer/getActiveTransferOut #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string Yes Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100. Default: 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter transfer out records by specified coin IDs. If not provided, all coin transfers are retrieved filterStatusList query string No Filter transfer out records by specified statuses. If not provided, all status transfers are retrieved filterTransferReasonList query string No Filter transfer out records by specified transfer reasons. If not provided, all reason transfers are retrieved filterStartCreatedTimeInclusive query string No Filter transfer out records created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter transfer out records created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#pagedatatransferout) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-out-available-amount) Get Transfer Out Available Amount GET /api/v1/private/transfer/getTransferOutAvailableAmount #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters-4) Request Parameters Name Location Type Required Description accountId query string Yes Account ID coinId query string Yes Coin ID to check available transfer amount for > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#gettransferoutavailableamount) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#create-transfer-out) Create Transfer Out POST /api/v1/private/transfer/createTransferOut > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#request-parameters-5) Request Parameters Name Location Type Required Description body body object Yes none » accountId body string Yes Account ID » coinId body string Yes Coin ID for the transfer asset » amount body string Yes Transfer amount » receiverAccountId body string Yes Receiver account ID » receiverL2Key body string Yes Receiver account L2 key (bigint as hex string) » clientTransferId body string Yes Client-defined ID for idempotency verification and signature nonce generation » transferReason body string Yes Transfer reason » l2Nonce body string Yes L2 signature nonce. First 32 bits of sha256(client\_transfer\_id) » l2ExpireTime body string Yes L2 signature expiration time in milliseconds » l2Signature body object Yes L2 signature submitted »» r body string Yes Signature R component (bigint as hex string) »» s body string Yes Signature S component (bigint as hex string) »» v body string Yes Signature V component (bigint as hex string) » extraType body string No Additional type for upper-layer business use » extraDataJson body string No Extra data in JSON format > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#response-5) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#createtransferout) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferinlist) TransferInList Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [TransferInModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferinmodel) \[\] false none Transfer In List Array of transfer in records errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#pagedatatransferin) PageDataTransferIn Name Type Required Constraints Description Notes dataList [TransferInModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferinmodel) \[\] false none Data List Array of transfer in records nextPageOffsetData string false none Next Page Offset Offset for retrieving the next page. If no next page data, empty string. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferoutlist) TransferOutList Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [TransferOutModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferoutmodel) \[\] false none Transfer Out List Array of transfer out records errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#pagedatatransferout) PageDataTransferOut Name Type Required Constraints Description Notes dataList [TransferOutModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferoutmodel) \[\] false none Data List Array of transfer out records nextPageOffsetData string false none Next Page Offset Offset for retrieving the next page. If no next page data, empty string. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferinmodel) TransferInModel Name Type Required Constraints Description Notes id string(int64) false none Transfer In ID Unique identifier for the transfer in record userId string(int64) false none User ID ID of the owning user accountId string(int64) false none Account ID ID of the owning account coinId string(int64) false none Coin ID ID of the collateral coin amount string false none Transfer Amount Amount of the transfer senderAccountId string(int64) false none Sender Account ID ID of the sending account senderL2Key string false none Sender L2 Key Sender account L2 key (bigint as hex string) senderTransferOutId string(int64) false none Sender Transfer Out ID ID of the corresponding transfer out record clientTransferId string false none Client Transfer ID Client-defined ID for idempotency verification isConditionTransfer boolean false none Is Condition Transfer Whether this is a conditional transfer conditionFactRegistryAddress string false none Condition Fact Registry Address Fact registry contract address for conditional transfers conditionFactErc20Address string false none Condition Fact ERC20 Address ERC20 address used for fact generation in conditional transfers conditionFactAmount string false none Condition Fact Amount Amount used for fact generation in conditional transfers conditionFact string false none Condition Fact Fact for conditional transfers transferReason string false none Transfer Reason Reason for the transfer extraType string false none Extra Type Additional type for upper-layer business use extraDataJson string false none Extra Data JSON Extra data in JSON format status string false none Transfer Status Current status of the transfer collateralTransactionId string(int64) false none Collateral Transaction ID Associated collateral transaction ID when status is SUCCESS\_XXX/FAILED\_L2\_REJECT/FAILED\_L2\_REJECT\_APPROVED censorTxId string(int64) false none Censor Transaction ID Censorship processing sequence number when status is SUCCESS\_XXX/FAILED\_XXX censorTime string(int64) false none Censor Time Censorship processing time when status is SUCCESS\_XXX/FAILED\_XXX censorFailCode string false none Censor Fail Code Censorship failure code censorFailReason string false none Censor Fail Reason Censorship failure reason l2TxId string(int64) false none L2 Transaction ID Layer 2 transaction ID l2RejectTime string(int64) false none L2 Reject Time Layer 2 rejection time l2RejectCode string false none L2 Reject Code Layer 2 rejection code l2RejectReason string false none L2 Reject Reason Layer 2 rejection reason l2ApprovedTime string(int64) false none L2 Approved Time Layer 2 approval time createdTime string(int64) false none Created Time Record creation time updatedTime string(int64) false none Updated Time Record last update time #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferoutmodel) TransferOutModel Name Type Required Constraints Description Notes id string(int64) false none Transfer Out ID Unique identifier for the transfer out record userId string(int64) false none User ID ID of the owning user accountId string(int64) false none Account ID ID of the owning account coinId string(int64) false none Coin ID ID of the collateral coin amount string false none Transfer Amount Amount of the transfer receiverAccountId string(int64) false none Receiver Account ID ID of the receiving account receiverL2Key string false none Receiver L2 Key Receiver account L2 key (bigint as hex string) clientTransferId string false none Client Transfer ID Client-defined ID for idempotency verification isConditionTransfer boolean false none Is Condition Transfer Whether this is a conditional transfer conditionFactRegistryAddress string false none Condition Fact Registry Address Fact registry contract address for conditional transfers conditionFactErc20Address string false none Condition Fact ERC20 Address ERC20 address used for fact generation in conditional transfers conditionFactAmount string false none Condition Fact Amount Amount used for fact generation in conditional transfers conditionFact string false none Condition Fact Fact for conditional transfers transferReason string false none Transfer Reason Reason for the transfer l2Nonce string(int64) false none L2 Nonce L2 signature nonce. First 32 bits of sha256(client\_transfer\_id) l2ExpireTime string(int64) false none L2 Expire Time L2 signature expiration time in milliseconds l2Signature [L2SignatureModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#l2signaturemodel) false none L2 Signature L2 signature submitted extraType string false none Extra Type Additional type for upper-layer business use extraDataJson string false none Extra Data JSON Extra data in JSON format status string false none Transfer Status Current status of the transfer receiverTransferInId string(int64) false none Receiver Transfer In ID ID of the corresponding transfer in record collateralTransactionId string(int64) false none Collateral Transaction ID Associated collateral transaction ID when status is SUCCESS\_XXX/FAILED\_L2\_REJECT/FAILED\_L2\_REJECT\_APPROVED censorTxId string(int64) false none Censor Transaction ID Censorship processing sequence number when status is SUCCESS\_XXX/FAILED\_XXX censorTime string(int64) false none Censor Time Censorship processing time when status is SUCCESS\_XXX/FAILED\_XXX censorFailCode string false none Censor Fail Code Censorship failure code censorFailReason string false none Censor Fail Reason Censorship failure reason l2TxId string(int64) false none L2 Transaction ID Layer 2 transaction ID l2RejectTime string(int64) false none L2 Reject Time Layer 2 rejection time l2RejectCode string false none L2 Reject Code Layer 2 rejection code l2RejectReason string false none L2 Reject Reason Layer 2 rejection reason l2ApprovedTime string(int64) false none L2 Approved Time Layer 2 approval time createdTime string(int64) false none Created Time Record creation time updatedTime string(int64) false none Updated Time Record last update time #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#l2signaturemodel) L2SignatureModel Name Type Required Constraints Description Notes r string false none Signature R Component Bigint represented as hex string s string false none Signature S Component Bigint represented as hex string v string false none Signature V Component Bigint represented as hex string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#gettransferoutavailableamount) GetTransferOutAvailableAmount Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [GetTransferOutAvailableAmountModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#gettransferoutavailableamountmodel) false none Available Amount Response Response data for available transfer amount errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#gettransferoutavailableamountmodel) GetTransferOutAvailableAmountModel Name Type Required Constraints Description Notes availableAmount string false none Available Amount Available amount for transfer (decimal format) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#createtransferout) CreateTransferOut Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [CreateTransferOutModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#createtransferoutmodel) false none Create Transfer Out Response Response data for transfer out creation errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#createtransferoutmodel) CreateTransferOutModel Name Type Required Constraints Description Notes transferOutId string(int64) false none Transfer Out ID ID of the created transfer out record [PreviousOrder APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api) [NextWithdraw APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/withdraw-api) Last updated 2 months ago * [TransferPrivateApi](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#transferprivateapi) * [Get Transfer In Records By Transfer In ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-in-records-by-transfer-in-id) * [Get Active Transfer In Records with Pagination](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-active-transfer-in-records-with-pagination) * [Get Transfer Out Records By Transfer Out ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-out-records-by-transfer-out-id) * [Get Active Transfer Out Records with Pagination](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-active-transfer-out-records-with-pagination) * [Get Transfer Out Available Amount](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#get-transfer-out-available-amount) * [Create Transfer Out](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#create-transfer-out) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api#data-models) Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "senderAccountId": "543429922991899151",\ "senderL2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "senderTransferOutId": "563516408235819789",\ "clientTransferId": "client_transfer_123",\ "isConditionTransfer": false,\ "conditionFactRegistryAddress": "",\ "conditionFactErc20Address": "",\ "conditionFactAmount": "",\ "conditionFact": "",\ "transferReason": "NORMAL_TRANSFER",\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819789",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "receiverAccountId": "543429922991899151",\ "receiverL2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "clientTransferId": "client_transfer_123",\ "isConditionTransfer": false,\ "conditionFactRegistryAddress": "",\ "conditionFactErc20Address": "",\ "conditionFactAmount": "",\ "conditionFact": "",\ "transferReason": "NORMAL_TRANSFER",\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "receiverTransferInId": "563516408235819790",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "563516408235819789",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "receiverAccountId": "543429922991899151",\ "receiverL2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "clientTransferId": "client_transfer_123",\ "isConditionTransfer": false,\ "conditionFactRegistryAddress": "",\ "conditionFactErc20Address": "",\ "conditionFactAmount": "",\ "conditionFact": "",\ "transferReason": "NORMAL_TRANSFER",\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "receiverTransferInId": "563516408235819790",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "availableAmount": "1000.000000" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "accountId": "543429922991899150", "coinId": "1000", "amount": "10.000000", "receiverAccountId": "543429922991899151", "receiverL2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211", "clientTransferId": "client_transfer_123", "transferReason": "NORMAL_TRANSFER", "l2Nonce": "123456789", "l2ExpireTime": "1734352781355", "l2Signature": { "r": "0x...", "s": "0x...", "v": "0x..." }, "extraType": "", "extraDataJson": "" } Copy { "code": "SUCCESS", "data": { "transferOutId": "563516408235819789" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } --- # Asset API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#assetsprivateapi) AssetsPrivateApi -------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#post-create-normal-withdrawal-order) POST Create Normal Withdrawal Order POST /api/v1/private/assets/createNormalWithdraw > Body Request Parameters Copy { "accountId": "551109015904453258", "coinId": "1000", "amount": "1.000000", "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A", "clientWithdrawId": "745410645654877", "expireTime": "1735887600000", "l2Signature": "007bf80407c6a7bb14f5ca3b848a5d908627993f23b073c902e359a6fa4a6a92040cea4c98e25e35ad1d8cc4e18758c463c45bf451299ce55aa49abbdb916d03" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters) Request Parameters Name Location Type Required Description body body [CreateNormalWithdrawParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatenormalwithdrawparam) No None > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#createnormalwithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#post-create-cross-chain-withdrawal-order) POST Create Cross-Chain Withdrawal Order POST /api/v1/private/assets/createCrossWithdraw > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-1) Request Parameters Name Location Type Required Description body body [CreateCrossWithdrawParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatecrosswithdrawparam) No None > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultcreatecrosswithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-users-normal-withdrawable-amount) GET User's Normal Withdrawable Amount GET /api/v1/private/assets/getNormalWithdrawableAmount #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-2) Request Parameters Name Location Type Required Description address query string Yes User address > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultgetnormalwithdrawableamount) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-normal-withdrawal-orders-by-account-id-and-withdrawal-id) GET Get Normal Withdrawal Orders by Account ID and Withdrawal ID GET /api/v1/private/assets/getNormalWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string No Account ID normalWithdrawIdList query string No Withdrawal ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultlistnormalwithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-information-required-for-cross-chain-withdrawal-signature) GET Get Information Required for Cross-Chain Withdrawal Signature GET /api/v1/private/assets/getCrossWithdrawSignInfo #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-4) Request Parameters Name Location Type Required Description chainId query string No Chain ID amount query string No Withdrawal amount > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultgetcrosswithdrawsigninfo) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-cross-chain-withdrawal-orders-by-account-id-and-withdrawal-id) GET Get Cross-Chain Withdrawal Orders by Account ID and Withdrawal ID GET /api/v1/private/assets/getCrossWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-5) Request Parameters Name Location Type Required Description accountId query string No Account ID crossWithdrawIdList query string No Withdrawal ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-5) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultlistcrosswithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-aggregate-query-of-all-deposit-and-withdrawal-order-records) GET Aggregate Query of All Deposit and Withdrawal Order Records GET /api/v1/private/assets/getAllOrdersPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#request-parameters-6) Request Parameters Name Location Type Required Description accountId query string No Account ID startTime query string No Start time, Unix time in seconds endTime query string No End time, Unix time in seconds chainId query string No Chain ID typeList query string No Order type list size query string No Number of items per page. Must be > 0 and <= 100. offsetData query string No Offset for page retrieval. If not provided, returns first page > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#response-6) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultpagedatassetorder) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#data-models) Data Models ---------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultpagedatassetorder) schemaresultpagedatassetorder Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [PageDataAssetOrder](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemapagedataassetorder) false none Generic paginated return errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemapagedataassetorder) schemapagedataassetorder Name Type Required Constraints Description Notes dataList \[[AssetOrder](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaassetorder)\ \] false none List of data nextPageOffsetData string false none Offset for next page Empty string when there are no further pages. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaassetorder) schemaassetorder Name Type Required Constraints Description Notes orderId string(int64) false none Order ID time string(int64) false none Order creation time type string false none Order type status integer(int32) false none Order status amount string false none Order amount fee string false none Order fee txId string false none Chain tx\_id chain string false none Chain address string false none Address coin string false none Coin chainId string false none Chain ID transferSenderAccountId string false none Transfer out account ID transferReceiverAccountId string false none Transfer in account ID **Enum Values** Property Value type UNKNOWN\_ORDER\_TYPE type ORDER\_TYPE\_NORMAL\_DEPOSIT type ORDER\_TYPE\_CROSS\_DEPOSIT type ORDER\_TYPE\_NORMAL\_WITHDRAW type ORDER\_TYPE\_CROSS\_WITHDRAW type ORDER\_TYPE\_FAST\_WITHDRAW type ORDER\_TYPE\_TRANSFER\_IN type ORDER\_TYPE\_TRANSFER\_OUT type UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultlistcrosswithdraw) schemaresultlistcrosswithdraw Name Type Required Constraints Description Notes code string false none Status code data \[[CrossWithdraw](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacrosswithdraw)\ \] false none Correct response data requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacrosswithdraw) schemacrosswithdraw Name Type Required Constraints Description Notes id string(int64) false none Withdrawal order ID userId string(int64) false none User ID accountId string(int64) false none Account ID coinId string(int64) false none Collateral coin ID amount string false none Withdrawal amount ethAddress string false none ETH address for withdrawal, may differ from the account's ETH address. erc20Address string false none L1 ERC20 contract address for the withdrawn asset lpAccountId string(int64) false none LP account ID for L2 receiving user transfers lpAccountL2Key string(int64) false none L2 key for the receiving account clientCrossWithdrawId string false none Client-defined ID for idempotent checks fee string false none Transaction fee chainId string false none Chain ID for withdrawal l2Nonce string(int64) false none L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 signature expiration time. Unix time in hours, must be at least 24 hours after order creation. l2Signature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information extraType string false none Additional type for upper-layer business usage extraDataJson string false none Extra data, JSON format, defaults to empty string. status string false none Normal withdrawal order status collateralTransactionId string false none Related collateral detail ID. Exists when status=SUCCESS\_XXX/FAILED\_L2\_REJECTED censorTxId string(int64) false none Censorship processing sequence number. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED censorTime string(int64) false none Censorship processing time. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED censorFailCode string false none Censorship failure error code. Exists when status=FAILED\_CENSOR\_FAILURE censorFailReason string false none Censorship failure reason. Exists when status=FAILED\_CENSOR\_FAILURE l2TxId string(int64) false none L2 transaction ID. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED l2HandleTime string(int64) false none L2 processing time. Exists when status=SUCCESS\_L1\_CONFIRMING/SUCCESS\_L1\_WITHDRAWING/SUCCESS\_L1\_COMPLETED/FAILED\_L2\_REJECTED l2RejectCode string false none L2 reject error code. Exists when status=FAILED\_L2\_REJECTED l2RejectReason string false none L2 reject reason. Exists when status=FAILED\_L2\_REJECTED l1ConfirmedTx [L1Tx](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1ConfirmedTime string(int64) false none L1 transaction confirmation time l1CompletedTx [L1Tx](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1CompletedEthAddress string false none L1 withdrawal completion ETH address l1CompletedTime string(int64) false none L1 withdrawal completion time l1RejectedReasonCode string false none L1 rejection reason code l1RejectedReasonMsg string false none L1 rejection reason message riskSignature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information transferOutId string(int64) false none Transfer out order ID createdTime string(int64) false none Creation time updatedTime string(int64) false none Update time **Enum Values** Property Value status CROSS\_WITHDRAW\_UNKNOWN status CROSS\_WITHDRAW\_PENDING\_RISK\_CHECKING status CROSS\_WITHDRAW\_PENDING\_CHECKING status CROSS\_WITHDRAW\_SUCCESS\_SUBMIT\_CENSOR status CROSS\_WITHDRAW\_PENDING\_CENSOR\_CHECKING\_ACCOUNT status CROSS\_WITHDRAW\_PENDING\_CENSORING status CROSS\_WITHDRAW\_PENDING\_L2\_APPROVING status CROSS\_WITHDRAW\_PENDING\_L1\_SUBMIT status CROSS\_WITHDRAW\_PENDING\_L1\_CONFIRMING status CROSS\_WITHDRAW\_SUCCESS status CROSS\_WITHDRAW\_FAILED\_RISK\_CHECK\_FAILURE status CROSS\_WITHDRAW\_FAILED\_TRANSFER\_REJECTED status CROSS\_WITHDRAW\_FAILED\_CENSOR\_CHECKING\_ACCOUNT\_REJECTED status CROSS\_WITHDRAW\_FAILED\_CENSORING status CROSS\_WITHDRAW\_FAILED\_L2\_REJECTED status CROSS\_WITHDRAW\_FAILED\_L1\_SUBMIT\_REJECTED status CROSS\_WITHDRAW\_FAILED\_L1\_REJECTED status CROSS\_WITHDRAW\_FAILED\_USER\_BALANCE\_NOT\_ENOUGH status UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal1tx) schemal1tx Name Type Required Constraints Description Notes hash string false none Transaction hash index integer(int32) false none Index of the tx hash time string(int64) false none Tx chain timestamp, in milliseconds blockHeight string(int64) false none Block height of the tx #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal2signature) schemal2signature Name Type Required Constraints Description Notes r string false none Bigint for hex string s string false none Bigint for hex string v string false none Bigint for hex string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultgetcrosswithdrawsigninfo) schemaresultgetcrosswithdrawsigninfo Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [GetCrossWithdrawSignInfo](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemagetcrosswithdrawsigninfo) false none Get information required for cross-chain withdrawal signature - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemagetcrosswithdrawsigninfo) schemagetcrosswithdrawsigninfo Name Type Required Constraints Description Notes lpAccountId string false none LP account ID for L2 receiving user transfers crossWithdrawL2Key string false none L2 key for fast withdrawal account crossWithdrawMaxAmount string false none Maximum amount for fast cross-chain withdrawal fee string false none Transaction fee #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultlistnormalwithdraw) schemaresultlistnormalwithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data \[[NormalWithdraw](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemanormalwithdraw)\ \] false none Correct response data errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemanormalwithdraw) schemanormalwithdraw Name Type Required Constraints Description Notes id string(int64) false none Withdrawal order ID userId string(int64) false none User ID accountId string(int64) false none Account ID coinId string(int64) false none Collateral coin ID amount string false none Withdrawal amount ethAddress string false none ETH address for withdrawal, may differ from the account's ETH address. clientWithdrawId string false none Client-defined ID for idempotent checks l2Nonce string(int64) false none L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 signature expiration time. Unix time in hours, must be at least 24 hours after order creation. l2Signature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information status string false none Normal withdrawal order status tradeWithdrawId string(int64) false none Corresponding trading service withdraw order ID riskSignature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information l1ConfirmedTx [L1Tx](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1ConfirmedTime string(int64) false none L1 transaction confirmation time l1CompletedTime string(int64) false none L1 withdrawal completion time createdTime string(int64) false none Creation time updatedTime string(int64) false none Update time **Enum Values** Property Value status NORMAL\_WITHDRAW\_UNKNOWN status NORMAL\_WITHDRAW\_PENDING\_RISK\_CHECKING status NORMAL\_WITHDRAW\_PENDING\_TRADE\_PROCESSING status NORMAL\_WITHDRAW\_PENDING\_L2\_APPROVING status NORMAL\_WITHDRAW\_PENDING\_L1\_CONFIRMING status NORMAL\_WITHDRAW\_PENDING\_L1\_WITHDRAWING status NORMAL\_WITHDRAW\_SUCCESS\_L1\_COMPLETED status NORMAL\_WITHDRAW\_FAILED\_RISK\_CHECK\_FAILURE status NORMAL\_WITHDRAW\_FAILED\_CENSOR\_FAILURE status NORMAL\_WITHDRAW\_FAILED\_L2\_REJECTED status UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultgetnormalwithdrawableamount) schemaresultgetnormalwithdrawableamount | Name | Type Okay, continuing the translated documentation: Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [GetNormalWithdrawableAmount](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemagetnormalwithdrawableamount) false none Query normal withdrawable claim amount by user address - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemagetnormalwithdrawableamount) schemagetnormalwithdrawableamount Name Type Required Constraints Description Notes amount string false none Withdrawable amount #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemaresultcreatecrosswithdraw) schemaresultcreatecrosswithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [CreateCrossWithdraw](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatecrosswithdraw) false none Create cross-chain withdrawal order - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatecrosswithdraw) schemacreatecrosswithdraw Name Type Required Constraints Description Notes crossWithdrawId string(int64) false none Cross-chain withdrawal order ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatecrosswithdrawparam) schemacreatecrosswithdrawparam Name Type Required Constraints Description Notes accountId string(int64) false none Account ID coinId string(int64) false none Coin ID amount string false none Withdrawal amount ethAddress string false none Withdrawal address. If empty, withdraw to the corresponding address of the current account. erc20Address string false none L1 ERC20 contract address for the withdrawn asset lpAccountId string false none LP account ID for L2 receiving user transfers clientCrossWithdrawId string false none Client-defined ID, used for signature & idempotent check. Must be filled. expireTime string(int64) false none Expiration time l2Signature string false none L2 signature fee string false none Gas + fee obtained from front-end chainId string false none Chain ID for withdrawal mpcAddress string false none Which mpc address initiated the withdraw mpcSignature string false none Signature of the mpc address to the withdraw field mpcSignTime string false none mpc signature timestamp,unix timestamp in seconds #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#createnormalwithdraw) createnormalwithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [CreateNormalWithdraw](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatenormalwithdraw) false none Create normal withdrawal order - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatenormalwithdraw) schemacreatenormalwithdraw Name Type Required Constraints Description Notes withdrawId string(int64) false none Withdrawal order ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#schemacreatenormalwithdrawparam) schemacreatenormalwithdrawparam Name Type Required Constraints Description Notes accountId string(int64) false none Account ID coinId string(int64) false none Coin ID amount string false none Withdrawal amount ethAddress string false none Withdrawal address. If empty, withdraw to the corresponding address of the current account. clientWithdrawId string false none Client-defined ID, used for signature & idempotent check. Must be filled. expireTime string(int64) false none Expiration time l2Signature string false none L2 signature [PreviousAccount APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api) [NextOrder APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api) Last updated 1 year ago * [AssetsPrivateApi](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#assetsprivateapi) * [POST Create Normal Withdrawal Order](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#post-create-normal-withdrawal-order) * [POST Create Cross-Chain Withdrawal Order](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#post-create-cross-chain-withdrawal-order) * [GET User's Normal Withdrawable Amount](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-users-normal-withdrawable-amount) * [GET Get Normal Withdrawal Orders by Account ID and Withdrawal ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-normal-withdrawal-orders-by-account-id-and-withdrawal-id) * [GET Get Information Required for Cross-Chain Withdrawal Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-information-required-for-cross-chain-withdrawal-signature) * [GET Get Cross-Chain Withdrawal Orders by Account ID and Withdrawal ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-get-cross-chain-withdrawal-orders-by-account-id-and-withdrawal-id) * [GET Aggregate Query of All Deposit and Withdrawal Order Records](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#get-aggregate-query-of-all-deposit-and-withdrawal-order-records) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api#data-models) Copy { "code": "SUCCESS", "data": { "withdrawId": "1054639949233524736" }, "msg": null, "errorParam": null, "requestTime": "1734674558154", "responseTime": "1734674558171", "traceId": "9e3bfe2b9e1ef82583cb96f36e43e537" } Copy { "accountId": "string", "coinId": "string", "amount": "string", "ethAddress": "string", "erc20Address": "string", "lpAccountId": "string", "clientCrossWithdrawId": "string", "expireTime": "string", "l2Signature": "string", "fee": "string", "chainId": "string", "mpcAddress": "string", "mpcSignature": "string", "mpcSignTime": "string" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "amount": "0" }, "msg": null, "errorParam": null, "requestTime": "1734674463329", "responseTime": "1734674464181", "traceId": "6e8a3b8326f00683cf73f701f3edcfb6" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "lpAccountId": "542076087396467085", "crossWithdrawL2Key": "0x03bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "crossWithdrawMaxAmount": "48799.686154", "fee": "2" }, "msg": null, "errorParam": null, "requestTime": "1734674557578", "responseTime": "1734674557997", "traceId": "3aa3d5c94c7bc9aef69f590e188058ef" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "orderId": "1054639949233524736",\ "time": "1734674558",\ "type": "ORDER_TYPE_NORMAL_WITHDRAW",\ "status": 3,\ "amount": "1",\ "fee": "",\ "txId": "",\ "chain": "Sepolia - Testnet",\ "address": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "coin": "USDT",\ "chainId": "11155111",\ "transferSenderAccountId": "0",\ "transferReceiverAccountId": "0"\ }\ ], "nextPageOffsetData": "b3fa59aa-8b42-49a3-9729-d7e89d8d9c8d" }, "msg": null, "errorParam": null, "requestTime": "1734675194541", "responseTime": "1734675194553", "traceId": "d6f1fe9e521e306a49f30158257a07a2" } --- # Order API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#orderprivateapi) OrderPrivateApi ------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-get-maximum-order-creation-size) POST Get Maximum Order Creation Size POST /api/v1/private/order/getMaxCreateOrderSize > Body Request Parameters Copy { "accountId": "551109015904453258", "contractId": "10000001", "price": "97,463.4" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters) Request Parameters Name Location Type Required Description body body [GetMaxCreateOrderSizeParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemagetmaxcreateordersizeparam) No none > Response Example > 200 Response Copy { "code": "SUCCESS", "data": { "maxBuySize": "0.004", "maxSellSize": "0.009", "ask1Price": "97532.1", "bid1Price": "97496.1" }, "msg": null, "errorParam": null, "requestTime": "1734665285662", "responseTime": "1734665285679", "traceId": "38fc6d0f57f3e64c8c6239fae7d35f84" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultgetmaxcreateordersize) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-create-order) POST Create Order POST /api/v1/private/order/createOrder > Body Request Parameters **Market Order Parameter Guidelines** To prevent validation failures when placing market orders, please set the following parameters appropriately: **For Buy Orders:** * `l2Value = oracle_price × 10 × size` (set a higher value to ensure sufficient coverage) **For Sell Orders:** * `l2Value = tickSize` (use the minimum tick size value) **For Fee Calculation:** * `l2LimitFee = Ceil(value × fee_rate) × 10^6` > **Important Notes:** > > * `l2Value` is NOT the actual order execution value - it's only used for validation purposes > > * `l2LimitFee` is NOT the actual transaction fee - it's only used for validation purposes > > * Setting these values too low will cause signature validation to fail > > * It's better to set slightly higher values to ensure successful order placement > #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-1) Request Parameters Name Location Type Required Description body body [CreateOrderParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacreateorderparam) No none > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-1) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultcreateorder) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-data-structure) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-cancel-order-by-order-id) POST Cancel Order by Order ID POST /api/v1/private/order/cancelOrderById > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-2) Request Parameters Name Location Type Required Description body body [CancelOrderByIdParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelorderbyidparam) No none > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-2) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultcancelorder) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-cancel-all-orders-under-account) POST Cancel All Orders under Account POST /api/v1/private/order/cancelAllOrder > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-3) Request Parameters Name Location Type Required Description body body [CancelAllOrderParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelallorderparam) No none > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-3) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-data-structure-1) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-orders-by-account-id-and-order-ids-batch) GET Get Orders by Account ID and Order IDs (Batch) GET /api/v1/private/order/getOrderById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-4) Request Parameters Name Location Type Required Description accountId query string No Account ID orderIdList query string No Order IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-4) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-data-structure-2) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-orders-by-client-order-ids-batch) GET Get Orders by Client Order IDs (Batch) GET /api/v1/private/order/getOrderByClientOrderId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-5) Request Parameters Name Location Type Required Description accountId query string No Account ID clientOrderIdList query string No Client-defined order IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-5) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-paginated) GET Get Historical Orders (Paginated) GET /api/v1/private/order/getHistoryOrderPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-6) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to fetch. Must be greater than 0 and less than or equal to 100. offsetData query string No Pagination offset. If not provided or empty, retrieves the first page. filterCoinIdList query string No Filters by collateral coin IDs. If empty, fetches orders for all collateral coin IDs. filterContractIdList query string No Filters by contract IDs. If empty, fetches orders for all contracts. filterTypeList query string No Filters by order types. If empty, fetches orders of all types. filterStatusList query string No Filters by order status. If empty, fetches orders of all statuses. filterIsLiquidateList query string No Filters by liquidate orders. If empty, fetches all orders filterIsDeleverageList query string No Filters by deleverage orders. If empty, fetches all orders filterIsPositionTpslList query string No Filters by position TP/SL orders. If empty, fetches all orders filterStartCreatedTimeInclusive query string No Filters orders created after or on this time (inclusive). If empty or 0, retrieves from the earliest. filterEndCreatedTimeExclusive query string No Filters orders created before this time (exclusive). If empty or 0, retrieves to the latest. > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-6) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresult) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-order-fill-transactions-paginated) GET Get Historical Order Fill Transactions (Paginated) GET /api/v1/private/order/getHistoryOrderFillTransactionPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-7) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to fetch. Must be greater than 0 and less than or equal to 100. offsetData query string No Pagination offset. If not provided or empty, retrieves the first page. filterCoinIdList query string No Filters by collateral coin IDs. If empty, fetches order fill transactions for all collateral coin IDs. filterContractIdList query string No Filters by contract IDs. If empty, fetches order fill transactions for all contracts. filterOrderIdList query string No Filters by order IDs. If empty, fetches order fill transactions for all orders. filterIsLiquidateList query string No Filters by liquidate orders. If empty, fetches all orders filterIsDeleverageList query string No Filters by deleverage orders. If empty, fetches all orders filterIsPositionTpslList query string No Filters by position TP/SL orders. If empty, fetches all orders filterStartCreatedTimeInclusive query string No Filters order fill transactions created after or on this time (inclusive). If empty or 0, retrieves from the earliest. filterEndCreatedTimeExclusive query string No Filters order fill transactions created before this time (exclusive). If empty or 0, retrieves to the latest. > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-7) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorderfilltransaction) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-order-fill-transactions-by-id-batch) GET Get Historical Order Fill Transactions by ID (Batch) GET /api/v1/private/order/getHistoryOrderFillTransactionById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-8) Request Parameters Name Location Type Required Description accountId query string No Account ID orderFillTransactionIdList query string No Order fill transaction IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-8) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorderfilltransaction) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-by-id-batch) GET Get Historical Orders by ID (Batch) GET /api/v1/private/order/getHistoryOrderById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-9) Request Parameters Name Location Type Required Description accountId query string No Account ID orderIdList query string No Order IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-9) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorder) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-data-structure-3) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-by-client-order-ids-batch) GET Get Historical Orders by Client Order IDs (Batch) GET /api/v1/private/order/getHistoryOrderByClientOrderId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-10) Request Parameters Name Location Type Required Description accountId query string No Account ID clientOrderIdList query string No Order client order id > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-10) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorder) #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-data-structure-4) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-active-orders-paginated) GET Get Active Orders (Paginated) GET /api/v1/private/order/getActiveOrderPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#request-parameters-11) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to fetch. Must be greater than 0 and less than or equal to 200. offsetData query string No Pagination offset. If not provided or empty, retrieves the first page. filterCoinIdList query string No Filters by collateral coin IDs. If empty, fetches active orders for all collateral coin IDs. filterContractIdList query string No Filters by contract IDs. If empty, fetches active orders for all contracts. filterTypeList query string No Filters by order types. If empty, fetches orders of all types. filterStatusList query string No Filters by order status. If empty, fetches orders of all statuses. filterIsLiquidateList query string No Filters by liquidate orders. If empty, fetches all orders filterIsDeleverageList query string No Filters by deleverage orders. If empty, fetches all orders filterIsPositionTpslList query string No Filters by position TP/SL orders. If empty, fetches all orders filterStartCreatedTimeInclusive query string No Filters orders created after or on this time (inclusive). If empty or 0, retrieves from the earliest. filterEndCreatedTimeExclusive query string No Filters orders created before this time (exclusive). If empty or 0, retrieves to the latest. > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#response-11) Response Status Code Status Code Description Description Schema 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorder) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#data-models) Data Models ---------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultlistorderfilltransaction) schemaresultlistorderfilltransaction Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data \[[OrderFillTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorderfilltransaction)\ \] false none Successful response data. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorderfilltransaction) schemaorderfilltransaction Name Type Required Constraints Description id string(int64) false none Unique identifier. userId string(int64) false none User ID. accountId string(int64) false none Account ID. coinId string(int64) false none Collateral coin ID. contractId string(int64) false none Contract ID. orderId string(int64) false none Order ID. orderSide string false none Buy/Sell direction. fillSize string false none Actual filled quantity. fillValue string false none Actual filled value. fillFee string false none Actual filled fee. fillPrice string false none Fill price (not precise, for display purposes only). liquidateFee string false none Liquidation fee if it's a liquidation (forced liquidation) transaction. realizePnl string false none Realized profit and loss (only available if the fill includes closing a position). direction string false none Actual fill direction. isPositionTpsl boolean false none Whether this is a position take-profit/stop-loss order. isLiquidate boolean false none Whether this is a liquidation (forced liquidation) fill. isDeleverage boolean false none Whether this is an auto-deleverage fill. isWithoutMatch boolean false none Whether this order was filled directly without matching. matchSequenceId string(int64) false none Sequence ID after submitting to the matching engine. matchIndex integer(int32) false none Index for multiple fills after submitting to the matching engine. matchTime string(int64) false none Time after submitting to the matching engine. matchAccountId string(int64) false none Counterparty account ID. matchOrderId string(int64) false none Counterparty order ID. matchFillId string false none Fill ID returned by the matching engine. positionTransactionId string(int64) false none Associated position transaction ID. collateralTransactionId string(int64) false none Associated collateral transaction ID. extraType string false none Additional type for upper-layer business use. extraDataJson string false none Additional data in JSON format. Defaults to an empty string. censorStatus string false none Current censorship status. censorTxId string(int64) false none Censorship processing sequence ID. Exists when `censor_status` is `CENSOR_SUCCESS`/`CENSOR_FAILURE`/`L2_APPROVED`/`L2_REJECT`/`L2_REJECT_APPROVED`. censorTime string(int64) false none Censorship processing time. Exists when `censor_status` is `CENSOR_SUCCESS`/`CENSOR_FAILURE`/`L2_APPROVED`/`L2_REJECT`/`L2_REJECT_APPROVED`. censorFailCode string false none Censorship failure error code. Exists when `censor_status` is `CENSOR_FAILURE`. censorFailReason string false none Censorship failure reason. Exists when `censor_status` is `CENSOR_FAILURE`. l2TxId string(int64) false none L2 push transaction ID. Exists when `censor_status` is `CENSOR_SUCCESS`/`L2_APPROVED`/`L2_REJECT`/`L2_REJECT_APPROVED`. l2RejectTime string(int64) false none L2 rejection time. Exists when `censor_status` is `L2_REJECT`/`L2_REJECT_APPROVED`. l2RejectCode string false none L2 rejection error code. Exists when `censor_status` is `L2_REJECT`/`L2_REJECT_APPROVED`. l2RejectReason string false none L2 rejection reason. Exists when `censor_status` is `L2_REJECT`/`L2_REJECT_APPROVED`. l2ApprovedTime string(int64) false none L2 batch verification time. Exists when `status` is `L2_APPROVED`/`L2_REJECT_APPROVED`. createdTime string(int64) false none Creation time. updatedTime string(int64) false none Update time. **Enum Values** Property Value orderSide UNKNOWN\_ORDER\_SIDE orderSide BUY orderSide SELL orderSide UNRECOGNIZED direction UNKNOWN\_LIQUIDITY\_DIRECTION direction MAKER direction TAKER direction UNRECOGNIZED censorStatus UNKNOWN\_TRANSACTION\_STATUS censorStatus INIT censorStatus CENSOR\_SUCCESS censorStatus CENSOR\_FAILURE censorStatus L2\_APPROVED censorStatus L2\_REJECT censorStatus L2\_REJECT\_APPROVED censorStatus UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorderfilltransaction) schemaresultpagedataorderfilltransaction Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data [PageDataOrderFillTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemapagedataorderfilltransaction) false none Generic paginated response. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemapagedataorderfilltransaction) schemapagedataorderfilltransaction Name Type Required Constraints Description dataList \[[OrderFillTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorderfilltransaction)\ \] false none Data list. nextPageOffsetData string false none Offset for retrieving the next page. Empty string if no more data available. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultpagedataorder) schemaresultpagedataorder Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data [PageDataOrder](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemapagedataorder) false none Generic paginated response. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemapagedataorder) schemapagedataorder Name Type Required Constraints Description dataList \[[Order](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorder)\ \] false none Data list. nextPageOffsetData string false none Offset for retrieving the next page. Empty string if no more data available. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorder) schemaorder Name Type Required Constraints Description id string(int64) false none Order ID. Value greater than 0. userId string(int64) false none User ID. accountId string(int64) false none Account ID. coinId string(int64) false none Collateral coin ID. contractId string(int64) false none Contract ID. side string false none Buy/Sell direction. price string false none Order price (worst acceptable price), actual type is decimal. size string false none Order quantity, actual type is decimal. clientOrderId string false none Client-defined ID for idempotency checks. type string false none Order type. timeInForce string false none Order execution policy. Relevant when `type` is `LIMIT`/`STOP_LIMIT`/`TAKE_PROFIT_LIMIT`. reduceOnly boolean false none Whether this is a reduce-only order. triggerPrice string false none Trigger price. Relevant when `type` is `STOP_LIMIT`/`STOP_MARKET`/`TAKE_PROFIT_LIMIT`/`TAKE_PROFIT_MARKET`. If 0, the field is empty. Actual type is decimal. triggerPriceType string false none Price type: Last price, Mark price, etc. Relevant when `type` is `STOP_LIMIT`/`STOP_MARKET`/`TAKE_PROFIT_LIMIT`/`TAKE_PROFIT_MARKET`. expireTime string(int64) false none Expiration time. sourceKey string false none Source key, UUID. isPositionTpsl boolean false none Whether this is a position take-profit/stop-loss order. isLiquidate boolean false none Whether this is a liquidation (forced liquidation) order. isDeleverage boolean false none Whether this is an auto-deleverage order. openTpslParentOrderId string(int64) false none Order ID of the opening order for a take-profit or stop-loss order. isSetOpenTp boolean false none Whether take-profit is set for opening order. openTp [OpenTpSl](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpsl) false none Take-profit/stop-loss parameters for opening order. isSetOpenSl boolean false none Whether stop-loss is set for opening order. openSl [OpenTpSl](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpsl) false none Take-profit/stop-loss parameters for opening order. isWithoutMatch boolean false none Whether this order is directly filled without matching. withoutMatchFillSize string false none Off-exchange fill quantity (valid only when `is_without_match` is true). withoutMatchFillValue string false none Off-exchange fill value (valid only when `is_without_match` is true). withoutMatchPeerAccountId string(int64) false none Off-exchange counterparty account ID (valid only when `is_without_match` is true). withoutMatchPeerOrderId string(int64) false none Off-exchange counterparty order ID (valid only when `is_without_match` is true). maxLeverage string false none Leverage used when placing the order. Actual type is decimal. takerFeeRate string false none Taker fee rate when placing the order. Actual type is decimal. makerFeeRate string false none Maker fee rate when placing the order. Actual type is decimal. liquidateFeeRate string false none Liquidation fee rate when placing the order. Actual type is decimal. marketLimitPrice string false none Limit price for submitting market orders to the matching engine (only exists for market orders, 0 otherwise). Actual type is decimal. marketLimitValue string false none Limit value for submitting market orders to the matching engine (only exists for market orders, 0 otherwise). Actual type is decimal. l2Nonce string(int64) false none L2 signature nonce. Takes the first 32 bits of sha256(`client_order_id`). l2Value string false none L2 signature order value (the actual filled price must be equal to or better than `l2_value` / `l2_size`). May differ from `price` x `size`. Actual type is decimal. l2Size string false none L2 signature order quantity. May differ from the `size` field. Actual type is decimal. l2LimitFee string false none Maximum acceptable fee for L2 signature. l2ExpireTime string(int64) false none L2 signature expiration time in milliseconds. The hour value should be used when generating/verifying the signature, i.e. `l2_expire_time` / 3600000. Note that this value must be greater or equal to `expire_time` + 8 \* 24 \* 60 \* 60 \* 1000 (8 days). l2Signature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemal2signature) false none L2 signature information. extraType string false none Additional type for upper-layer business use. extraDataJson string false none Additional data in JSON format. Defaults to an empty string. status string false none Order status. matchSequenceId string(int64) false none Sequence ID handled by the matching engine. triggerTime string(int64) false none Conditional order trigger time. triggerPriceTime string(int64) false none Conditional order trigger price time. triggerPriceValue string false none Conditional order trigger price value. cancelReason string false none Order cancellation reason. cumFillSize string(decimal) false none Cumulative filled quantity after censorship. Actual type is decimal. cumFillValue string(decimal) false none Cumulative filled value after censorship. Actual type is decimal. cumFillFee string(decimal) false none Cumulative filled fee after censorship. Actual type is decimal. maxFillPrice string(decimal) false none Maximum filled price for the current order after censorship. Actual type is decimal. minFillPrice string(decimal) false none Minimum filled price for the current order after censorship. Actual type is decimal. cumLiquidateFee string(decimal) false none Cumulative liquidation fee after censorship. Actual type is decimal. cumRealizePnl string(decimal) false none Cumulative realized PnL after censorship. Actual type is decimal. cumMatchSize string(decimal) false none Cumulative matched quantity. Actual type is decimal. cumMatchValue string(decimal) false none Cumulative matched value. Actual type is decimal. cumMatchFee string(decimal) false none Cumulative matched fee. Actual type is decimal. cumFailSize string false none Cumulative failed/L2 rejected quantity. Actual type is decimal. cumFailValue string false none Cumulative failed/L2 rejected value. Actual type is decimal. cumFailFee string false none Cumulative failed/L2 rejected fee. Actual type is decimal. cumApprovedSize string false none Cumulative quantity approved by L2. cumApprovedValue string false none Cumulative value approved by L2. cumApprovedFee string false none Cumulative fee approved by L2. createdTime string(int64) false none Creation time. updatedTime string(int64) false none Update time. **Enum Values** Property Value side UNKNOWN\_ORDER\_SIDE side BUY side SELL side UNRECOGNIZED type UNKNOWN\_ORDER\_TYPE type LIMIT type MARKET type STOP\_LIMIT type STOP\_MARKET type TAKE\_PROFIT\_LIMIT type TAKE\_PROFIT\_MARKET type UNRECOGNIZED timeInForce UNKNOWN\_TIME\_IN\_FORCE timeInForce GOOD\_TIL\_CANCEL timeInForce FILL\_OR\_KILL timeInForce IMMEDIATE\_OR\_CANCEL timeInForce POST\_ONLY timeInForce UNRECOGNIZED triggerPriceType UNKNOWN\_PRICE\_TYPE triggerPriceType ORACLE\_PRICE triggerPriceType INDEX\_PRICE triggerPriceType LAST\_PRICE triggerPriceType ASK1\_PRICE triggerPriceType BID1\_PRICE triggerPriceType OPEN\_INTEREST triggerPriceType UNRECOGNIZED status UNKNOWN\_ORDER\_STATUS status PENDING status OPEN status FILLED status CANCELING status CANCELED status UNTRIGGERED status UNRECOGNIZED cancelReason UNKNOWN\_ORDER\_CANCEL\_REASON cancelReason USER\_CANCELED cancelReason EXPIRE\_CANCELED cancelReason COULD\_NOT\_FILL cancelReason REDUCE\_ONLY\_CANCELED cancelReason LIQUIDATE\_CANCELED cancelReason MARGIN\_NOT\_ENOUGH cancelReason SYSTEM\_LIMIT\_EVICTED cancelReason ADMIN\_CANCELED cancelReason INTERNAL\_FAILED cancelReason UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemal2signature) schemal2signature Name Type Required Constraints Description r string false none Big integer as a hex string. s string false none Big integer as a hex string. v string false none Big integer as a hex string. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpsl) schemaopentpsl Name Type Required Constraints Description side string false none Buy/sell direction. This field is required. price string false none Order price (worst acceptable price), actual type is decimal. Required, enter 0 for market orders. size string false none Order quantity, actual type is decimal. Required. clientOrderId string false none Client-defined ID for signature and idempotency checks. This field is required. triggerPrice string false none Trigger price. This field is required. triggerPriceType string false none Price type: Last price, Mark price, etc. This field is required. expireTime string(int64) false none Expiration time. l2Nonce string(int64) false none L2 signature nonce. Takes the first 32 bits of sha256(`client_order_id`). l2Value string false none L2 signature order value (the actual filled price must be equal to or better than `l2_value` / `l2_price`). May differ from `price` x `size`. Actual type is decimal. l2Size string false none L2 signature order quantity. May differ from the `size` field. Actual type is decimal. l2LimitFee string false none Maximum acceptable fee for L2 signature. l2ExpireTime string(int64) false none L2 signature expiration time in unix hour. Must be at least 10 hours after `expire_time`. l2Signature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemal2signature) false none L2 signature information. **Enum Values** Property Value side UNKNOWN\_ORDER\_SIDE side BUY side SELL side UNRECOGNIZED triggerPriceType UNKNOWN\_PRICE\_TYPE triggerPriceType ORACLE\_PRICE triggerPriceType INDEX\_PRICE triggerPriceType LAST\_PRICE triggerPriceType ASK1\_PRICE triggerPriceType BID1\_PRICE triggerPriceType OPEN\_INTEREST triggerPriceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultlistorder) schemaresultlistorder Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data \[[Order](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaorder)\ \] false none Successful response data. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelallorderparam) schemacancelallorderparam Name Type Required Constraints Description accountId string(int64) false none Account ID. filterCoinIdList \[string\] false none Filter to cancel active orders for specific collateral coin IDs. If empty, cancels all. filterContractIdList \[string\] false none Filter to cancel active orders for specific contract IDs. If empty, cancels all. filterOrderTypeList \[string\] false none Filter to cancel orders of specific types. If empty, cancels all types. filterOrderStatusList \[string\] false none Filter to cancel orders of specific statuses. If empty, cancels all statuses. filterIsPositionTpsl \[boolean\] false none Filter to cancel only corresponding position take-profit/stop-loss orders. If empty, cancels all contract orders. <### schemacancelorderbyclientorderid Name Type Required Constraints Description cancelResultMap object false none None **Enum Values** Property Value **additionalProperties** UNKNOWN\_ORDER\_CANCEL\_RESULT **additionalProperties** SUCCESS **additionalProperties** SUCCESS\_ORDER\_CANCELING **additionalProperties** SUCCESS\_ORDER\_CANCELED **additionalProperties** FAILED\_ORDER\_NOT\_FOUND **additionalProperties** FAILED\_ORDER\_FILLED **additionalProperties** FAILED\_ORDER\_UNKNOWN\_STATUS **additionalProperties** UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultcancelorder) schemaresultcancelorder Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data [CancelOrder](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelorder) false none Response for canceling orders. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelorder) schemacancelorder Name Type Required Constraints Description cancelResultMap object false none None **Enum Values** Property Value **additionalProperties** UNKNOWN\_ORDER\_CANCEL\_RESULT **additionalProperties** SUCCESS **additionalProperties** SUCCESS\_ORDER\_CANCELING **additionalProperties** SUCCESS\_ORDER\_CANCELED **additionalProperties** FAILED\_ORDER\_NOT\_FOUND **additionalProperties** FAILED\_ORDER\_FILLED **additionalProperties** FAILED\_ORDER\_UNKNOWN\_STATUS **additionalProperties** UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacancelorderbyidparam) schemacancelorderbyidparam Name Type Required Constraints Description accountId string(int64) false none Account ID. orderIdList \[string\] true none Order ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultcreateorder) schemaresultcreateorder Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data [CreateOrder](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacreateorder) false none Response for creating orders. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacreateorder) schemacreateorder Name Type Required Constraints Description orderId string(int64) false none Order ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemacreateorderparam) schemacreateorderparam Name Type Required Constraints Description accountId string(int64) false none Account ID. contractId string(int64) false none Contract ID. side string false none Buy/sell direction. This field is required. size string false none Order quantity. Actual type is decimal. This field is required. price string false none Order price (worst acceptable price). Actual type is decimal. This field is required, enter 0 for market orders. clientOrderId string false none Client-defined ID for idempotency checks. This field is required. type string false none Order type. This field is required. timeInForce string false none Order execution policy. Relevant when `type` is `LIMIT`/`STOP_LIMIT`/`TAKE_PROFIT_LIMIT`. This field is required, and should be `IMMEDIATE_OR_CANCEL` for market orders. reduceOnly boolean false none Whether this is a reduce-only order. This field is required. triggerPrice string false none Trigger price. Relevant when `type` is `STOP_LIMIT`/`STOP_MARKET`/`TAKE_PROFIT_LIMIT`/`TAKE_PROFIT_MARKET`. If 0, the field is empty. Actual type is decimal. Required for conditional orders. triggerPriceType string false none Price type: Last price, Mark price, etc. Relevant when the order is conditional. Required for conditional orders. expireTime string(int64) false none Expiration time. sourceKey string false none Source key, UUID. isPositionTpsl boolean false none Whether this is a position take-profit/stop-loss order. This field is required, defaults to false. openTpslParentOrderId string(int64) false none Order ID of the opening order for a take-profit or stop-loss order. isSetOpenTp boolean false none Whether to set take-profit for the opening order. This field is required. openTp [OpenTpSlParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpslparam) false none Take-profit/stop-loss parameters for the opening order. openSl [OpenTpSlParam](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpslparam) false none Take-profit/stop-loss parameters for the opening order. l2Nonce string(int64) false none L2 signature nonce. Takes the first 32 bits of sha256(`client_order_id`). l2Value string false none L2 signature order value (the actual filled price must be equal to or better than `l2_value` / `l2_price`). May differ from `price` x `size`. Actual type is decimal. l2Size string false none L2 signature order quantity. May differ from the `size` field. Actual type is decimal. l2LimitFee string false none Maximum acceptable fee for L2 signature. l2ExpireTime string(int64) false none L2 signature expiration time in milliseconds. The hour value should be used when generating/verifying the signature, i.e. `l2_expire_time` / 3600000. Note that this value must be greater or equal to `expire_time` + 8 \* 24 \* 60 \* 60 \* 1000 (8 days). l2Signature string false none L2 signature. extraType string false none Additional type for upper-layer business use. extraDataJson string false none Additional data in JSON format. Defaults to an empty string. **Enum Values** Property Value side UNKNOWN\_ORDER\_SIDE side BUY side SELL side UNRECOGNIZED type UNKNOWN\_ORDER\_TYPE type LIMIT type MARKET type STOP\_LIMIT type STOP\_MARKET type TAKE\_PROFIT\_LIMIT type TAKE\_PROFIT\_MARKET type UNRECOGNIZED timeInForce UNKNOWN\_TIME\_IN\_FORCE timeInForce GOOD\_TIL\_CANCEL timeInForce FILL\_OR\_KILL timeInForce IMMEDIATE\_OR\_CANCEL timeInForce POST\_ONLY timeInForce UNRECOGNIZED triggerPriceType UNKNOWN\_PRICE\_TYPE triggerPriceType ORACLE\_PRICE triggerPriceType INDEX\_PRICE triggerPriceType LAST\_PRICE triggerPriceType ASK1\_PRICE triggerPriceType BID1\_PRICE triggerPriceType OPEN\_INTEREST triggerPriceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaopentpslparam) schemaopentpslparam Name Type Required Constraints Description side string false none Buy/sell direction. This field is required. price string false none Order price (worst acceptable price). Actual type is decimal. This field is required, enter 0 for market orders. size string false none Order quantity. Actual type is decimal. This field is required. clientOrderId string false none Client-defined ID for signature and idempotency checks. This field is required. triggerPrice string false none Trigger price. This field is required. triggerPriceType string false none Price type: Last price, Mark price, etc. This field is required. expireTime string(int64) false none Expiration time. l2Nonce string(int64) false none L2 signature nonce. Takes the first 32 bits of sha256(`client_order_id`). l2Value string false none L2 signature order value (the actual filled price must be equal to or better than `l2_value` / `l2_price`). May differ from `price` x `size`. Actual type is decimal. l2Size string false none L2 signature order quantity. May differ from the `size` field. Actual type is decimal. l2LimitFee string false none Maximum acceptable fee for L2 signature. l2ExpireTime string false none L2 signature expiration time in unix hour. Must be at least 10 hours after `expire_time`. l2Signature string false none L2 signature. **Enum Values** Property Value side UNKNOWN\_ORDER\_SIDE side BUY side SELL side UNRECOGNIZED triggerPriceType UNKNOWN\_PRICE\_TYPE triggerPriceType ORACLE\_PRICE triggerPriceType INDEX\_PRICE triggerPriceType LAST\_PRICE triggerPriceType ASK1\_PRICE triggerPriceType BID1\_PRICE triggerPriceType OPEN\_INTEREST triggerPriceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemaresultgetmaxcreateordersize) schemaresultgetmaxcreateordersize Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise failure. data [GetMaxCreateOrderSize](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemagetmaxcreateordersize) false none Response for getting the maximum order size. errorParam object false none Parameter information in error messages. requestTime string(timestamp) false none Server request receive time. responseTime string(timestamp) false none Server response return time. traceId string false none Call trace ID. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemagetmaxcreateordersize) schemagetmaxcreateordersize Name Type Required Constraints Description maxBuySize string(decimal) false none Maximum buy size. maxSellSize string(decimal) false none Maximum sell size. ask1Price string(decimal) false none Best ask price. bid1Price string(decimal) false none Best bid price. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#schemagetmaxcreateordersizeparam) schemagetmaxcreateordersizeparam Name Type Required Constraints Description accountId string(int64) false none Account ID. contractId string(int64) false none Contract ID. price string false none Order price. [PreviousAsset APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api) [NextTransfer APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/transfer-api) Last updated 2 months ago * [OrderPrivateApi](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#orderprivateapi) * [POST Get Maximum Order Creation Size](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-get-maximum-order-creation-size) * [POST Create Order](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-create-order) * [POST Cancel Order by Order ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-cancel-order-by-order-id) * [POST Cancel All Orders under Account](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#post-cancel-all-orders-under-account) * [GET Get Orders by Account ID and Order IDs (Batch)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-orders-by-account-id-and-order-ids-batch) * [GET Get Orders by Client Order IDs (Batch)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-orders-by-client-order-ids-batch) * [GET Get Historical Orders (Paginated)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-paginated) * [GET Get Historical Order Fill Transactions (Paginated)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-order-fill-transactions-paginated) * [GET Get Historical Order Fill Transactions by ID (Batch)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-order-fill-transactions-by-id-batch) * [GET Get Historical Orders by ID (Batch)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-by-id-batch) * [GET Get Historical Orders by Client Order IDs (Batch)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-historical-orders-by-client-order-ids-batch) * [GET Get Active Orders (Paginated)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#get-get-active-orders-paginated) * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/order-api#data-models) Copy { "price": "97393.8", "size": "0.001", "type": "LIMIT", "timeInForce": "GOOD_TIL_CANCEL", "reduceOnly": false, "isPositionTpsl": false, "isSetOpenTp": false, "isSetOpenSl": false, "accountId": "543429922991899150", "contractId": "10000001", "side": "BUY", "triggerPrice": "", "triggerPriceType": "LAST_PRICE", "clientOrderId": "21163368294502694", "expireTime": "1736476772359", "l2Nonce": "808219", "l2Value": "97.3938", "l2Size": "0.001", "l2LimitFee": "0.048697", "l2ExpireTime": "1737254372359", "l2Signature": "0537b3051bb9ffb98bb842ff6cadf69807a8dbf74f94d8c6106cf4f59b1fd2dc01aa2d93420408d60298831ddb82f7b482574ecb0fc285294dfeec732379ec40", "extraType": "", "extraDataJson": "", "symbol": "BTCUSDT", "showEqualValInput": true, "maxSellQTY": 0.009, "maxBuyQTY": 0.007 } Copy { "code": "SUCCESS", "data": { "orderId": "564814927928230158" }, "msg": null, "errorParam": null, "requestTime": "1734662372560", "responseTime": "1734662372575", "traceId": "364c0020d1fe90bbfcca3cf3a9d54759" } Copy { "accountId": "551109015904453258", "orderIdList": [\ "564827797948727434"\ ] } Copy { "code": "SUCCESS", "data": { "cancelResultMap": { "564827797948727434": "SUCCESS" } }, "msg": null, "errorParam": null, "requestTime": "1734665453034", "responseTime": "1734665453043", "traceId": "5597699fd044ed965bfed23fb3728ba5" } Copy { "accountId": "551109015904453258" } Copy { "code": "SUCCESS", "data": { "cancelResultMap": { "564828209955209354": "SUCCESS" } }, "msg": null, "errorParam": null, "requestTime": "1734665771719", "responseTime": "1734665771743", "traceId": "c0a1da9b75ad55d64ce0e98f86279c34" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "564829588270612618",\ "userId": "543429922866069763",\ "accountId": "551109015904453258",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "96260.7",\ "size": "0.001",\ "clientOrderId": "9311381563209122",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736480267612",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "3353661024",\ "l2Value": "96.260700",\ "l2Size": "0.001",\ "l2LimitFee": "0.048131",\ "l2ExpireTime": "1737257867612",\ "l2Signature": {\ "r": "0x072f299b86c199e161508ed554889d50476bc96d5a0c320bcd5b7e579b692c06",\ "s": "0x05b24b988f84bca951b3bb4e69b11e0aa1ce08cca38fea0f3afd94b5e7cd09f8",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "OPEN",\ "matchSequenceId": "35229771",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0",\ "cumFillValue": "0",\ "cumFillFee": "0",\ "maxFillPrice": "0",\ "minFillPrice": "0",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "0",\ "cumMatchSize": "0",\ "cumMatchValue": "0",\ "cumMatchFee": "0",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734665867870",\ "updatedTime": "1734665867876"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734665901264", "responseTime": "1734665901281", "traceId": "65ca2097b4d9cfb487bd9cef53097040" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "564829588270612618",\ "userId": "543429922866069763",\ "accountId": "551109015904453258",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "96260.7",\ "size": "0.001",\ "clientOrderId": "9311381563209122",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736480267612",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "3353661024",\ "l2Value": "96.260700",\ "l2Size": "0.001",\ "l2LimitFee": "0.048131",\ "l2ExpireTime": "1737257867612",\ "l2Signature": {\ "r": "0x072f299b86c199e161508ed554889d50476bc96d5a0c320bcd5b7e579b692c06",\ "s": "0x05b24b988f84bca951b3bb4e69b11e0aa1ce08cca38fea0f3afd94b5e7cd09f8",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "OPEN",\ "matchSequenceId": "35229771",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0",\ "cumFillValue": "0",\ "cumFillFee": "0",\ "maxFillPrice": "0",\ "minFillPrice": "0",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "0",\ "cumMatchSize": "0",\ "cumMatchValue": "0",\ "cumMatchFee": "0",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734665867870",\ "updatedTime": "1734665867876"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734665947238", "responseTime": "1734665947256", "traceId": "64913ab9c62058bc2d9edaeafc3da271" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "564815695875932430",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "97444.5",\ "size": "0.001",\ "clientOrderId": "553364074986685",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736476955478",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "2054491946",\ "l2Value": "97.444500",\ "l2Size": "0.001",\ "l2LimitFee": "0.048723",\ "l2ExpireTime": "1737254555478",\ "l2Signature": {\ "r": "0x009af59c2963f1650449904fde059a83fed5beb4acdd67ffa22c551c4be977de",\ "s": "0x04940a395f2d1b39c0f2b969e47fec478fbfea9ce227bfedd07d407175dcac3e",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "FILLED",\ "matchSequenceId": "35196430",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0.001",\ "cumFillValue": "97.4445",\ "cumFillFee": "0.017540",\ "maxFillPrice": "97444.5",\ "minFillPrice": "97444.5",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "-0.017540",\ "cumMatchSize": "0.001",\ "cumMatchValue": "97.4445",\ "cumMatchFee": "0.017540",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734662555665",\ "updatedTime": "1734662617992"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734662697584", "responseTime": "1734662697601", "traceId": "1cd03694d7da308cb13603f34b0836e6" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "564815957260763406",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "orderId": "564815695875932430",\ "orderSide": "BUY",\ "fillSize": "0.001",\ "fillValue": "97.4445",\ "fillFee": "0.017540",\ "fillPrice": "97444.5",\ "liquidateFee": "0",\ "realizePnl": "-0.017540",\ "direction": "MAKER",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "isWithoutMatch": false,\ "matchSequenceId": "35196430",\ "matchIndex": 0,\ "matchTime": "1734662617982",\ "matchAccountId": "555790606509539863",\ "matchOrderId": "564815957235597591",\ "matchFillId": "05d14491-db7d-478a-9d9f-2dc55c3ff3ca",\ "positionTransactionId": "564815957294318862",\ "collateralTransactionId": "564815957294317838",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "CENSOR_SUCCESS",\ "censorTxId": "893031",\ "censorTime": "1734662617988",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1084582",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "0",\ "createdTime": "1734662617984",\ "updatedTime": "1734662617992"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734662681040", "responseTime": "1734662681051", "traceId": "770fcce6222c2d88b65b4ecb36e84c43" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "564815957260763406",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "orderId": "564815695875932430",\ "orderSide": "BUY",\ "fillSize": "0.001",\ "fillValue": "97.4445",\ "fillFee": "0.017540",\ "fillPrice": "97444.5",\ "liquidateFee": "0",\ "realizePnl": "-0.017540",\ "direction": "MAKER",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "isWithoutMatch": false,\ "matchSequenceId": "35196430",\ "matchIndex": 0,\ "matchTime": "1734662617982",\ "matchAccountId": "555790606509539863",\ "matchOrderId": "564815957235597591",\ "matchFillId": "05d14491-db7d-478a-9d9f-2dc55c3ff3ca",\ "positionTransactionId": "564815957294318862",\ "collateralTransactionId": "564815957294317838",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "CENSOR_SUCCESS",\ "censorTxId": "893031",\ "censorTime": "1734662617988",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1084582",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "0",\ "createdTime": "1734662617984",\ "updatedTime": "1734662617992"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734666041607", "responseTime": "1734666041619", "traceId": "629acb9f32074715a1ea9befd171c452" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "564815695875932430",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "97444.5",\ "size": "0.001",\ "clientOrderId": "553364074986685",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736476955478",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "2054491946",\ "l2Value": "97.444500",\ "l2Size": "0.001",\ "l2LimitFee": "0.048723",\ "l2ExpireTime": "1737254555478",\ "l2Signature": {\ "r": "0x009af59c2963f1650449904fde059a83fed5beb4acdd67ffa22c551c4be977de",\ "s": "0x04940a395f2d1b39c0f2b969e47fec478fbfea9ce227bfedd07d407175dcac3e",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "FILLED",\ "matchSequenceId": "35196430",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0.001",\ "cumFillValue": "97.4445",\ "cumFillFee": "0.017540",\ "maxFillPrice": "97444.5",\ "minFillPrice": "97444.5",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "-0.017540",\ "cumMatchSize": "0.001",\ "cumMatchValue": "97.4445",\ "cumMatchFee": "0.017540",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734662555665",\ "updatedTime": "1734662617992"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734666077826", "responseTime": "1734666077846", "traceId": "5773d3492c5913ba4f8c93071f3e426e" } Copy { "code": "SUCCESS", "data": [\ {\ "id": "564815695875932430",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "97444.5",\ "size": "0.001",\ "clientOrderId": "553364074986685",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736476955478",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "2054491946",\ "l2Value": "97.444500",\ "l2Size": "0.001",\ "l2LimitFee": "0.048723",\ "l2ExpireTime": "1737254555478",\ "l2Signature": {\ "r": "0x009af59c2963f1650449904fde059a83fed5beb4acdd67ffa22c551c4be977de",\ "s": "0x04940a395f2d1b39c0f2b969e47fec478fbfea9ce227bfedd07d407175dcac3e",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "FILLED",\ "matchSequenceId": "35196430",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0.001",\ "cumFillValue": "97.4445",\ "cumFillFee": "0.017540",\ "maxFillPrice": "97444.5",\ "minFillPrice": "97444.5",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "-0.017540",\ "cumMatchSize": "0.001",\ "cumMatchValue": "97.4445",\ "cumMatchFee": "0.017540",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734662555665",\ "updatedTime": "1734662617992"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734666143318", "responseTime": "1734666143331", "traceId": "e19f71177e8cf0c7f34d45d85064c07c" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "564815695875932430",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "side": "BUY",\ "price": "97444.5",\ "size": "0.001",\ "clientOrderId": "553364074986685",\ "type": "LIMIT",\ "timeInForce": "GOOD_TIL_CANCEL",\ "reduceOnly": false,\ "triggerPrice": "0",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "1736476955478",\ "sourceKey": "",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "openTpslParentOrderId": "0",\ "isSetOpenTp": false,\ "openTp": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isSetOpenSl": false,\ "openSl": {\ "side": "UNKNOWN_ORDER_SIDE",\ "price": "",\ "size": "",\ "clientOrderId": "",\ "triggerPrice": "",\ "triggerPriceType": "UNKNOWN_PRICE_TYPE",\ "expireTime": "0",\ "l2Nonce": "0",\ "l2Value": "",\ "l2Size": "",\ "l2LimitFee": "",\ "l2ExpireTime": "0",\ "l2Signature": {\ "r": "",\ "s": "",\ "v": ""\ }\ },\ "isWithoutMatch": false,\ "withoutMatchFillSize": "0",\ "withoutMatchFillValue": "0",\ "withoutMatchPeerAccountId": "0",\ "withoutMatchPeerOrderId": "0",\ "maxLeverage": "50",\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "liquidateFeeRate": "0.01",\ "marketLimitPrice": "0",\ "marketLimitValue": "0",\ "l2Nonce": "2054491946",\ "l2Value": "97.444500",\ "l2Size": "0.001",\ "l2LimitFee": "0.048723",\ "l2ExpireTime": "1737254555478",\ "l2Signature": {\ "r": "0x009af59c2963f1650449904fde059a83fed5beb4acdd67ffa22c551c4be977de",\ "s": "0x04940a395f2d1b39c0f2b969e47fec478fbfea9ce227bfedd07d407175dcac3e",\ "v": ""\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "OPEN",\ "matchSequenceId": "35195888",\ "triggerTime": "0",\ "triggerPriceTime": "0",\ "triggerPriceValue": "0",\ "cancelReason": "UNKNOWN_ORDER_CANCEL_REASON",\ "cumFillSize": "0",\ "cumFillValue": "0",\ "cumFillFee": "0",\ "maxFillPrice": "0",\ "minFillPrice": "0",\ "cumLiquidateFee": "0",\ "cumRealizePnl": "0",\ "cumMatchSize": "0",\ "cumMatchValue": "0",\ "cumMatchFee": "0",\ "cumFailSize": "0",\ "cumFailValue": "0",\ "cumFailFee": "0",\ "cumApprovedSize": "0",\ "cumApprovedValue": "0",\ "cumApprovedFee": "0",\ "createdTime": "1734662555665",\ "updatedTime": "1734662555672"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734662566830", "responseTime": "1734662566836", "traceId": "4a97b2e8da4933980f399581dd4a1264" } --- # Account API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#accountprivateapi) AccountPrivateApi ------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-transaction-page) GET Get Position Transaction Page GET /api/v1/private/account/getPositionTransactionPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter position transaction records by specified coin IDs. If not provided, all collateral transaction records are retrieved filterContractIdList query string No Filter position transaction records by specified contract IDs. If not provided, all position transaction records are retrieved filterTypeList query string No Filter position transaction records by specified types. If not provided, all position transaction records are retrieved filterStartCreatedTimeInclusive query string No Filter position transaction records created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter position transaction records created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time filterCloseOnly query string No Whether to return only position transactions that include closing positions. `true`: only return records with closing; `false`: return all records filterOpenOnly query string No Whether to return only position transactions that include opening positions. `true`: only return records with opening; `false`: return all records > Response Example > 200 Response Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "564809510904923406",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "type": "SELL_POSITION",\ "deltaOpenSize": "-0.001",\ "deltaOpenValue": "-96.813200",\ "deltaOpenFee": "0.048406",\ "deltaFundingFee": "0.000000",\ "beforeOpenSize": "0.001",\ "beforeOpenValue": "96.813200",\ "beforeOpenFee": "-0.048406",\ "beforeFundingFee": "0",\ "fillCloseSize": "-0.001",\ "fillCloseValue": "-96.857100",\ "fillCloseFee": "-0.048428",\ "fillOpenSize": "0.000",\ "fillOpenValue": "0.000000",\ "fillOpenFee": "0.000000",\ "fillPrice": "96857.1",\ "liquidateFee": "0",\ "realizePnl": "-0.004528",\ "isLiquidate": false,\ "isDeleverage": false,\ "fundingTime": "0",\ "fundingRate": "",\ "fundingIndexPrice": "",\ "fundingOraclePrice": "",\ "fundingPositionSize": "",\ "orderId": "564809510842007822",\ "orderFillTransactionId": "564809510875562254",\ "collateralTransactionId": "564809510904922382",\ "forceTradeId": "0",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "CENSOR_SUCCESS",\ "censorTxId": "892720",\ "censorTime": "1734661081049",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1084271",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "0",\ "createdTime": "1734661081049",\ "updatedTime": "1734661081053"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734661416266", "responseTime": "1734661416277", "traceId": "a87a52a4e189045b7b7b9948ea7b5c54" } #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positiontransactionpage) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-transactions-by-account-id-and-transaction-id) GET Get Position Transactions By Account ID and Transaction ID GET /api/v1/private/account/getPositionTransactionById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-1) Request Parameters Name Location Type Required Description accountId query string No Account ID positionTransactionIdList query string No Position Transaction IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positiontransaction) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-term-page-by-account-id) GET Get Position Term Page by Account ID GET /api/v1/private/account/getPositionTermPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-2) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter position term records by specified coin IDs. If not provided, all position term records are retrieved filterContractIdList query string No Filter position term records by specified contract IDs. If not provided, all position term records are retrieved filterIsLongPosition query string No Filter position term records by position direction. If not provided, all position term records are retrieved filterStartCreatedTimeInclusive query string No Filter position term records created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter position term records created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positionterm) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-by-account-id-and-contract-id) GET Get Position By Account ID and Contract ID GET /api/v1/private/account/getPositionByContractId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string No Account ID contractIdList query string No Specified contract IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-data-structure) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-transaction-page-by-account-id) GET Get Collateral Transaction Page by Account ID GET /api/v1/private/account/getCollateralTransactionPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-4) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter collateral transaction records by specified coin IDs. If not provided, all collateral transaction records are retrieved filterTypeList query string No Filter collateral transaction records by specified transaction types. If not provided, all collateral transaction records are retrieved filterStartCreatedTimeInclusive query string No Filter collateral transaction records created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter collateral transaction records created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-data-structure-1) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-transactions-by-account-id-and-transaction-id) GET Get Collateral Transactions By Account ID and Transaction ID GET /api/v1/private/account/getCollateralTransactionById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-5) Request Parameters Name Location Type Required Description accountId query string No Account ID collateralTransactionIdList query string No Collateral Transaction IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-5) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-data-structure-2) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-by-account-id-and-coin-id) GET Get Collateral By Account ID and Coin ID GET /api/v1/private/account/getCollateralByCoinId #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-6) Request Parameters Name Location Type Required Description accountId query string No Account ID coinIdList query string No Filter collateral information by specified coin IDs. If not provided, all collateral information is retrieved > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-6) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response Inline #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-data-structure-3) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-page-by-user-id) GET Get Account Page by User ID GET /api/v1/private/account/getAccountPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-7) Request Parameters Name Location Type Required Description size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-7) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaresultaccount) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-deleverage-light) GET Get Account Deleverage Light GET /api/v1/private/account/getAccountDeleverageLight #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-8) Request Parameters Name Location Type Required Description accountId query string No Account ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-8) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#getaccountdeleveragelight) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-by-account-id) GET Get Account By Account ID GET /api/v1/private/account/getAccountById #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-9) Request Parameters Name Location Type Required Description accountId query string No Account ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-9) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#account) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-account-asset) GET Account Asset GET /api/v1/private/account/getAccountAsset #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-10) Request Parameters Name Location Type Required Description accountId query string No Account ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-10) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#accountassetsnapshot) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-asset-snapshot-page-by-account-id) GET Get Account Asset Snapshot Page by Account ID GET /api/v1/private/account/getAccountAssetSnapshotPage #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-11) Request Parameters Name Location Type Required Description accountId query string No Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 1000 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved coinId query string Yes Filter by the specified coin ID. filterTimeTag query string No Specifies time tag. If not provided or 0, returns snapshots by the hour. 1 returns snapshots by the day filterStartTimeInclusive query string No Filter snapshots created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndTimeExclusive query string No Filter snapshots created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-11) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#accountassetsnapshot%3E) ### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#post-register-account-create-sub-account) POST Register Account(Create Sub-Account) POST /api/v1/private/account/registerAccount > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#request-parameters-12) Request Parameters Name Location Type Required Description body body object Yes none » l2Key body string Yes L2 account key, globally unique. Corresponds to starkKey in starkEx (bigint as hex string) » l2KeyYCoordinate body string Yes Only used to verify if l2Signature is valid. Not returned to client users (bigint as hex string) » clientAccountId body string Yes Client account ID for idempotency verification > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-12) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#registeraccount) [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------ #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#accountassetsnapshot) accountassetsnapshot Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [PageDataAccountAssetSnapshot](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedataaccountassetsnapshot) false none Generic Paginated Response errorParam object false none Error Parameters Error message parameter information » **additionalProperties** string false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedataaccountassetsnapshot) schemapagedataaccountassetsnapshot Name Type Required Constraints Description Notes dataList \[[AccountAssetSnapshot](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccountassetsnapshot)\ \] false none Data List nextPageOffsetData string false none Next Page Offset Offset for retrieving the next page. If no next page data, empty string. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccountassetsnapshot) schemaaccountassetsnapshot Name Type Required Constraints Description Notes userId string(int64) false none User ID ID of the owning user accountId string(int64) false none Account ID ID of the owning account coinId string(int64) false none Collateral Coin ID ID of the associated collateral coin timeTag integer(int32) false none Time Tag Time tag. 1 represents the snapshot time is for the whole day. snapshotTime string(int64) false none Snapshot Time Snapshot time, hourly timestamp at the top of the hour. totalEquity string false none Total Collateral Value Current total value of the collateral termRealizePnl string false none Term Realized PnL Realized PnL for the term unrealizePnl string false none Unrealized PnL Unrealized PnL totalRealizePnl string false none Total Realized PnL Total realized PnL of the position #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaresultgetaccountasset) schemaresultgetaccountasset Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [GetAccountAsset](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemagetaccountasset) false none Get Account Asset Response Response structure for fetching account asset data. errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemagetaccountasset) schemagetaccountasset Name Type Required Constraints Description Notes account [Account](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccount) false none Account Information Account information data. collateralList \[[Collateral](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateral)\ \] false none Collateral Information List List of collateral information data. positionList \[[Position](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaposition)\ \] false none Perpetual Contract Position List List of perpetual contract position information. version string(int64) false none Account Version Account version number, incremented with each update. positionAssetList \[[PositionAsset](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionasset)\ \] false none Position Asset Information List List of position asset information. collateralAssetModelList \[[CollateralAsset](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateralasset)\ \] false none Account-Level Asset Information List List of account-level asset information. oraclePriceList \[[IndexPrice](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaindexprice)\ \] false none Oracle Price List List of all oracle prices used to calculate assets (only those used). #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaindexprice) schemaindexprice Name Type Required Constraints Description Notes contractId string(int64) false none Contract ID Contract ID priceType string false none Price Type priceValue string false none Price Value Price value createdTime string(int64) false none Creation Time Time of creation oraclePriceSignature \[[OraclePriceSignature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaoraclepricesignature)\ \] false none Oracle Price Signature Information Oracle price signature information, only exists when price\_type=ORACLE\_PRICE. **Enumerated Values** Property Value priceType UNKNOWN\_PRICE\_TYPE priceType ORACLE\_PRICE priceType INDEX\_PRICE priceType LAST\_PRICE priceType ASK1\_PRICE priceType BID1\_PRICE priceType OPEN\_INTEREST priceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaoraclepricesignature) schemaoraclepricesignature Name Type Required Constraints Description Notes contractId string(int64) false none Contract ID Contract ID signer string false none Signer ID Signer identifier price string false none Signed Price The price signed (price after stark ex precision processing) externalAssetId string false none Concatenated Asset and Oracle Names Concatenation of the asset name and the oracle name (both in hex encoding). signature [L2Signature](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemal2signature) false none L2 Signature Information L2 signature information timestamp string(int64) false none Signature Creation Time The time the signature was created. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemal2signature) schemal2signature Name Type Required Constraints Description Notes r string false none R Value Bigint for hex string s string false none S Value Bigint for hex string v string false none V Value Bigint for hex string #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateralasset) schemacollateralasset Name Type Required Constraints Description Notes userId string(int64) false none User ID ID of the owning user. accountId string(int64) false none Account ID ID of the owning account. coinId string(int64) false none Collateral Coin ID ID of the associated collateral coin. totalEquity string false none Total Collateral Value Current total value of the collateral. totalPositionValueAbs string false none Sum of Absolute Position Values Sum of the absolute position values for the current collateral initialMarginRequirement string false none Initial Margin Requirement The initial margin requirement for the current collateral. starkExRiskValue string false none Total StarkEx Risk Value The total starkEx risk amount for the current collateral. pendingWithdrawAmount string false none Pending Withdrawal Amount The amount of collateral pending withdrawal. pendingTransferOutAmount string false none Pending Transfer Out Amount The amount of collateral pending transfer out. orderFrozenAmount string false none Order Frozen Amount The amount of collateral frozen by orders. availableAmount string false none Available Amount The amount of collateral available for use. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionasset) schemapositionasset Name Type Required Constraints Description Notes userId string(int64) false none User ID ID of the owning user. accountId string(int64) false none Account ID ID of the owning account. coinId string(int64) false none Collateral Coin ID ID of the associated collateral coin. contractId string(int64) false none Contract ID ID of the associated contract. positionValue string false none Position Value Position value, positive for long positions, negative for short positions. maxLeverage string false none Maximum Leverage The maximum leverage for current contract position. initialMarginRequirement string false none Initial Margin Requirement Initial margin requirement for the position. starkExRiskRate string false none StarkEx Risk Rate StarkEx risk rate calculated based on risk tiers. Similar to maintenance margin rate with different precision. starkExRiskValue string false none StarkEx Risk Value StarkEx risk amount, similar to maintenance margin, with different precision. avgEntryPrice string false none Average Entry Price Average entry price. liquidatePrice string false none Liquidation Price Liquidation price (force liquidation price). If oracle price reaches this price, liquidation is triggered. bankruptPrice string false none Bankruptcy Price Bankruptcy price. If the oracle price reaches this level, account total value is less than 0. worstClosePrice string false none Worst Close Price The worst closing price. The closing transaction price can not be worse than this price. unrealizePnl string false none Unrealized PnL Unrealized profit and loss for the position. termRealizePnl string false none Term Realized PnL Realized PnL for the term. totalRealizePnl string false none Total Realized PnL Total realized PnL of the position. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaposition) schemaposition Name Type Required Constraints Description Notes userId string(int64) false none User ID ID of the owning user. accountId string(int64) false none Account ID ID of the owning account. coinId string(int64) false none Collateral Coin ID ID of the associated collateral coin. contractId string(int64) false none Contract ID ID of the associated contract. openSize string false none Current Open Size Current open size (positive for long, negative for short). openValue string false none Current Open Value Current open value (increases upon opening, proportionally decreases upon closing). openFee string false none Current Open Fee Current allocated open fee (increases upon opening, proportionally decreases upon closing). fundingFee string false none Current Funding Fee Current allocated funding fee (increases upon settlement, proportionally decreases upon closing). longTermCount integer(int32) false none Long Position Term Count Long position term count. Starts from 1, increases by one upon complete closure of a position longTermStat [PositionStat](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionstat) false none Long Position Cumulative Statistics Cumulative statistics for the position. longTermCreatedTime string false none Long Position Term Creation Time Creation time for the long position term. longTermUpdatedTime string false none Long Position Term Update Time Update time for the long position term. shortTermCount integer(int32) false none Short Position Term Count Short position term count. Starts from 1, increases by one upon complete closure of a position shortTermStat [PositionStat](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionstat) false none Short Position Cumulative Statistics Cumulative statistics for the position. shortTermCreatedTime string false none Short Position Term Creation Time Creation time for the short position term. shortTermUpdatedTime string false none Short Position Term Update Time Update time for the short position term. longTotalStat [PositionStat](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionstat) false none Long Cumulative Statistics Cumulative statistics for the position. shortTotalStat [PositionStat](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionstat) false none Short Cumulative Statistics Cumulative statistics for the position. createdTime string(int64) false none Creation Time Creation time. updatedTime string(int64) false none Update Time Update time. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionstat) schemapositionstat Name Type Required Constraints Description Notes cumOpenSize string false none Cumulative Open Size Cumulative open size. cumOpenValue string false none Cumulative Open Value Cumulative open value. cumOpenFee string false none Cumulative Open Fee Cumulative open fees. cumCloseSize string false none Cumulative Close Size Cumulative close size. cumCloseValue string false none Cumulative Close Value Cumulative close value. cumCloseFee string false none Cumulative Close Fee Cumulative close fees. cumFundingFee string false none Cumulative Funding Fee Cumulative funding fees settled. cumLiquidateFee string false none Cumulative Liquidate Fee Cumulative liquidation fees. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateral) schemacollateral Name Type Required Constraints Description Notes userId string(int64) false none User ID ID of the owning user. accountId string(int64) false none Account ID ID of the owning account. coinId string(int64) false none Coin ID Collateral coin ID. amount string(decimal) false none Collateral Amount Collateral amount, actually of decimal type. legacyAmount string(decimal) false none Legacy Amount Legacy balance field, for display purposes only, not for calculations. cumDepositAmount string(decimal) false none Cumulative Deposit Amount Cumulative deposit amount. cumWithdrawAmount string(decimal) false none Cumulative Withdrawal Amount Cumulative withdrawal amount. cumTransferInAmount string(decimal) false none Cumulative Transfer In Amount Cumulative transfer in amount. cumTransferOutAmount string(decimal) false none Cumulative Transfer Out Amount Cumulative transfer out amount. cumPositionBuyAmount string(decimal) false none Cumulative Position Buy Amount Cumulative collateral amount deducted from position buy. cumPositionSellAmount string(decimal) false none Cumulative Position Sell Amount Cumulative collateral amount added from position sell. cumFillFeeAmount string(decimal) false none Cumulative Fill Fee Amount Cumulative transaction fee amount. cumFundingFeeAmount string(decimal) false none Cumulative Funding Fee Amount Cumulative funding fee amount. cumFillFeeIncomeAmount string(decimal) false none Cumulative Order Fill Fee Income Amount Cumulative amount from order fill fee income. createdTime string(int64) false none Creation Time Creation time. updatedTime string(int64) false none Update Time Update time. #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccount) schemaaccount Name Type Required Constraints Description Notes id string(int64) false none Account ID Account ID, must be greater than 0. userId string(int64) false none User ID ID of the owning user. ethAddress string false none Wallet ETH Address Wallet ETH address. l2Key string false none L2 Account Key Account key on L2. Stark key in starkEx. Bigint for hex string l2KeyYCoordinate string false none L2 Key Y Coordinate Used only for verifying l2Signature. Not returned to end users. Bigint for hex string. clientAccountId string false none Client Account ID Client account ID for idempotency check. isSystemAccount boolean false none System Account Whether it is a system account (system accounts are not subject to contract risk settings, use separate MQ for trade messages). defaultTradeSetting [TradeSetting](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schematradesetting) false none Default Trade Setting Trade settings. Trade setting calculation priority: Account contract trade settings -> Account default trade settings -> Contract configuration trade settings. Note: Only one of `is_set_fee_rate` and `is_set_fee_discount` can be true. contractIdToTradeSetting object false none Contract-Level Account Trade Settings Account contract-level trade settings. » **additionalProperties** [TradeSetting](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schematradesetting) false none Contract-Level Account Trade Settings Trade settings. Trade setting calculation priority: Account contract trade settings -> Account default trade settings -> Contract configuration trade settings. Note: Only one of `is_set_fee_rate` and `is_set_fee_discount` can be true. maxLeverageLimit string false none Maximum Leverage Limit User-set maximum leverage limit. If 0, uses the leverage limit of the corresponding trading contract. createOrderPerMinuteLimit integer(int32) false none Order Creation Limit per Minute Order frequency limit per minute. If 0, default limit is used; if < 0, no limit is applied. createOrderDelayMillis integer(int32) false none Order Creation Delay Milliseconds Order delay milliseconds, must be greater than or equal to 0. extraType string false none Extra Type Extra type for upper-layer use. extraDataJson string false none Extra Data Extra data in JSON format, default is an empty string. status string false none Account Status Account status. isLiquidating boolean false none Is Liquidating Whether is being liquidated. createdTime string(int64) false none Creation Time Creation time. updatedTime string(int64) false none Update Time Update time. **Enumerated Values** Property Value status UNKNOWN\_ACCOUNT\_STATUS status CENSORING status NORMAL status DISABLED status INVALID status UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schematradesetting) schematradesetting Name Type Required Constraints Description Notes isSetFeeRate boolean false none Whether Fee Rate is Set Whether to set a specific fee rate value. takerFeeRate string(decimal) false none Taker Fee Rate Taker fee rate, range \[0, 1), valid only when is\_set\_fee\_rate=true.\ \ makerFeeRate\ \ string(decimal)\ \ false\ \ none\ \ Maker Fee Rate\ \ Maker fee rate, range \[0, 1), valid only when is\_set\_fee\_rate=true.\ \ isSetFeeDiscount\ \ boolean\ \ false\ \ none\ \ Whether Fee Discount is Set\ \ Whether to set a fee discount.\ \ takerFeeDiscount\ \ string(decimal)\ \ false\ \ none\ \ Taker Fee Discount\ \ Taker fee discount, range \[0, 1), valid only when is\_set\_fee\_discount=true.\ \ makerFeeDiscount\ \ string(decimal)\ \ false\ \ none\ \ Maker Fee Discount\ \ Maker fee discount, range \[0, 1), valid only when is\_set\_fee\_discount=true.\ \ isSetMaxLeverage\ \ boolean\ \ false\ \ none\ \ Whether Maximum Leverage is Set\ \ Whether to set maximum trading leverage.\ \ maxLeverage\ \ string(decimal)\ \ false\ \ none\ \ Maximum Leverage\ \ Maximum trading leverage.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaresultaccount)\ \ schemaresultaccount\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [Account](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccount)\ \ false\ \ none\ \ Account Information\ \ Account information data.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#getaccountdeleveragelight)\ \ getaccountdeleveragelight\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [GetAccountDeleverageLight](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemagetaccountdeleveragelight)\ \ false\ \ none\ \ Get Account Deleverage Light Response\ \ Response structure for fetching deleverage light information.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#response-structure-for-fetching-deleverage-light-information)\ \ Response structure for fetching deleverage light information.\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ positionContractIdToLightNumberMap\ \ object\ \ false\ \ none\ \ Map from Position Contract ID to Light Number\ \ Maps position contract ID to light number. `light_number` ranges from 1-5, which represent 1-5 lights.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#account)\ \ account\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [PageDataAccount](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedataaccount)\ \ false\ \ none\ \ Generic Paginated Response\ \ Generic paginated response.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#generic-paginated-response)\ \ Generic Paginated Response\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ dataList\ \ \[[Account](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaaccount)\ \]\ \ false\ \ none\ \ Data List\ \ List of account data.\ \ nextPageOffsetData\ \ string\ \ false\ \ none\ \ Next Page Offset\ \ Offset for retrieving the next page. If no next page data, empty string.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#collateral)\ \ collateral\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ \[[Collateral](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateral)\ \]\ \ false\ \ none\ \ Response Data\ \ Correct response data.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#collateraltransaction)\ \ collateraltransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ \[[CollateralTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateraltransaction)\ \]\ \ false\ \ none\ \ Response Data\ \ Correct response data.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#collateral-transaction-details)\ \ Collateral transaction details\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ id\ \ string(int64)\ \ false\ \ none\ \ Unique Identifier\ \ Unique identifier.\ \ userId\ \ string(int64)\ \ false\ \ none\ \ User ID\ \ ID of the owning user.\ \ accountId\ \ string(int64)\ \ false\ \ none\ \ Account ID\ \ ID of the owning account.\ \ coinId\ \ string(int64)\ \ false\ \ none\ \ Coin ID\ \ Collateral coin ID.\ \ type\ \ string\ \ false\ \ none\ \ Detail Type\ \ Detail type.\ \ deltaAmount\ \ string(decimal)\ \ false\ \ none\ \ Collateral Change Amount\ \ Amount of the collateral change.\ \ deltaLegacyAmount\ \ string(decimal)\ \ false\ \ none\ \ Legacy Balance Change Amount\ \ Change amount of the legacy balance field.\ \ beforeAmount\ \ string(decimal)\ \ false\ \ none\ \ Collateral Amount Before Change\ \ Collateral amount before the change.\ \ beforeLegacyAmount\ \ string(decimal)\ \ false\ \ none\ \ Legacy Balance Amount Before Change\ \ Legacy balance before the change.\ \ fillCloseSize\ \ string(decimal)\ \ false\ \ none\ \ Transaction Close Size\ \ Transaction close size (positive for buy, negative for sell).\ \ fillCloseValue\ \ string\ \ false\ \ none\ \ Transaction Close Value\ \ Transaction close value (positive for buy, negative for sell).\ \ fillCloseFee\ \ string\ \ false\ \ none\ \ Transaction Close Fee\ \ Transaction close fee (typically zero or negative).\ \ fillOpenSize\ \ string(decimal)\ \ false\ \ none\ \ Transaction Open Size\ \ Transaction open size (positive for buy, negative for sell).\ \ fillOpenValue\ \ string\ \ false\ \ none\ \ Transaction Open Value\ \ Transaction open value (positive for buy, negative for sell).\ \ fillOpenFee\ \ string\ \ false\ \ none\ \ Transaction Open Fee\ \ Transaction open fee (typically zero or negative).\ \ fillPrice\ \ string(decimal)\ \ false\ \ none\ \ Transaction Price\ \ Transaction price (not precise, for display).\ \ liquidateFee\ \ string(decimal)\ \ false\ \ none\ \ Liquidation Fee\ \ Liquidation fee (if close transaction is a liquidation, typically zero or negative).\ \ realizePnl\ \ string(decimal)\ \ false\ \ none\ \ Realized Profit and Loss\ \ Realized profit and loss from a close (if a close transaction. Not precise, for display).\ \ isLiquidate\ \ boolean\ \ false\ \ none\ \ Is Liquidation\ \ Whether the transaction is a liquidation.\ \ isDeleverage\ \ boolean\ \ false\ \ none\ \ Is Auto-Deleveraging\ \ Whether the transaction is from auto-deleveraging.\ \ fundingTime\ \ string(int64)\ \ false\ \ none\ \ Funding Settlement Time\ \ Funding settlement time.\ \ fundingRate\ \ string(decimal)\ \ false\ \ none\ \ Funding Rate\ \ Funding rate.\ \ fundingIndexPrice\ \ string(decimal)\ \ false\ \ none\ \ Funding Index Price\ \ Index price related to funding rate.\ \ fundingOraclePrice\ \ string(decimal)\ \ false\ \ none\ \ Funding Oracle Price\ \ Oracle price related to funding rate.\ \ fundingPositionSize\ \ string(decimal)\ \ false\ \ none\ \ Position Size During Funding Settlement\ \ Position size during funding settlement (positive for long, negative for short).\ \ depositId\ \ string(int64)\ \ false\ \ none\ \ Deposit Order ID\ \ Associated deposit order ID when type=DEPOSIT.\ \ withdrawId\ \ string(int64)\ \ false\ \ none\ \ Withdrawal Order ID\ \ Associated withdrawal order ID when type=WITHDRAW.\ \ transferInId\ \ string(int64)\ \ false\ \ none\ \ Transfer In Order ID\ \ Associated transfer-in order ID when type=TRANSFER\_IN.\ \ transferOutId\ \ string(int64)\ \ false\ \ none\ \ Transfer Out Order ID\ \ Associated transfer-out order ID when type=TRANSFER\_OUT.\ \ transferReason\ \ string\ \ false\ \ none\ \ Transfer Reason\ \ Transfer reason when type=TRANSFER\_IN/TRANSFER\_OUT.\ \ orderId\ \ string(int64)\ \ false\ \ none\ \ Order ID\ \ Associated order ID when type=POSITION\_BUY/POSITION\_SELL/FILL\_FEE\_INCOME.\ \ orderFillTransactionId\ \ string(int64)\ \ false\ \ none\ \ Order Fill Transaction ID\ \ Associated order fill transaction ID when type=POSITION\_BUY/POSITION\_SELL/FILL\_FEE\_INCOME.\ \ orderAccountId\ \ string(int64)\ \ false\ \ none\ \ Order Account ID\ \ Associated order account ID when type=FILL\_FEE\_INCOME.\ \ positionContractId\ \ string(int64)\ \ false\ \ none\ \ Position Contract ID\ \ Associated position contract ID when type=POSITION\_BUY/POSITION\_SELL/POSITION\_FUNDING/FILL\_FEE\_INCOME.\ \ positionTransactionId\ \ string(int64)\ \ false\ \ none\ \ Position Transaction ID\ \ Associated position transaction ID when type=POSITION\_BUY/POSITION\_SELL/POSITION\_FUNDING.\ \ forceWithdrawId\ \ string\ \ false\ \ none\ \ Force Withdrawal Order ID\ \ Associated force withdrawal order ID when type=WITHDRAW.\ \ forceTradeId\ \ string\ \ false\ \ none\ \ Force Trade ID\ \ Associated force trade order ID when type=POSITION\_BUY/POSITION\_SELL.\ \ extraType\ \ string\ \ false\ \ none\ \ Extra Type\ \ Extra type for upper-layer business use.\ \ extraDataJson\ \ string\ \ false\ \ none\ \ Extra Data\ \ Extra data in JSON format, default is empty string.\ \ censorStatus\ \ string\ \ false\ \ none\ \ Current Censoring Status\ \ Current censoring status.\ \ censorTxId\ \ string(int64)\ \ false\ \ none\ \ Censoring Processing Sequence Number\ \ Censoring processing sequence number, exists when censor\_status=CENSOR\_SUCCESS/CENSOR\_FAILURE/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ censorTime\ \ string(int64)\ \ false\ \ none\ \ Censoring Processing Time\ \ Censoring processing time, exists when censor\_status=CENSOR\_SUCCESS/CENSOR\_FAILURE/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ censorFailCode\ \ string\ \ false\ \ none\ \ Censoring Failure Code\ \ Censoring failure code, exists when censor\_status=CENSOR\_FAILURE.\ \ censorFailReason\ \ string\ \ false\ \ none\ \ Censoring Failure Reason\ \ Censoring failure reason, exists when censor\_status=CENSOR\_FAILURE.\ \ l2TxId\ \ string(int64)\ \ false\ \ none\ \ L2 Push Transaction ID\ \ L2 push transaction ID, exists when censor\_status=CENSOR\_SUCCESS/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectTime\ \ string(int64)\ \ false\ \ none\ \ L2 Rejection Time\ \ L2 rejection time, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectCode\ \ string\ \ false\ \ none\ \ L2 Rejection Error Code\ \ L2 rejection error code, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectReason\ \ string\ \ false\ \ none\ \ L2 Rejection Reason\ \ L2 rejection reason, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2ApprovedTime\ \ string(int64)\ \ false\ \ none\ \ L2 Batch Verification Time\ \ L2 batch verification time, exists when censor\_status=L2\_APPROVED/L2\_REJECT\_APPROVED.\ \ createdTime\ \ string(int64)\ \ false\ \ none\ \ Creation Time\ \ Creation time.\ \ updatedTime\ \ string(int64)\ \ false\ \ none\ \ Update Time\ \ Update time.\ \ **Enumerated Values**\ \ Property\ \ Value\ \ type\ \ UNKNOWN\_COLLATERAL\_TRANSACTION\_TYPE\ \ type\ \ DEPOSIT\ \ type\ \ WITHDRAW\ \ type\ \ TRANSFER\_IN\ \ type\ \ TRANSFER\_OUT\ \ type\ \ POSITION\_BUY\ \ type\ \ POSITION\_SELL\ \ type\ \ POSITION\_FUNDING\ \ type\ \ FILL\_FEE\_INCOME\ \ type\ \ BUG\_FIX\_COLLATERAL\_TRANSACTION\_TYPE\ \ type\ \ UNRECOGNIZED\ \ transferReason\ \ UNKNOWN\_TRANSFER\_REASON\ \ transferReason\ \ USER\_TRANSFER\ \ transferReason\ \ FAST\_WITHDRAW\ \ transferReason\ \ CROSS\_DEPOSIT\ \ transferReason\ \ CROSS\_WITHDRAW\ \ transferReason\ \ UNRECOGNIZED\ \ censorStatus\ \ UNKNOWN\_TRANSACTION\_STATUS\ \ censorStatus\ \ INIT\ \ censorStatus\ \ CENSOR\_SUCCESS\ \ censorStatus\ \ CENSOR\_FAILURE\ \ censorStatus\ \ L2\_APPROVED\ \ censorStatus\ \ L2\_REJECT\ \ censorStatus\ \ L2\_REJECT\_APPROVED\ \ censorStatus\ \ UNRECOGNIZED\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#collateraltransaction-1)\ \ collateraltransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [PageDataCollateralTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatacollateraltransaction)\ \ false\ \ none\ \ Generic Paginated Response\ \ Generic paginated response.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatacollateraltransaction)\ \ schemapagedatacollateraltransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ dataList\ \ \[[CollateralTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemacollateraltransaction)\ \]\ \ false\ \ none\ \ Data List\ \ List of collateral transaction data.\ \ nextPageOffsetData\ \ string\ \ false\ \ none\ \ Next Page Offset\ \ Offset for retrieving the next page. If no next page data, empty string.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#position)\ \ position\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ \[[Position](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemaposition)\ \]\ \ false\ \ none\ \ Response Data\ \ Correct response data.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positionterm)\ \ positionterm\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [PageDataPositionTerm](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatapositionterm)\ \ false\ \ none\ \ Generic Paginated Response\ \ Generic paginated response.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatapositionterm)\ \ schemapagedatapositionterm\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ dataList\ \ \[[PositionTerm](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionterm)\ \]\ \ false\ \ none\ \ Data List\ \ List of position term data.\ \ nextPageOffsetData\ \ string\ \ false\ \ none\ \ Next Page Offset\ \ Offset for retrieving the next page. If no next page data, empty string.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositionterm)\ \ schemapositionterm\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ userId\ \ string\ \ false\ \ none\ \ User ID\ \ ID of the owning user.\ \ accountId\ \ string\ \ false\ \ none\ \ Account ID\ \ ID of the owning account.\ \ coinId\ \ string\ \ false\ \ none\ \ Collateral Coin ID\ \ ID of the associated collateral coin.\ \ contractId\ \ string\ \ false\ \ none\ \ Contract ID\ \ ID of the associated contract.\ \ termCount\ \ integer(int32)\ \ false\ \ none\ \ Term Count\ \ Term count. Starts from 1, increases by one each time a position is fully closed and then re-opened.\ \ cumOpenSize\ \ string\ \ false\ \ none\ \ Cumulative Open Size\ \ Cumulative open size.\ \ cumOpenValue\ \ string\ \ false\ \ none\ \ Cumulative Open Value\ \ Cumulative open value.\ \ cumOpenFee\ \ string\ \ false\ \ none\ \ Cumulative Open Fee\ \ Cumulative open fees.\ \ cumCloseSize\ \ string\ \ false\ \ none\ \ Cumulative Close Size\ \ Cumulative close size.\ \ cumCloseValue\ \ string\ \ false\ \ none\ \ Cumulative Close Value\ \ Cumulative close value.\ \ cumCloseFee\ \ string\ \ false\ \ none\ \ Cumulative Close Fee\ \ Cumulative close fees.\ \ cumFundingFee\ \ string\ \ false\ \ none\ \ Cumulative Funding Fee\ \ Cumulative funding fees that have been settled.\ \ cumLiquidateFee\ \ string\ \ false\ \ none\ \ Cumulative Liquidation Fee\ \ Cumulative liquidation fees.\ \ createdTime\ \ string(int64)\ \ false\ \ none\ \ Creation Time\ \ Creation time.\ \ updatedTime\ \ string(int64)\ \ false\ \ none\ \ Update Time\ \ Update time.\ \ currentLeverage\ \ string\ \ false\ \ none\ \ Leverage at Close\ \ Leverage multiple at the time of close position.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positiontransaction)\ \ positiontransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ \[[PositionTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositiontransaction)\ \]\ \ false\ \ none\ \ Response Data\ \ Correct response data.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositiontransaction)\ \ schemapositiontransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ id\ \ string(int64)\ \ false\ \ none\ \ Unique Identifier\ \ Unique identifier.\ \ userId\ \ string(int64)\ \ false\ \ none\ \ User ID\ \ ID of the owning user.\ \ accountId\ \ string(int64)\ \ false\ \ none\ \ Account ID\ \ ID of the owning account.\ \ coinId\ \ string(int64)\ \ false\ \ none\ \ Collateral Coin ID\ \ ID of the associated collateral coin.\ \ contractId\ \ string(int64)\ \ false\ \ none\ \ Contract ID\ \ ID of the associated contract.\ \ type\ \ string\ \ false\ \ none\ \ Detail Type\ \ Detail type.\ \ deltaOpenSize\ \ string\ \ false\ \ none\ \ Change in Open Size\ \ Change in holding size.\ \ deltaOpenValue\ \ string\ \ false\ \ none\ \ Change in Open Value\ \ Change in open value.\ \ deltaOpenFee\ \ string\ \ false\ \ none\ \ Change in Open Fee\ \ Change in open fee.\ \ deltaFundingFee\ \ string\ \ false\ \ none\ \ Change in Funding Fee\ \ Change in funding fee.\ \ beforeOpenSize\ \ string\ \ false\ \ none\ \ Open Size Before Change\ \ Holding size before the change.\ \ beforeOpenValue\ \ string\ \ false\ \ none\ \ Open Value Before Change\ \ Open value before the change.\ \ beforeOpenFee\ \ string\ \ false\ \ none\ \ Open Fee Before Change\ \ Open fee before the change.\ \ beforeFundingFee\ \ string\ \ false\ \ none\ \ Funding Fee Before Change\ \ Funding fee before the change.\ \ fillCloseSize\ \ string\ \ false\ \ none\ \ Transaction Close Size\ \ Transaction close size (positive for buy, negative for sell).\ \ fillCloseValue\ \ string\ \ false\ \ none\ \ Transaction Close Value\ \ Transaction close value (positive for buy, negative for sell).\ \ fillCloseFee\ \ string\ \ false\ \ none\ \ Transaction Close Fee\ \ Transaction close fee (typically zero or negative).\ \ fillOpenSize\ \ string\ \ false\ \ none\ \ Transaction Open Size\ \ Transaction open size (positive for buy, negative for sell).\ \ fillOpenValue\ \ string\ \ false\ \ none\ \ Transaction Open Value\ \ Transaction open value (positive for buy, negative for sell).\ \ fillOpenFee\ \ string\ \ false\ \ none\ \ Transaction Open Fee\ \ Transaction open fee (typically zero or negative).\ \ fillPrice\ \ string\ \ false\ \ none\ \ Transaction Price\ \ Transaction price (not precise, for display).\ \ liquidateFee\ \ string\ \ false\ \ none\ \ Liquidation Fee\ \ Liquidation fee (if close transaction is a liquidation, typically zero or negative).\ \ realizePnl\ \ string\ \ false\ \ none\ \ Realized Profit and Loss\ \ Realized profit and loss from a close (if a close transaction. Not precise, for display).\ \ isLiquidate\ \ boolean\ \ false\ \ none\ \ Is Liquidation\ \ Whether the transaction is a liquidation.\ \ isDeleverage\ \ boolean\ \ false\ \ none\ \ Is Auto-Deleveraging\ \ Whether the transaction is from auto-deleveraging.\ \ fundingTime\ \ string(int64)\ \ false\ \ none\ \ Funding Settlement Time\ \ Funding settlement time.\ \ fundingRate\ \ string\ \ false\ \ none\ \ Funding Rate\ \ Funding rate.\ \ fundingIndexPrice\ \ string\ \ false\ \ none\ \ Funding Index Price\ \ Index price related to funding rate.\ \ fundingOraclePrice\ \ string\ \ false\ \ none\ \ Funding Oracle Price\ \ Oracle price related to funding rate.\ \ fundingPositionSize\ \ string\ \ false\ \ none\ \ Position Size During Funding Settlement\ \ Position size during funding settlement (positive for long, negative for short).\ \ orderId\ \ string(int64)\ \ false\ \ none\ \ Order ID\ \ Associated order ID.\ \ orderFillTransactionId\ \ string(int64)\ \ false\ \ none\ \ Order Fill Transaction ID\ \ Associated order fill transaction ID.\ \ collateralTransactionId\ \ string(int64)\ \ false\ \ none\ \ Collateral Transaction ID\ \ Associated collateral transaction detail ID.\ \ forceTradeId\ \ string\ \ false\ \ none\ \ Force Trade ID\ \ Associated force trade order ID.\ \ extraType\ \ string\ \ false\ \ none\ \ Extra Type\ \ Extra type for upper-layer business use.\ \ extraDataJson\ \ string\ \ false\ \ none\ \ Extra Data\ \ Extra data in JSON format, default is empty string.\ \ censorStatus\ \ string\ \ false\ \ none\ \ Current Censoring Status\ \ Current censoring status.\ \ censorTxId\ \ string(int64)\ \ false\ \ none\ \ Censoring Processing Sequence Number\ \ Censoring processing sequence number, exists when censor\_status=CENSOR\_SUCCESS/CENSOR\_FAILURE/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ censorTime\ \ string(int64)\ \ false\ \ none\ \ Censoring Processing Time\ \ Censoring processing time, exists when censor\_status=CENSOR\_SUCCESS/CENSOR\_FAILURE/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ censorFailCode\ \ string\ \ false\ \ none\ \ Censoring Failure Code\ \ Censoring failure code, exists when censor\_status=CENSOR\_FAILURE.\ \ censorFailReason\ \ string\ \ false\ \ none\ \ Censoring Failure Reason\ \ Censoring failure reason, exists when censor\_status=CENSOR\_FAILURE.\ \ l2TxId\ \ string(int64)\ \ false\ \ none\ \ L2 Push Transaction ID\ \ L2 push transaction ID, exists when censor\_status=CENSOR\_SUCCESS/L2\_APPROVED/L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectTime\ \ string(int64)\ \ false\ \ none\ \ L2 Rejection Time\ \ L2 rejection time, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectCode\ \ string\ \ false\ \ none\ \ L2 Rejection Error Code\ \ L2 rejection error code, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2RejectReason\ \ string\ \ false\ \ none\ \ L2 Rejection Reason\ \ L2 rejection reason, exists when censor\_status=L2\_REJECT/L2\_REJECT\_APPROVED.\ \ l2ApprovedTime\ \ string(int64)\ \ false\ \ none\ \ L2 Batch Verification Time\ \ L2 batch verification time, exists when censor\_status=L2\_APPROVED/L2\_REJECT\_APPROVED.\ \ createdTime\ \ string(int64)\ \ false\ \ none\ \ Creation Time\ \ Creation time.\ \ updatedTime\ \ string(int64)\ \ false\ \ none\ \ Update Time\ \ Update time.\ \ **Enumerated Values**\ \ Property\ \ Value\ \ type\ \ UNKNOWN\_POSITION\_TRANSACTION\_TYPE\ \ type\ \ BUY\_POSITION\ \ type\ \ SELL\_POSITION\ \ type\ \ SETTLE\_FUNDING\_FEE\ \ type\ \ BUG\_FIX\_POSITION\_TRANSACTION\_TYPE\ \ type\ \ UNRECOGNIZED\ \ censorStatus\ \ UNKNOWN\_TRANSACTION\_STATUS\ \ censorStatus\ \ INIT\ \ censorStatus\ \ CENSOR\_SUCCESS\ \ censorStatus\ \ CENSOR\_FAILURE\ \ censorStatus\ \ L2\_APPROVED\ \ censorStatus\ \ L2\_REJECT\ \ censorStatus\ \ L2\_REJECT\_APPROVED\ \ censorStatus\ \ UNRECOGNIZED\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#positiontransactionpage)\ \ positiontransactionpage\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [PageDataPositionTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatapositiontransaction)\ \ false\ \ none\ \ Generic Paginated Response\ \ Generic paginated response.\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapagedatapositiontransaction)\ \ schemapagedatapositiontransaction\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ dataList\ \ \[[PositionTransaction](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#schemapositiontransaction)\ \]\ \ false\ \ none\ \ Data List\ \ List of position transaction data.\ \ nextPageOffsetData\ \ string\ \ false\ \ none\ \ Next Page Offset\ \ Offset for retrieving the next page. If no next page data, empty string.\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#registeraccount)\ \ RegisterAccount\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ code\ \ string\ \ false\ \ none\ \ Status Code\ \ Returns "SUCCESS" on success; otherwise, it indicates failure.\ \ data\ \ [RegisterAccountModel](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#registeraccountmodel)\ \ false\ \ none\ \ Register Account Response\ \ Response data for account registration\ \ errorParam\ \ object\ \ false\ \ none\ \ Error Parameters\ \ Error message parameter information\ \ requestTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Request Time\ \ Time at which the server received the request\ \ responseTime\ \ string(timestamp)\ \ false\ \ none\ \ Server Response Time\ \ Time at which the server sent the response\ \ traceId\ \ string\ \ false\ \ none\ \ Trace ID\ \ Invocation trace ID\ \ #### \ \ [hashtag](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#registeraccountmodel)\ \ RegisterAccountModel\ \ Name\ \ Type\ \ Required\ \ Constraints\ \ Description\ \ Notes\ \ accountId\ \ string(int64)\ \ false\ \ none\ \ Account ID\ \ ID of the newly created account\ \ [PreviousPrivate APIchevron-left](https://edgex-1.gitbook.io/edgex-documentation/api/private-api)\ [NextAsset APIchevron-right](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/asset-api)\ \ Last updated 2 months ago\ \ * [AccountPrivateApi](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#accountprivateapi)\ \ * [GET Get Position Transaction Page](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-transaction-page)\ \ * [GET Get Position Transactions By Account ID and Transaction ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-transactions-by-account-id-and-transaction-id)\ \ * [GET Get Position Term Page by Account ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-term-page-by-account-id)\ \ * [GET Get Position By Account ID and Contract ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-position-by-account-id-and-contract-id)\ \ * [GET Get Collateral Transaction Page by Account ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-transaction-page-by-account-id)\ \ * [GET Get Collateral Transactions By Account ID and Transaction ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-transactions-by-account-id-and-transaction-id)\ \ * [GET Get Collateral By Account ID and Coin ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-collateral-by-account-id-and-coin-id)\ \ * [GET Get Account Page by User ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-page-by-user-id)\ \ * [GET Get Account Deleverage Light](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-deleverage-light)\ \ * [GET Get Account By Account ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-by-account-id)\ \ * [GET Account Asset](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-account-asset)\ \ * [GET Get Account Asset Snapshot Page by Account ID](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#get-get-account-asset-snapshot-page-by-account-id)\ \ * [POST Register Account(Create Sub-Account)](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#post-register-account-create-sub-account)\ \ * [Data Models](https://edgex-1.gitbook.io/edgex-documentation/api/private-api/account-api#data-models)\ \ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "dataList": [\ {\ "id": "564809510904923406",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "type": "SELL_POSITION",\ "deltaOpenSize": "-0.001",\ "deltaOpenValue": "-96.813200",\ "deltaOpenFee": "0.048406",\ "deltaFundingFee": "0.000000",\ "beforeOpenSize": "0.001",\ "beforeOpenValue": "96.813200",\ "beforeOpenFee": "-0.048406",\ "beforeFundingFee": "0",\ "fillCloseSize": "-0.001",\ "fillCloseValue": "-96.857100",\ "fillCloseFee": "-0.048428",\ "fillOpenSize": "0.000",\ "fillOpenValue": "0.000000",\ "fillOpenFee": "0.000000",\ "fillPrice": "96857.1",\ "liquidateFee": "0",\ "realizePnl": "-0.004528",\ "isLiquidate": false,\ "isDeleverage": false,\ "fundingTime": "0",\ "fundingRate": "",\ "fundingIndexPrice": "",\ "fundingOraclePrice": "",\ "fundingPositionSize": "",\ "orderId": "564809510842007822",\ "orderFillTransactionId": "564809510875562254",\ "collateralTransactionId": "564809510904922382",\ "forceTradeId": "0",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "CENSOR_SUCCESS",\ "censorTxId": "892720",\ "censorTime": "1734661081049",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1084271",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "0",\ "createdTime": "1734661081049",\ "updatedTime": "1734661081053"\ }\ ],\ "nextPageOffsetData": ""\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734661416266",\ "responseTime": "1734661416277",\ "traceId": "a87a52a4e189045b7b7b9948ea7b5c54"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "dataList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "termCount": 2,\ "cumOpenSize": "0.001",\ "cumOpenValue": "96.813000",\ "cumOpenFee": "-0.048406",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0",\ "createdTime": "1734661093450",\ "updatedTime": "1734661093450",\ "currentLeverage": "50"\ },\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "termCount": 1,\ "cumOpenSize": "0.001",\ "cumOpenValue": "96.813200",\ "cumOpenFee": "-0.048406",\ "cumCloseSize": "-0.001",\ "cumCloseValue": "-96.857100",\ "cumCloseFee": "-0.048428",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0",\ "createdTime": "1734661018663",\ "updatedTime": "1734661081053",\ "currentLeverage": "50"\ }\ ],\ "nextPageOffsetData": ""\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734661416272",\ "responseTime": "1734661416281",\ "traceId": "ad4515e50fa7a57610736753d8f987aa"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "openSize": "0.001",\ "openValue": "97.444500",\ "openFee": "-0.017540",\ "fundingFee": "0.000000",\ "longTermCount": 3,\ "longTermStat": {\ "cumOpenSize": "0.001",\ "cumOpenValue": "97.444500",\ "cumOpenFee": "-0.017540",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "longTermCreatedTime": "1734662617992",\ "longTermUpdatedTime": "1734662617992",\ "shortTermCount": 0,\ "shortTermStat": {\ "cumOpenSize": "0",\ "cumOpenValue": "0",\ "cumOpenFee": "0",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "shortTermCreatedTime": "0",\ "shortTermUpdatedTime": "0",\ "longTotalStat": {\ "cumOpenSize": "0.004",\ "cumOpenValue": "388.464500",\ "cumOpenFee": "-0.131882",\ "cumCloseSize": "-0.003",\ "cumCloseValue": "-291.736700",\ "cumCloseFee": "-0.083506",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "shortTotalStat": {\ "cumOpenSize": "0",\ "cumOpenValue": "0",\ "cumOpenFee": "0",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "createdTime": "1734661018663",\ "updatedTime": "1734662617992"\ }\ ],\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664849770",\ "responseTime": "1734664849790",\ "traceId": "17a421d1b23652c5b3836239274b0352"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "dataList": [\ {\ "id": "564815957260763406",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "orderId": "564815695875932430",\ "orderSide": "BUY",\ "fillSize": "0.001",\ "fillValue": "97.4445",\ "fillFee": "0.017540",\ "fillPrice": "97444.5",\ "liquidateFee": "0",\ "realizePnl": "-0.017540",\ "direction": "MAKER",\ "isPositionTpsl": false,\ "isLiquidate": false,\ "isDeleverage": false,\ "isWithoutMatch": false,\ "matchSequenceId": "35196430",\ "matchIndex": 0,\ "matchTime": "1734662617982",\ "matchAccountId": "555790606509539863",\ "matchOrderId": "564815957235597591",\ "matchFillId": "05d14491-db7d-478a-9d9f-2dc55c3ff3ca",\ "positionTransactionId": "564815957294318862",\ "collateralTransactionId": "564815957294317838",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "CENSOR_SUCCESS",\ "censorTxId": "893031",\ "censorTime": "1734662617988",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1084582",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "0",\ "createdTime": "1734662617984",\ "updatedTime": "1734662617992"\ }\ ],\ "nextPageOffsetData": ""\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734662681040",\ "responseTime": "1734662681051",\ "traceId": "770fcce6222c2d88b65b4ecb36e84c43"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": [\ {\ "id": "563516408265179918",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "type": "DEPOSIT",\ "deltaAmount": "10.000000",\ "deltaLegacyAmount": "10.000000",\ "beforeAmount": "6.000000",\ "beforeLegacyAmount": "6.000000",\ "fillCloseSize": "",\ "fillCloseValue": "",\ "fillCloseFee": "",\ "fillOpenSize": "",\ "fillOpenValue": "",\ "fillOpenFee": "",\ "fillPrice": "",\ "liquidateFee": "",\ "realizePnl": "",\ "isLiquidate": false,\ "isDeleverage": false,\ "fundingTime": "0",\ "fundingRate": "",\ "fundingIndexPrice": "",\ "fundingOraclePrice": "",\ "fundingPositionSize": "",\ "depositId": "563516408235819790",\ "withdrawId": "0",\ "transferInId": "0",\ "transferOutId": "0",\ "transferReason": "UNKNOWN_TRANSFER_REASON",\ "orderId": "0",\ "orderFillTransactionId": "0",\ "orderAccountId": "0",\ "positionContractId": "0",\ "positionTransactionId": "0",\ "forceWithdrawId": "0",\ "forceTradeId": "0",\ "extraType": "",\ "extraDataJson": "",\ "censorStatus": "L2_APPROVED",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ],\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664486740",\ "responseTime": "1734664486761",\ "traceId": "b3086f53c2d4503f6a4790b80f0e534b"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "-81.943188",\ "legacyAmount": "15.501312",\ "cumDepositAmount": "70.000000",\ "cumWithdrawAmount": "0",\ "cumTransferInAmount": "0",\ "cumTransferOutAmount": "-55.000000",\ "cumPositionBuyAmount": "-388.4645",\ "cumPositionSellAmount": "291.7367",\ "cumFillFeeAmount": "-0.215388",\ "cumFundingFeeAmount": "0",\ "cumFillFeeIncomeAmount": "0",\ "createdTime": "1730204434094",\ "updatedTime": "1734663352066"\ }\ ],\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664569244",\ "responseTime": "1734664569260",\ "traceId": "4b7ff82fb92aa3b10d9fc0367a069270"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "dataList": [\ {\ "id": "543429922991899150",\ "userId": "543429922866069763",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "l2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "l2KeyYCoordinate": "0x6ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d",\ "clientAccountId": "main",\ "isSystemAccount": false,\ "defaultTradeSetting": {\ "isSetFeeRate": true,\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "0",\ "makerFeeDiscount": "0",\ "isSetMaxLeverage": false,\ "maxLeverage": "0"\ },\ "contractIdToTradeSetting": {\ "10000001": {\ "isSetFeeRate": false,\ "takerFeeRate": "",\ "makerFeeRate": "",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "",\ "makerFeeDiscount": "",\ "isSetMaxLeverage": true,\ "maxLeverage": "50"\ }\ },\ "maxLeverageLimit": "0",\ "createOrderPerMinuteLimit": 0,\ "createOrderDelayMillis": 0,\ "extraType": "",\ "extraDataJson": "",\ "status": "NORMAL",\ "isLiquidating": false,\ "createdTime": "1730204434094",\ "updatedTime": "1733993378059"\ }\ ],\ "nextPageOffsetData": "551109015904453258"\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734661416005",\ "responseTime": "1734661416008",\ "traceId": "dc6a8442169c8cdb831ceb15c812b7fc"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "positionContractIdToLightNumberMap": {\ "10000001": 3\ }\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734661307929",\ "responseTime": "1734661307935",\ "traceId": "202ee8ba15ab633b68a35a8bc9756952"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "id": "543429922991899150",\ "userId": "543429922866069763",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "l2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "l2KeyYCoordinate": "0x6ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d",\ "clientAccountId": "main",\ "isSystemAccount": false,\ "defaultTradeSetting": {\ "isSetFeeRate": true,\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "0",\ "makerFeeDiscount": "0",\ "isSetMaxLeverage": false,\ "maxLeverage": "0"\ },\ "contractIdToTradeSetting": {\ "10000001": {\ "isSetFeeRate": false,\ "takerFeeRate": "",\ "makerFeeRate": "",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "",\ "makerFeeDiscount": "",\ "isSetMaxLeverage": true,\ "maxLeverage": "50"\ }\ },\ "maxLeverageLimit": "0",\ "createOrderPerMinuteLimit": 0,\ "createOrderDelayMillis": 0,\ "extraType": "",\ "extraDataJson": "",\ "status": "NORMAL",\ "isLiquidating": false,\ "createdTime": "1730204434094",\ "updatedTime": "1733993378059"\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664605752",\ "responseTime": "1734664605760",\ "traceId": "c7be70afbf00d7f879d2809e0f042dfe"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "account": {\ "id": "543429922991899150",\ "userId": "543429922866069763",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "l2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "l2KeyYCoordinate": "0x6ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d",\ "clientAccountId": "main",\ "isSystemAccount": false,\ "defaultTradeSetting": {\ "isSetFeeRate": true,\ "takerFeeRate": "0.000500",\ "makerFeeRate": "0.000180",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "0",\ "makerFeeDiscount": "0",\ "isSetMaxLeverage": false,\ "maxLeverage": "0"\ },\ "contractIdToTradeSetting": {\ "10000001": {\ "isSetFeeRate": false,\ "takerFeeRate": "",\ "makerFeeRate": "",\ "isSetFeeDiscount": false,\ "takerFeeDiscount": "",\ "makerFeeDiscount": "",\ "isSetMaxLeverage": true,\ "maxLeverage": "50"\ }\ },\ "maxLeverageLimit": "0",\ "createOrderPerMinuteLimit": 0,\ "createOrderDelayMillis": 0,\ "extraType": "",\ "extraDataJson": "",\ "status": "NORMAL",\ "isLiquidating": false,\ "createdTime": "1730204434094",\ "updatedTime": "1733993378059"\ },\ "collateralList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "-81.943188",\ "legacyAmount": "15.501312",\ "cumDepositAmount": "70.000000",\ "cumWithdrawAmount": "0",\ "cumTransferInAmount": "0",\ "cumTransferOutAmount": "-55.000000",\ "cumPositionBuyAmount": "-388.4645",\ "cumPositionSellAmount": "291.7367",\ "cumFillFeeAmount": "-0.215388",\ "cumFundingFeeAmount": "0",\ "cumFillFeeIncomeAmount": "0",\ "createdTime": "1730204434094",\ "updatedTime": "1734663352066"\ }\ ],\ "positionList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "openSize": "0.001",\ "openValue": "97.444500",\ "openFee": "-0.017540",\ "fundingFee": "0.000000",\ "longTermCount": 3,\ "longTermStat": {\ "cumOpenSize": "0.001",\ "cumOpenValue": "97.444500",\ "cumOpenFee": "-0.017540",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "longTermCreatedTime": "1734662617992",\ "longTermUpdatedTime": "1734662617992",\ "shortTermCount": 0,\ "shortTermStat": {\ "cumOpenSize": "0",\ "cumOpenValue": "0",\ "cumOpenFee": "0",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "shortTermCreatedTime": "0",\ "shortTermUpdatedTime": "0",\ "longTotalStat": {\ "cumOpenSize": "0.004",\ "cumOpenValue": "388.464500",\ "cumOpenFee": "-0.131882",\ "cumCloseSize": "-0.003",\ "cumCloseValue": "-291.736700",\ "cumCloseFee": "-0.083506",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "shortTotalStat": {\ "cumOpenSize": "0",\ "cumOpenValue": "0",\ "cumOpenFee": "0",\ "cumCloseSize": "0",\ "cumCloseValue": "0",\ "cumCloseFee": "0",\ "cumFundingFee": "0",\ "cumLiquidateFee": "0"\ },\ "createdTime": "1734661018663",\ "updatedTime": "1734662617992"\ }\ ],\ "version": "1021",\ "positionAssetList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "contractId": "10000001",\ "positionValue": "97.734426609240472316741943359375",\ "maxLeverage": "50",\ "initialMarginRequirement": "1.954688532184809446334838867187500000",\ "starkExRiskRate": "0.00500000012107193470001220703125",\ "starkExRiskValue": "0.48867214487909847796080764492643311314168386161327362060546875",\ "avgEntryPrice": "97444.5",\ "liquidatePrice": "82354.9",\ "bankruptPrice": "81943.1",\ "worstClosePrice": "81984.2",\ "unrealizePnl": "0.289926609240472316741943359375",\ "termRealizePnl": "0.000000",\ "totalRealizePnl": "0.716700"\ }\ ],\ "collateralAssetModelList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "totalEquity": "15.791238609240472316741943359375",\ "totalPositionValueAbs": "97.734426609240472316741943359375",\ "initialMarginRequirement": "1.954688532184809446334838867187500000",\ "starkExRiskValue": "0.48867214487909847796080764492643311314168386161327362060546875",\ "pendingWithdrawAmount": "0",\ "pendingTransferOutAmount": "0",\ "orderFrozenAmount": "0",\ "availableAmount": "13.836550"\ }\ ],\ "oraclePriceList": []\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664627939",\ "responseTime": "1734664627957",\ "traceId": "4a3a5cd027ea6c255c8c944567b634f1"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "dataList": [\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "timeTag": 1,\ "snapshotTime": "1734652800000",\ "totalEquity": "16.000000",\ "termRealizePnl": "0",\ "unrealizePnl": "0",\ "totalRealizePnl": "0"\ },\ {\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "timeTag": 1,\ "snapshotTime": "1734566400000",\ "totalEquity": "16.000000",\ "termRealizePnl": "0",\ "unrealizePnl": "0",\ "totalRealizePnl": "0"\ }\ ],\ "nextPageOffsetData": ""\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734663257066",\ "responseTime": "1734663257075",\ "traceId": "f52222cd41b6ff8bcd059a57ecd986a1"\ }\ \ Copy\ \ {\ "l2Key": "0x5580341e2c99823a0a35356b8ac84e372dd38fd1f4b50f607b931ec8038c211",\ "l2KeyYCoordinate": "0x6ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d",\ "clientAccountId": "Sub-Account-1"\ }\ \ Copy\ \ {\ "code": "SUCCESS",\ "data": {\ "accountId": "543429922991899150"\ },\ "msg": null,\ "errorParam": null,\ "requestTime": "1734664486740",\ "responseTime": "1734664486761",\ "traceId": "b3086f53c2d4503f6a4790b80f0e534b"\ } --- # Terms of Use | edgeX Docs THE edgeX INTERFACE (AS DEFINED BELOW) IS NOT AVAILABLE TO PERSONS OR ENTITIES WHO RESIDE IN, ARE LOCATED IN, ARE INCORPORATED IN, OR HAVE A REGISTERED OFFICE IN THE UNITED STATES OF AMERICA OR CANADA (COLLECTIVELY, “BLOCKED PERSONS”). MOREOVER, NO SERVICES (AS DEFINED BELOW) ARE OFFERED TO PERSONS OR ENTITIES WHO RESIDE IN, ARE CITIZENS OF, ARE LOCATED IN, ARE INCORPORATED IN, OR HAVE A REGISTERED OFFICE IN ANY RESTRICTED TERRITORY (AS DEFINED BELOW, AND ANY SUCH PERSON OR ENTITY FROM A RESTRICTED TERRITORY, A “RESTRICTED PERSON”). WE DO NOT MAKE EXCEPTIONS; THEREFORE, IF YOU ARE A BLOCKED PERSON, THEN DO NOT ATTEMPT TO USE THE edgeX INTERFACE AND IF YOU ARE A RESTRICTED PERSON, THEN DO NOT ATTEMPT TO USE ANY OF THE SERVICES. USE OF A VIRTUAL PRIVATE NETWORK (“VPN”) TO CIRCUMVENT THE RESTRICTIONS SET FORTH HEREIN IS PROHIBITED. These terms of use, together with any documents and additional terms they expressly incorporate by reference, which includes any other terms and conditions or other agreement that edgeX Trading Inc. and its affiliates (“edgeX,” “we,” “us” and “our”) posts publicly or makes available to you or the company or other legal entity you represent (“you” or “your”) (collectively, these “Terms”), are entered into between edgeX and you concerning your use of, and access to: * edgeX’s websites, including edgeX.exchange (and their respective subdomains); web applications; mobile applications; and all associated sites linked thereto by edgeX (collectively with any materials and services available therein, and successor website(s) or application(s) thereto, the “Site”); * all products and features available via the Site, including the order book, matching engine, smart contracts, decentralized applications, APIs and all other software that edgeX or a third party has developed for trading blockchain-based assets (collectively, “Digital Assets”), including entering into perpetual contracts (“Perpetual Contracts”) related to Digital Assets, or exchanging one Digital Asset for another Digital Asset through the 0x API, and the computation and storage scalability service known as “StarkEx” (the “StarkEx Service”) (collectively the “Interface”); and * non-fungible tokens (“NFTs”) available in connection with the Interface, or registration for or attendance at events sponsored or hosted by edgeX (collectively with the Site and the Interface, the “Services”). Please read these Terms carefully, as these Terms govern your use of the Services. These Terms expressly cover your rights and obligations, and our disclaimers and limitations of legal liability, relating to your use of, and access to, the Services. By clicking “I agree” (or a similar language) to these Terms, acknowledging these Terms by other means, or otherwise accessing or using the Services, you accept and agree to be bound by and to comply with these Terms, including the mandatory arbitration provision in Section 15. If you do not agree to these Terms, then you must not access or use the Services.Please carefully review the disclosures and disclaimers set forth in Section 12 in their entirety before using any software developed by edgeX. The information in Section 12 provides important details about the legal obligations associated with your use of the Services. By accessing or using the Services, you agree that edgeX does not provide execution, settlement, or clearing services of any kind and is not responsible for the execution, settlement, or clearing of transactions automated through the Services. **MODIFICATIONS TO THESE TERMS** Please read these Terms carefully, as these Terms govern your use of the Services. These Terms expressly cover your rights and obligations, and our disclaimers and limitations of legal liability, relating to your use of, and access to, the Services. By clicking “I agree” (or a similar language) to these Terms, acknowledging these Terms by other means, or otherwise accessing or using the Services, you accept and agree to be bound by and to comply with these Terms, including the mandatory arbitration provision in Section 15. If you do not agree to these Terms, then you must not access or use the Services. **USE OF SERVICES** 2.1 As a condition to accessing or using the Services, you represent and warrant to edgeX the following: * if you are entering into these Terms as an individual, then you are of legal age in the jurisdiction in which you reside and you have the legal capacity to enter into these Terms and be bound by them; * if you are entering into these Terms as an entity, then you must have the legal authority to accept these Terms on that entity’s behalf, in which case “you” (except as used in this paragraph) will mean that entity; * if you are entering into these Terms to access the Interface or will in the future access the Interface, then you are not a Blocked Person, and are not accessing the Interface from within the United States or Canada (collectively, "Blocked Countries"); provided, however, that, notwithstanding anything to the contrary herein, all existing users of the Interface as of April 7, 2023 (the "Wind-Down Date") that reside in, are located in, are incorporated in, or have a registered office in Canada will be permitted to access the Interface until seven (7) days after the Wind-Down Date, and thereafter any associated accounts will be permanently blocked from placing orders other than market orders that reduce your positions; * you must not be a resident, citizen or agent of, or incorporated in, and do not have a registered office in Iran, Cuba, North Korea, Syria, Myanmar (Burma), the regions of Crimea, Donetsk or Luhansk, or any other country or region that is the subject of comprehensive country-wide or region-wide economic sanctions by the United States (collectively, “Restricted Territories”); * you are not the subject of economic or trade sanctions administered or enforced by any governmental authority or otherwise designated on any list of prohibited or restricted parties (including the list maintained by the Office of Foreign Assets Control of the U.S. Department of the Treasury) (collectively, “Sanctioned Person”); * you do not intend to transact with any Restricted Person or Sanctioned Person; * you do not, and will not, use a VPN or any other privacy or anonymization tools or techniques to circumvent, or attempt to circumvent, any restrictions that apply to the Services; and * your access to the Services (a) is not prohibited by and does not otherwise violate or assist you to violate any domestic or foreign law, rule, statute, regulation, by-law, order, protocol, code, decree, or another directive, requirement, or guideline, published or in force that applies to or is otherwise intended to govern or regulate any person, property, transaction, activity, event or other matter, including any rule, order, judgment, directive or other requirement or guideline issued by any domestic or foreign federal, provincial or state, municipal, local or other governmental, regulatory, judicial or administrative authority having jurisdiction over edgeX, you, the Services, or as otherwise duly enacted, enforceable by law, the common law or equity (collectively, “Applicable Laws”); and (b) does not contribute to or facilitate any illegal activity. 2.2 As a condition to accessing or using the Services, you acknowledge, understand, and agree to the following: * rom time to time, the Services may be inaccessible or inoperable for any reason, including: (a) equipment or technology or other infrastructure delay, inaccessibility, or malfunctions; (b) periodic maintenance procedures or repairs that edgeX or any of our suppliers or contractors may undertake from time to time; (c) causes beyond edgeX’s control or that edgeX could not reasonably foresee; (d) disruptions and temporary or permanent unavailability of underlying blockchain infrastructure; or (e) unavailability of third-party service providers or external partners for any reason. Without limitation of any other provision of these Terms, and as set forth below, edgeX has no responsibility or liability for any losses or other injuries resulting from any such events; * we reserve the right to disable or modify access to the Services (such as restricting features of the Services) at any time in the event of any breach of these Terms, including, if we reasonably believe any of your representations and warranties may be untrue, misleading, or inaccurate, and we will not be liable to you for any losses or damages you may suffer as a result of or in connection with the Services being inaccessible to you at any time or for any reason; * the Services may evolve, which means edgeX may apply changes, replace, or discontinue (temporarily or permanently) the Services at any time in our sole discretion; * the pricing information and other data provided on the Site does not represent (i) an offer, a solicitation of an offer, or recommendation to enter into, a transaction with edgeX (other than the payment of fees to edgeX) or (ii) any advice regarding a transaction entered into using the Site and the Services; * edgeX does not act as an agent for you or any other user of the Services; * you are solely responsible for your use of the Services, including all of your transfers of Digital Assets; * to the fullest extent not prohibited by Applicable Law, we owe no fiduciary duties or liabilities to you or any other party, and that to the extent any such duties or liabilities may exist at law or in equity, you hereby irrevocably disclaim, waive, and eliminate those duties and liabilities; * you are solely responsible for reporting and paying any taxes applicable to your use of the Services; * we have no control over, or liability for, the delivery, quality, safety, legality, or any other aspect of any Digital Assets that you may transfer to or from a third party, and we are not responsible for ensuring that an entity with whom you transact completes the transaction or is authorized to do so, and if you experience a problem with any transactions in Digital Assets using the Services, then you bear the entire risk; * we may, from time to time, operate contests, promotions, sweepstakes or other activities or offer referral programs (“Promotions and Referrals”), which may be governed by separate terms and conditions and rules that may contain certain eligibility requirements; and you are responsible for reading all terms and conditions and rules relating to the Promotions and Referrals to determine whether you are eligible to participate; if you enter or participate in any Promotions and Referrals, then you agree to abide by and to comply with all terms and conditions and rules of such Promotions and Referrals; all Promotions and Referrals will be optional so you should not enter or participate in such Promotions and Referrals if you do not agree to abide by and comply with all such terms and conditions and rules; and * if you receive discounts on fees from any Promotions and Referrals that are not subject to separate terms and conditions and rules, then edgeX reserves the right to add to, modify or eliminate the discounts and any other aspect of such Promotions and Referrals. 2.3 As a condition to accessing or using the Services, you covenant to edgeX the following: * in connection with using the Services, you only will transfer legally-obtained Digital Assets that belong to you; * you will obey all Applicable Laws in connection with using the Services, and you will not use the Services if the laws of your country, or any other Applicable Law, prohibit you from doing so; * any Digital Assets you use in connection with the Services are either owned by you or you are validly authorized to carry out actions using such Digital Assets; and * in addition to complying with all restrictions, prohibitions, and other provisions of these Terms, you will (a) ensure that, at all times, all information that you provide on the Site and during your use of the Services is current, complete, and accurate; and (b) maintain the security and confidentiality of your private keys associated with your public Ethereum address, passwords, API keys, private keys associated with your StarkEx Service account (STARK keys) and other related credentials. **3\. FEES AND PRICE ESTIMATES** In connection with your use of the Services, unless expressly stated otherwise pursuant to a promotion operated by edgeX, you are required to pay all fees necessary for interacting with the Ethereum blockchain, including “gas” costs, as well as all other fees reflected on the Site at the time of your use of the Services. Although we attempt to provide accurate fee information, this information reflects our estimates of fees, which may vary from the actual fees paid to use the Services and interact with the Ethereum blockchain. **4\. NO PROFESSIONAL ADVICE OR FIDUCIARY DUTIES** All information provided in connection with your access and use of the Services is for informational purposes only and should not be construed as professional advice. You should not take, or refrain from taking any action based on any information contained on the Site or any other information that we make available at any time, including blog posts, data, articles, links to third-party content, discord content, news feeds, tutorials, tweets, and videos. Before you make any financial, legal, or other decisions involving the Services, you should seek independent professional advice from an individual who is licensed and qualified in the area for which such advice would be appropriate. The Terms are not intended to, and do not, create or impose any fiduciary duties on us. You further agree that the only duties and obligations that we owe you are those set out expressly in these Terms. **5\. PROHIBITED ACTIVITY** You may not use the Services to engage in the categories of activity set forth below (“Prohibited Uses”). The specific activities set forth below are representative, but not exhaustive, of Prohibited Uses. If you are uncertain as to whether your use of the Services involves a Prohibited Use or have other questions about how these requirements apply to you, then please contact us at support@edgex.exchange. By using the Services, you confirm that you will not engage in any of the following Prohibited Uses: * violate any Applicable Laws including any relevant and applicable anti-money laundering and anti-terrorist financing laws and sanctions programs, such as the Bank Secrecy Act and the U.S. Department of Treasury’s Office of Foreign Asset Controls; * engage in transactions involving items that infringe or violate any copyright, trademark, right of publicity or privacy, or any other proprietary right under Applicable Law, including sales, distribution or access to counterfeit music, movies, software or other licensed materials without the appropriate authorization from the rights holder; use of edgeX’s or our licensors’ intellectual property, name or logo, including use of edgeX’s trade, service or licensed marks, without express consent from edgeX or in a manner that otherwise harms edgeX; any action that implies an untrue endorsement by or affiliation with edgeX; * engage in improper or abusive trading practices, including, but not limited to, (a) any fraudulent act or scheme to defraud, deceive, trick or mislead; (b) trading ahead of another user of the Services or front-running; (c) fraudulent trading; (d) accommodation trading; (e) fictitious transactions; (f) pre-arranged or non-competitive transactions; (g) cornering, or attempted cornering, of any Perpetual Contracts or other Digital Assets; (h) violations of bids or offers; (i) wash trading (i.e., entering buy and sell orders at or about the same price, volume, and time for the purpose of generating trading volume); (j) manipulation (i.e., trading for the purposes of affecting the market price of a Digital Asset and creating an artificial price); (k) spoofing (i.e., placing buy or sell orders without a bona fide intent to transact and with the intent to cancel before execution); (l) knowingly making any bid or offer for the purpose of making a market price that does not reflect the true state of the market; (m) entering orders for the purpose of entering into transactions without a net change in either party’s open positions but a resulting profit to one party and a loss to the other party, commonly known as a “money pass;” or (n) any other trading activity that, in the reasonable judgment of edgeX, is abusive, improper or disruptive to the operation of the Interface. * use the Services in any manner that could interfere with, disrupt, negatively affect, or inhibit other users from fully enjoying the Services, or that could damage, disable, overburden, or impair the functioning of the Site or the Services in any manner; * circumvent any content-filtering techniques, security measures or access controls that edgeX employs on the Site, including through the use of a VPN; * use any robot, spider, crawler, scraper or other automated means or interface not provided by us to access the Services, to extract data, or to introduce any malware, virus, Trojan horse, worm, logic bomb, drop-dead device, backdoor, shutdown mechanism or other harmful material into the Site or the Services; * provide false, inaccurate, or misleading information while using the Services or engage in activity that operates to defraud edgeX, other users of the Services or any other person; * use or access the Services to transmit or exchange Digital Assets that are the direct or indirect proceeds of any criminal or fraudulent activity, including terrorism or tax evasion; * use the Services in any way that is, in our sole discretion, libelous, defamatory, profane, obscene, pornographic, sexually explicit, indecent, lewd, vulgar, suggestive, harassing, stalking, hateful, threatening, offensive, discriminatory, bigoted, abusive, inflammatory, fraudulent, deceptive or otherwise objectionable, or likely or intended to incite, threaten, facilitate, promote, or encourage hate, racial intolerance or violent acts against others; * use the Services from a jurisdiction (including an IP address in a jurisdiction) that we have, in our sole discretion, determined is a jurisdiction where the use of the Site, the Interface or the Services is prohibited, including any Blocked Countries or any Restricted Territory; * harass, abuse or harm another person, including edgeX’s employees and service providers; * impersonate another user of the Services or otherwise misrepresent yourself; or * engage or attempt to engage, or encourage, induce or assist any third party to engage or attempt to engage in any of the activities prohibited under this Section 5 or any other provision of these Terms. **6\. CONTENT** You hereby grant to us a royalty-free, fully paid-up, sublicensable (through multiple tiers), transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, copy, modify, create derivative works of, display, perform, publish and distribute, in any form, medium or manner, any content that is available to other users as a result of your use of the Site or the Services (collectively, “Your Content”), including for promoting edgeX or the Services. You represent and warrant that (a) you own Your Content or have the right to grant the rights and licenses in these Terms; and (b) Your Content and our use of Your Content, as licensed herein, does not and will not violate, misappropriate or infringe on any third party’s rights. **7\. PROPRIETARY RIGHTS** You hereby grant to us a royalty-free, fully paid-up, sublicensable (through multiple tiers), transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, copy, modify, create derivative works of, display, perform, publish and distribute, in any form, medium or manner, any content that is available to other users as a result of your use of the Site or the Services (collectively, “Your Content”), including for promoting edgeX or the Services. You represent and warrant that (a) you own Your Content or have the right to grant the rights and licenses in these Terms; and (b) Your Content and our use of Your Content, as licensed herein, does not and will not violate, misappropriate or infringe on any third party’s rights. * 7.1.You acknowledge that certain aspects of the Services may use, incorporate or link to certain open-source components and that your use of the Services is subject to, and you will comply with, any applicable open-source licenses that govern any such open-source components (collectively, the “Open-Source Licenses”). Without limiting the generality of the foregoing, you may not (a) resell, lease, lend, share, distribute, or otherwise permit any third party to use the Services; (b) use the Services for time-sharing or service bureau purposes; or (c) otherwise use the Services in a manner that violates the Open-Source Licenses. * 7.2.Excluding third-party software that the Services incorporates, as between you and edgeX, edgeX owns the Services, including all technology, content and other materials used, displayed or provided on the Site or in connection with the Services (including all intellectual property rights subsisting therein, whether or not subject to the Open-Source Licenses), and hereby grants you a limited, non-exclusive, revocable, non-transferable, non-sublicensable license to access and use those portions of the Site and the Services that are proprietary to edgeX and not available pursuant to the Open-Source Licenses. * 7.3.Any of edgeX’s product or service names, logos, and other marks used on the Site or as a part of the Services including edgeX’s name and logo are trademarks owned by edgeX or our licensors You may not copy, imitate, or use them without the prior written consent of edgeX or the applicable licensors, and these Terms do not grant you any rights in those trademarks. You may not remove, obscure, or alter any legal notices displayed in or along with the Site or the Services. * 7.4.The Services are non-custodial. When you deposit Digital Assets into any smart contract available on the Interface, you are not transferring Digital Assets to edgeX, and you retain control over those Digital Assets at all times. The private key associated with the Ethereum address from which you transfer Digital Assets or the private key associated with the StarkEx Service account (STARK key) is the only private key that can control the Digital Assets you transfer into the smart contracts available on the Interface. **8\. LINKS** The Services or third parties may provide, links to other World Wide Web or accessible sites, applications, or resources. You acknowledge and agree that edgeX is not responsible for the availability of such external sites, applications or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. You further acknowledge and agree that Company will not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with use of or reliance on any such content, goods, or services available on or through any such site or resource. **9\. MODIFICATION, SUSPENSION, AND TERMINATION** We may, at our sole discretion, from time to time and with or without prior notice to you, modify, suspend or discontinue, temporarily or permanently, the Services (or any part thereof) with or without notice, for any reason whatsoever, including to only allow open Perpetual Contracts to be closed. Upon termination of your access, your right to use the Services will immediately cease. We will not be liable for any losses suffered by you resulting from any modification, suspension or discontinuance of any Services or from any modification, suspension or termination, for any reason, of your access to all or any portion of the Services. The following sections of these Terms will survive any termination of your access to the Site or the Services, regardless of the reasons for its expiration or termination, in addition to any other provision which by law or by its nature should survive: Section 7 and Sections 9 through Section 17. **10\. RISKS** * 10.1.By accessing or using the Services , you understand and agree to the inherent risks associated with cryptographic systems and blockchain-based networks; Digital Assets, including the usage and intricacies of native Digital Assets, like ether (ETH); smart contract-based tokens, including fungible tokens and NFTs; and systems that interact with blockchain-based networks. edgeX does not own or control any of the underlying software through which blockchain networks are formed. In general, the software underlying blockchain networks, including the Ethereum blockchain, is open source, such that anyone can use, copy, modify, and distribute it. By using the Services, you acknowledge and agree (a) that edgeX is not responsible for the operation of the blockchain-based software and networks underlying the Services, (b) that there exists no guarantee of the functionality, security, or availability of that software and networks, and (c) that the underlying blockchain-based networks are subject to sudden changes in operating rules, such as those commonly referred to as “forks,” which may materially affect the Services. Blockchain networks use public and private key cryptography. You alone are responsible for securing your private key(s). We do not have access to your private key(s). Losing control of your private key(s) will permanently and irreversibly deny you access to Digital Assets on the Ethereum blockchain or other blockchain-based networks. Neither edgeX nor any other person or entity will be able to retrieve or protect your Digital Assets. If your private key(s) are lost, then you will not be able to transfer your Digital Assets to any other blockchain address or wallet. If this occurs, then you will not be able to realize any value or utility from the Digital Assets that you may hold. * 10.2.You acknowledge and understand that the Services and your Digital Assets could be impacted by one or more regulatory inquiries or regulatory actions, which could impede or limit the ability of edgeX to continue to make available our proprietary software and could impede or limit your ability to access or use the Services. * 10.3.You acknowledge and understand that cryptography is a progressing field with advances in code cracking or other technical advancements, such as the development of quantum computers, which may present risks to Digital Assets and the Services, and could result in the theft or loss of your Digital Assets. To the extent possible, the smart contracts available on the Interface will be updated to account for any advances in cryptography and to incorporate additional security measures necessary to address risks presented from technological advancements, but that intention does not guarantee or otherwise ensure full security of the Services. * 10.4.You understand that the Ethereum blockchain remains under development, which creates technological and security risks when using the Services in addition to uncertainty relating to Digital Assets and transactions therein. You acknowledge that the cost of transacting on the Ethereum blockchain is variable and may increase at any time causing impact to any activities taking place on the Ethereum blockchain, which may result in price fluctuations or increased costs when using the Services. * 10.5.You acknowledge that the Services are subject to flaws and that you are solely responsible for evaluating any code provided relating to the Services. This warning and other warnings that edgeX provides in these Terms are in no way evidence or represent an on-going duty to alert you to all of the potential risks of utilizing the Services. * 10.6.Although we intend to provide accurate and timely information and data on the Site and during your use of the Services, the Site and other information available when using the Services may not always be entirely accurate, complete, or current and may also include technical inaccuracies or typographical errors. To continue to provide you with as complete and accurate information as possible, information may be changed or updated from time to time without notice, including information regarding our policies. Accordingly, you acknowledge and understand that you should verify all information before relying on it, and all decisions based on information contained on the Site or as part of the Services are your sole responsibility. No representation is made as to the accuracy, completeness, or appropriateness for any particular purpose of any pricing information distributed via the Site or otherwise when using the Services. Prices and pricing information may be higher or lower than prices available on platforms providing similar services. * 10.7.Any use or interaction with the Services requires a comprehensive understanding of applied cryptography and computer science to appreciate the inherent risks, including those listed above. You represent and warrant that you possess relevant knowledge and skills. Any reference to a type of Digital Asset on the Site or otherwise during the use of the Services does not indicate our approval or disapproval of the technology on which the Digital Asset relies, and should not be used as a substitute for your understanding of the risks specific to each type of Digital Asset. * 10.8.Use of the Services in particular for entering into Perpetual Contracts may carry financial risk. Digital Assets, especially in connection with Perpetual Contracts, are, by their nature, highly experimental, risky, and volatile. Transactions entered into in connection with the Services are irreversible, final and there are no refunds. You acknowledge and agree that you will access and use the Services at your own risk. The risk of loss in trading Digital Assets, especially entering into Perpetual Contracts, can be substantial. You should, therefore, carefully consider whether such trading is suitable for you in light of your circumstances and financial resources. By using the Services, you represent and warrant that you have been, are, and will be solely responsible for making your independent appraisal and investigations into the risks of a given transaction and the underlying Digital Assets, including Perpetual Contracts. You represent that you have sufficient knowledge, market sophistication, professional advice, and experience to make your evaluation of the merits and risks of any transaction conducted in connection with the Services or any Digital Asset. You accept all consequences of using the Services, including the risk that you may lose access to your Digital Assets indefinitely. All transaction decisions are made solely by you. Notwithstanding anything in these Terms, we accept no responsibility whatsoever for, and will in no circumstances be liable to you for any loss or injury sustained by you or any third parties in connection with, your use of the Services for performing Digital Asset transactions, including entering into Perpetual Contracts. * 10.9.We must comply with Applicable Law, which may require us to, upon request by government agencies, take certain actions or provide information. You acknowledge and understand that edgeX may in its sole discretion take any action it deems appropriate to cooperate with government agencies or comply with Applicable Law. * 10.10.You understand that the StarkEx Service remains under development, which creates technological, trading, and other risks when using the Services. These risks include, among others, delays in trades, withdrawals, and deposits resulting from the servers of edgeX or the operator of the StarkEx Services being offline; an incorrect display of information on the Site in the case of server errors; or transactions using the Services being rolled back in the case of server errors. You acknowledge that these risks may have a material impact on your transactions using the Services, which may result in, among other things, failing to fulfill transactions at your desired price or at all. * 10.11.You understand that you are responsible for all trades you place, including any erroneous orders that may be filled. We do not take any action to resolve erroneous trades that result from your errors. * 10.12.You hereby assume the risks set forth in this Section 10 and Section 2, and acknowledge and agree that edgeX will have no responsibility or liability for the risks set forth in this Section 10. You hereby irrevocably waive, release and discharge all claims, whether known or unknown to you, against edgeX and our shareholders, members, directors, officers, employees, agents, and representatives, suppliers, and contractors (“Representatives”) related to any of the risks set forth in this Section 10 and Section 2. **11\. INDEMNIFICATION** You will defend, indemnify, and hold harmless edgeX and our Representatives (collectively, “Indemnified Parties”) from any claim, demand, lawsuit, action, proceeding, investigation, liability, damage, loss, cost or expense, including reasonable attorneys’ fees, arising out of or relating to (a) your use of, or conduct in connection with the Services; (b) Digital Assets associated with your Ethereum address; (c) any feedback or user content you provide to edgeX, if any, concerning the Services; (d) your violation of these Terms; or (e) your infringement or misappropriation of the rights of any other person or entity. If you are obligated to indemnify any Indemnified Party, edgeX (or, at our sole discretion, the applicable Indemnified Party) will have the right, in our or its sole discretion, to control any action or proceeding and to determine whether edgeX wishes to settle, and if so, on what terms, and you agree to cooperate with edgeX in the defense. **12\. DISCLOSURES; DISCLAIMERS** * 12.1edgeX is a developer of software. edgeX does not operate a Digital Asset or derivatives exchange platform or offer trade execution or clearing services and has no oversight, involvement, or control concerning your transactions using the Services. All transactions between users of the Interface are executed peer-to-peer directly between the users’ Ethereum addresses through a smart contract. You are responsible for complying with all Applicable Laws that govern your Digital Assets. As a result of restrictions under the Commodity Exchange Act and the regulations promulgated thereunder by the U.S. Commodity Futures Trading Commission (“CFTC”), no Blocked Person may enter into Perpetual Contracts using the Services. * 12.2You understand that edgeX is not registered or licensed by any regulatory agency or authority. No such agency or authority has reviewed or approved the use of the Services. * 12.3To the maximum extent permitted under Applicable Law, the Services (and any of their content or functionality) provided by or on behalf of us are provided on an “AS IS” and “AS AVAILABLE” basis, and we expressly disclaim, and you hereby waive, any representations, conditions or warranties of any kind, whether express or implied, legal, statutory or otherwise, or arising from statute, otherwise in law, course of dealing, or usage of trade, and whether or not known or discoverable, including the implied or legal warranties and conditions of merchantability, merchantable quality, quality or fitness for a particular purpose, title, security, availability, reliability, accuracy, quiet enjoyment and non-infringement of third party rights. Without limiting the foregoing, we do not represent or warrant that the Services (including any data relating thereto) will be uninterrupted, available at any particular time, or error-free. Further, we do not warrant that errors in the Services are correctable or will be correctable. * 12.4You acknowledge that data you provide while accessing or using the Services may become irretrievably lost or corrupted or temporarily unavailable due to a variety of causes, and agree that, to the maximum extent permitted under Applicable Law, we will not be liable for any loss or damage caused by denial-of-service attacks, software failures, viruses or other technologically harmful materials (including those which may infect your computer equipment), protocol changes by third-party providers, Internet outages, force majeure events or other disasters, scheduled or unscheduled maintenance, or other causes either within or outside of our control. **13\. LIMITATION OF DAMAGES; EXCLUSION OF CONSEQUENTIAL AND RELATED DAMAGES** * 13.1Without limitation of any other provision of these Terms, you hereby agree that neither edgeX nor any of its Representatives will have any responsibility or liability whatsoever for any loss or injury sustained by you or any third parties as a result of (i) any equipment or technology or other infrastructure delay, inaccessibility, or malfunctions; (ii)periodic maintenance procedures or repairs that edgeX or any of our suppliers or contractors may undertake from time to time; (iii) causes beyond edgeX’s control or that edgeX could not reasonably foresee; (iv) disruptions and temporary or permanent unavailability of underlying blockchain infrastructure; or (v) unavailability of third-party service providers or external partners for any reason. Under no circumstances will edgeX or its Representatives have any liability for any such loss or injury caused by any of the foregoing events, including but not limited to any obligation to cover or reimburse any damages or losses caused by such events. You expressly acknowledge that any risk of loss resulting from such events shall be borne by you, and you expressly assume any and all such risks. * 13.2In no event will edgeX, our suppliers and contractors, and edgeX’s or our suppliers’ and contractors’ respective stockholders, members, directors, officers, managers, employees, attorneys, agents, representatives, suppliers and contractors (collectively, the “Risk Limited Parties”) be liable for any incidental, indirect, special, punitive, consequential or similar damages or liabilities whatsoever (including damages for loss of fiat, assets, data, information, revenue, opportunities, use, goodwill, profits or other business or financial benefit) arising out of or in connection with the Services (and any of their respective content and functionality), any execution or settlement of a transaction, any performance or non-performance of the Services, your Digital Assets, Perpetual Contracts or any other product, service or other item provided by or on behalf of edgeX, whether under contract, tort (including negligence), civil liability statute strict liability breach of warranties or under any other theory of liability and whether or not we have been advised of, knew of or should have known of the possibility of such damages and, notwithstanding any failure of the essential purpose of these Terms or any limited remedy hereunder, nor is edgeX in any way responsible for the execution or settlement of transactions between users of the Services. **14\. LIMITATION OF LIABILITY** Without limitation of any provision of these Terms, in the event that edgeX or any related party is found liable under these Terms, the aggregate liability of edgeX (together with our equity owners, members, directors, managers, officers, employees, attorneys, agents, representatives, suppliers, or contractors), arising out of or in connection with your use of the Services (and any of their content and functionality), any performance or nonperformance of the Services, your Digital Assets, Perpetual Contracts or any other product, service or other item provided by or on behalf of edgeX, whether under contract, tort (including negligence), civil liability, statute, strict liability or other theory of liability, will not exceed the amount of fees paid by you to edgeX under these Terms, if any, in the two (2) month period immediately preceding the event giving rise to the claim for liability. **15\. DISPUTE RESOLUTION AND ARBITRATION** PLEASE READ THE FOLLOWING SECTION CAREFULLY BECAUSE IT MAY SIGNIFICANTLY IMPACT YOUR LEGAL RIGHTS, INCLUDING YOUR RIGHT TO BRING A LAWSUIT AGAINST edgeX IN ANY COURT OR GOVERNING AUTHORITY. EXCEPT AS EXPRESSLY PROVIDED BELOW, THIS SECTION REQUIRES YOU TO SUBMIT ANY DISPUTE, CLAIM, OR DISAGREEMENT (EACH A “DISPUTE”) ARISING OUT OF THESE TERMS OR THE SERVICES, INCLUDING ANY DISPUTE THAT AROSE BEFORE THE EFFECTIVE DATES OF THESE TERMS, TO BINDING INDIVIDUAL ARBITRATION. THIS SECTION EXTENDS TO DISPUTES THAT AROSE OR INVOLVE FACTS OCCURING BEFORE THE EXISTENCE OF THIS OR ANY PRIOR VERSIONS OF THE TERMS AS WELL AS DISPUTES THAT MAY ARISE AFTER THE TERMINATION OF THE TERMS. You and edgeX agree that any Dispute arising out of or related to these Terms or the Services is personal to you and edgeX and that any Dispute will be resolved solely through individual arbitration, and will not be brought as a class arbitration, class action, or any other type of representative proceeding. Nothing in this Section precludes you or edgeX from bringing an individual action for damages in a small claims court if such claims qualify and remain in small claims court, or from seeking injunctive or other equitable relief in court for infringement or other alleged misuse of intellectual property rights (such as trademarks, trade dress, domain names, trade secrets, copyrights, and patents). Except as specified above, you and edgeX waive your rights to a judge or jury trial or to have any Dispute arising out of or related to these Terms or the Services resolved in court. Instead, for any Dispute that you have against edgeX or relating in any way to the Services, you agree to first contact edgeX and attempt to resolve the claim informally by sending a written notice of your claim (“Notice”) to edgeX by email at legal@edgeX.exchange. The Notice must (a) include your name, residence address, email address, and telephone number; (b) describe the nature and basis of the claim; and (c) set forth the specific relief sought. Our notice to you will be similar in form to that described above. If you and edgeX cannot reach an agreement to resolve the claim within thirty (30) days after such Notice is received, then either party may submit the Dispute to binding arbitration administered by JAMS or, under the limited circumstances set forth above, in court. All Disputes submitted to JAMS will be resolved through confidential, binding arbitration before one arbitrator. Arbitration proceedings will be held in San Francisco, California, under the JAMS Streamlined Arbitration Rules and Procedures (“JAMS Rules”). The most recent version of the JAMS Rules are available on the JAMS website and are hereby incorporated by reference. You either acknowledge and agree that you have read and understand the JAMS Rules or waive your opportunity to read the JAMS Rules and waive any claim that the JAMS Rules are unfair or should not apply for any reason. You and edgeX agree that these Terms affect interstate commerce and that the enforceability of this Section 15 will be substantively and procedurally governed by the Federal Arbitration Act, 9 U.S.C. § 1, et seq. (the “FAA”), to the maximum extent permitted by applicable law. As limited by the FAA, these Terms and the JAMS Rules, the arbitrator will have exclusive authority to make all procedural and substantive decisions regarding any dispute and to grant any remedy that would otherwise be available in court, including the power to determine the question of arbitrability. The arbitrator may conduct only an individual arbitration and may not consolidate more than one individual’s claims, preside over any type of class or representative proceeding or preside over any proceeding involving more than one individual. The arbitrator, edgeX, and you will maintain the confidentiality of any arbitration proceedings, judgments and awards, including all information gathered, prepared, and presented for purposes of the arbitration or related to the dispute(s) therein. The arbitrator will have the authority to make appropriate rulings to safeguard confidentiality unless the law provides to the contrary. The duty of confidentiality does not apply to the extent that disclosure is necessary to prepare for or conduct the arbitration hearing on the merits, in connection with a court application for a preliminary remedy or in connection with a judicial challenge to an arbitration award or its enforcement, or to the extent that disclosure is otherwise required by law or judicial decision. You and edgeX agree that for any arbitration you initiate, you will pay the filing fee and all other JAMS fees and costs. For any arbitration initiated by edgeX, edgeX will pay all JAMS fees and costs. You and edgeX agree that the state or federal courts of the State of California and the United States sitting in San Francisco, California have exclusive jurisdiction over the enforcement of an arbitration award. Any claim arising out of or related to these Terms or the Services must be filed within one (1) year after such claim arose; otherwise, the claim is permanently barred, which means that you and edgeX will not have the right to assert the claim. If any portion of this Section 15 is found to be unenforceable or unlawful for any reason, (a) the unenforceable or unlawful provision will be severed from these Terms; (b) severance of the unenforceable or unlawful provision will have no impact whatsoever on the remainder of this Section 15 or the parties’ ability to compel arbitration of any remaining claims on an individual basis under this Section 15; and (c) to the extent that any claims must therefore proceed on a class, collective, consolidated, or representative basis, such claims must be litigated in a civil court of competent jurisdiction and not in arbitration, and the parties agree that litigation of those claims will be stayed pending the outcome of any individual claims in arbitration. Further, if any part of this Section 15 is found to prohibit an individual claim seeking public injunctive relief, then that provision will have no effect to the extent such relief is allowed to be sought out of arbitration, and the remainder of this Section 15 will be enforceable. **16\. GOVERNING LAW** The interpretation and enforcement of these Terms, and any Dispute related to these Terms or the Services, will be governed by and construed and enforced under the laws of the State of California, as applicable, without regard to conflict of law rules or principles (whether of the State of California or any other jurisdiction) that would cause the application of the laws of any other jurisdiction. You agree that we may initiate a proceeding related to the enforcement or validity of our intellectual property rights in any court having jurisdiction. For any other proceeding that is not subject to arbitration under these Terms, the state and federal courts located in San Francisco, California will have exclusive jurisdiction. You waive any objection to venue in any such courts. **17\. GENERAL INFORMATION** * 17.1.Please refer to our privacy policy, which is incorporated herein by reference and available at https://edgeX.exchange/privacy/, for information about how we collect, use, share and otherwise process information about you. * 17.2.You consent to receive all communications, agreements, documents, receipts, notices, and disclosures electronically (collectively, our “Communications”) that we provide in connection with these Terms or any Services. You agree that we may provide our Communications to you by posting them on the Site, by emailing them to you at the email address you provide in connection with using the Services, if any, or by Telegram at the username you provided to us during the course of your use of the Services. You should maintain copies of our Communications by printing a paper copy or saving an electronic copy. You may also contact us with questions, complaints, or claims concerning the Services at legal@edgeX.exchange. * 17.3.Any right or remedy of edgeX set forth in these Terms is in addition to, and not in lieu of, any other right or remedy whether described in these Terms, under Applicable Law, at law, or in equity. The failure or delay of edgeX in exercising any right, power, or privilege under these Terms will not operate as a waiver thereof. * 17.4.The invalidity or unenforceability of any of these Terms will not affect the validity or enforceability of any other of these Terms, all of which will remain in full force and effect. * 17.5.We will have no responsibility or liability for any failure or delay in performance of any of the Services, or any loss or damage that you may incur, due to any circumstance or event beyond our control, including any flood, extraordinary weather conditions, earthquake, or other act of God, fire, war, insurrection, riot, labor dispute, accident, action of government, communications, power failure, or equipment or software malfunction. * 17.6.You may not assign or transfer any right to use the Services, or any of your rights or obligations under these Terms, without our express prior written consent, including by operation of law or in connection with any change of control. We may assign or transfer any or all of our rights or obligations under these Terms, in whole or in part, with or without notice or obtaining your consent or approval. * 17.7.Except to the extent otherwise provided or unless the context otherwise requires, for the purposes of these Terms: (a) headings of sections are for convenience only and will not be used to limit or construe such sections; (b) whenever the words “include,” “includes” or “including” are used in these Terms, they are deemed to be followed by the words “without limitation”; and (c) the use of “or” is not intended to be exclusive. * 17.8.These Terms contain the entire agreement between you and edgeX, and supersede all prior and contemporaneous understandings between the parties with respect to the Services. * 17.9.In the event of any conflict between these Terms and any other agreement you may have with us, these Terms will control unless such other agreement specifically identifies these Terms and declares that such other agreement supersedes these Terms * 17.10.You agree that, except as otherwise expressly provided in this Agreement, there is no third-party beneficiaries to the Agreement other than the Indemnified Parties. **18\. APPLE-ENABLED SOFTWARE** With respect to the mobile application that is made available by edgeX for your use in connection with an Apple-branded product (the “Apple-Enabled Software”), in addition to the other terms and conditions set forth in these Terms, the following terms and conditions apply: * edgeX and you acknowledge that these Terms are concluded only between edgeX and you, and not with Apple Inc. or its affiliates (collectively, “Apple”), and that as between edgeX and Apple, edgeX, not Apple, is solely responsible for the Apple-Enabled Software and the content thereof. * You may not use the Apple-Enabled Software in any manner that is in violation of or inconsistent with the Usage Rules set forth for Apple-Enabled Software in, or otherwise be in conflict with, the Apple Media Services Terms and Conditions (the “Usage Rules”). * Your license to use the Apple-Enabled Software is limited to a non-transferable license to use the Apple-Enabled Software on an iOS product that you own or control, as permitted by the Usage Rules. * Apple has no obligation whatsoever to provide any maintenance or support services with respect to the Apple-Enabled Software. * Apple is not responsible for any product warranties, whether express or implied by law. In the event of any failure of the Apple-Enabled Software to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price for the Apple-Enabled Software, if any, to you; and, to the maximum extent permitted by applicable law, Apple will have no other warranty obligation whatsoever with respect to the Apple-Enabled Software, or any other claims, losses, liabilities, damages, costs, or expenses attributable to any failure to conform to any warranty, which will be edgeX’s sole responsibility, to the extent it cannot be disclaimed under applicable law. * edgeX and you acknowledge that edgeX, not Apple, is responsible for addressing any claims of you or any third party relating to the Apple-Enabled Software or your possession or use of that Apple-Enabled Software, including: (a) product liability claims; (b) any claim that the Apple-Enabled Software fails to conform to any applicable legal or regulatory requirement; and (c) claims arising under consumer protection, privacy, or similar legislation. * In the event of any third-party claim that the Apple-Enabled Software or your possession and use of that Apple-Enabled Software infringes that third party’s intellectual property rights, as between edgeX and Apple, edgeX, not Apple, will be solely responsible for the investigation, defense, settlement, and discharge of any such intellectual property infringement claim. * You represent and warrant that (i) you are not located in a country that is subject to a United States government embargo, or that has been designated by the United States government as a “terrorist supporting” country; and (ii) you are not listed on any United States government list of prohibited or restricted parties. * You must comply with applicable third-party terms of agreement when using the Apple-Enabled Software, including your wireless data service agreement. * edgeX and you acknowledge and agree that Apple, and Apple’s subsidiaries, are third-party beneficiaries of these Terms with respect to the Apple-Enabled Software, and that, upon your acceptance of the terms and conditions of these Terms, Apple will have the right (and will be deemed to have accepted the right) to enforce these Terms against you with respect to the Apple-Enabled Software as a third-party beneficiary thereof. * If you have any questions, complaints, or claims with respect to the Apple-Enabled Software, the foregoing should be directed to edgeX in accordance with Section 17.2. [PreviousOfficial Linkschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/about/official-links) [NextPrivacy Policychevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/privacy-policy) Last updated 1 year ago --- # About edgeX | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#edge-stack-deterministic-parallel-and-modular-execution-for-trading-engine) EDGE Stack: Deterministic Parallel and Modular Execution for Trading Engine --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#background-structural-contradictions-in-defi-infrastructure) Background: Structural Contradictions in DeFi Infrastructure Decentralized Finance has evolved quickly, but perpetual futures still face fundamental constraints: slow execution, trust assumptions, and poor scalability. Most chains continue to run transactions through sequential execution over a single global state machine, creating a bottleneck where throughput and latency can’t meet ultra-low-latency demands of high-frequency and quantitative trading. Some systems improved speed but compromised on fairness, transparency, or fully verifiable order matching. Meanwhile, monolithic DEX designs struggle to scale, hosting both perpetuals and broader DeFi functionality becomes costly, rigid, and difficult to expand. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#edge-stack-app-specific-rollup-on-ethereum) EDGE Stack: App-Specific Rollup on Ethereum EDGE Stack is built as an App-Specific Execution Layer optimized for high-performance on-chain trading. Instead of adapting generic blockchain infrastructure, we redesign the system at the execution layer. With a modular multi-VM architecture and a deterministic Parallel Transaction Execution (PTE), EDGE Stack delivers high throughput, low latency, and fully verifiable matching for complex derivatives like perpetuals. As part of the rollup ecosystem, EDGE Stack ultimately benefits from Ethereum's security guarantees, allowing users to adhere to DeFi's trust minimization principles while enjoying an ultra-low-latency on-chain experience. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#three-core-technical-pillars) Three Core Technical Pillars EDGE Stack uses a modular Multi-VM architecture optimized for trading workloads. * **Modular Multi-VM:** Now edgeVM handles perp execution and edgeEVM supports standard DeFi logic. In the future, edgeX can add additional VM environments. * **Parallel Transaction Execution (PTE):** Executes non-conflicting transactions in parallel. * **FlashLane**: Quality of Service (QoS) scheduling and multi-lane execution. ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-f675ecdc373da4c53bd76c40868c1f2dc952fa92%252FArch.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7b7fcc12&sv=2) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#i.-modular-multi-vm) I. Modular Multi-VM Core perpetual logic runs inside a dedicated edgeVM with exclusive compute resources for lower latency. Right now it contains: * **edgeVM** handles high-performance perpetual execution (matching, liquidation, risk). * **edgeEVM** supports standard DeFi logic such as asset issuance and governance. * **Precompiled Contracts** run stable but computationally heavy functions. New product lines can be added by deploying additional VM actors or reusing existing ones, with isolation enforced via EIP-2930–style access lists. This enables plug-and-play expansion without architectural disruption. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#ii.-deterministic-parallel-transaction-execution-pte) II. Deterministic Parallel Transaction Execution (PTE) PTE is the parallelization engine that transforms the Sequencer’s serial input into safe, verifiable parallel execution.Using Market-Sharded Execution, each market or derivative type is handled by an independent VM Actor, allowing order books and position states to run in parallel without conflict. Highly active markets can be further subdivided, allowing throughput to scale roughly linearly with the number of active markets.Within a market, PTE uses extended access lists to define read/write scopes and only executes non-conflicting transactions in parallel. Conflicts follow fixed resolution rules, ensuring the final state remains serializable to the sequencer’s canonical order. This preserves deterministic replay, verifiability, and proof validity while fully utilizing multi-core resources. Critical subsystems such as liquidation or risk can run as separate Actors and scale horizontally as load grows. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#iii.-flashlane) III. FlashLane On top of raw throughput, edge Stack improves trading UX with QoS scheduling and multi-lane execution.Transactions are routed into two lanes: * **Fast Lane:** latency-sensitive actions like order placement/cancellation. * **Slow Lane:** non-urgent operations such as withdrawals or governance. This prevents non-critical activity from degrading matching engine performance.For high-frequency users, a FlashLane Commitment mechanism provides near-instant soft confirmation. After submission, the system performs a local PTE simulation and returns the intended batch ID and projected queue position (subject to rare reordering) within milliseconds. Combined with micro-batching and optimized I/O, traders gain predictable execution timing while preserving full on-chain verifiability. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation#state-and-security) State & Security All parallel execution results converge into a single State Root Commitment. Using **Parallel Merklization**, edge Stack computes state tree hashes concurrently within a block, producing a deterministic State Root and Block Hash.These commitments settle to the underlying rollup layer and inherit Ethereum security. Any participant can independently replay the same transaction batch to verify correctness, ensuring full transparency, verifiability, and Ethereum-grade finality - without compromising performance. [NextedgeX V1chevron-right](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1) Last updated 2 months ago * [EDGE Stack: Deterministic Parallel and Modular Execution for Trading Engine](https://edgex-1.gitbook.io/edgeX-documentation#edge-stack-deterministic-parallel-and-modular-execution-for-trading-engine) * [Background: Structural Contradictions in DeFi Infrastructure](https://edgex-1.gitbook.io/edgeX-documentation#background-structural-contradictions-in-defi-infrastructure) * [EDGE Stack: App-Specific Rollup on Ethereum](https://edgex-1.gitbook.io/edgeX-documentation#edge-stack-app-specific-rollup-on-ethereum) * [Three Core Technical Pillars](https://edgex-1.gitbook.io/edgeX-documentation#three-core-technical-pillars) * [State & Security](https://edgex-1.gitbook.io/edgeX-documentation#state-and-security) --- # eStrategy | edgeX Docs **Overview** #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/estrategy#edgex-estrategy) **edgeX eStrategy** **Liquidity Engine and Strategy Trading Protocol Library in the edgeX Ecosystem** As a liquidity provision and strategy trading protocol, **eStrategy** not only supplies the edgeX trading system with robust market depth but also enhances capital efficiency and risk management through advanced strategy design. In its initial phase, **eStrategy** supports the **Automated Market Maker (AMM) strategy**. This strategy enhances market liquidity by integrating with the platform’s AMM, thereby improving execution quality for traders by minimizing price impact. Depositors assume a share of the AMM’s positions, effectively acting as counterparties to other edgeX traders. For instance, if an edgeX trader takes a short position, depositors will hold the corresponding long position. The revenue of edgeX eLP is derived from **passive market-making profits, liquidation fees, and a portion of the platform’s trading fees**. In the second phase, **eStrategy** will introduce **customizable pools managed by individual traders or institutions**. Users can allocate funds to specific pools based on their historical performance and risk profiles. Each strategy carries inherent risks. Users should conduct thorough due diligence on a vault’s performance history and associated risks before making a deposit. **Lock-up Period and Withdrawal Rules** Users can submit withdrawal requests at any time; however, a maximum **2-day redemption lock-up period** applies. This is because positions corresponding to the withdrawal request must be closed before funds can be released. For example, if you make a deposit on **March 15 at 08:00**, you will be able to withdraw your funds no later than **March 17 at 08:00**. Once the lock-up period ends, the funds will be automatically transferred to your account. Please note that no returns will be accrued during the redemption period. What happens to open positions in a vault when someone withdraws? When a user withdraws from a vault, open positions remain unaffected if there is sufficient initial margin to support the set leverage. If the initial margin is insufficient, a proportional amount of all open positions is closed. For example, if a user represents 20% of the vault's total deposits, 20% of all open positions will be closed upon withdrawal, keeping liquidation prices relatively stable. Vault leaders can also configure the vault to always close positions proportionally during withdrawals to maintain consistent liquidation prices. Additionally, if a withdrawal causes insufficient margin, open margin-based orders will be canceled, starting with those using the least margin. **FAQ** **What are the risks of participating in the project?** Despite professional strategy management, there are still market risks, such as high volatility and liquidity risks in the cryptocurrency market. In addition, changes in regulatory policies may also have an impact on the project. **Where does APR come from?** APR comes from AMM income, liquidation fees. **How to Participate in the Vault** * Deposit to Vault: Please first deposit funds to your Main Account, then go to the eStrategy page and complete the transfer into the eLP Vault. * Withdraw from Vault: When you submit a withdrawal request from the Vault, your funds will be transferred back to your Main Account within 48 hours. [PreviousDecentralized Oracle Pricingchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/decentralized-oracle-pricing) [NextCommunitychevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community) Last updated 2 months ago --- # Audits | edgeX Docs Platform: [Rigsec Audit Reportarrow-up-right](https://static.edgex.exchange/audit-reports/rigsec-edgex-audit-report.pdf) [SlowMist Audit Reportarrow-up-right](https://static.edgex.exchange/audit-reports/edgeX-SlowMist-Audit-Report.pdf) StarkEx: [PeckShield Audit Reportarrow-up-right](https://github.com/starkware-libs/starkex-contracts/blob/master/audit/StarkEx_v4.5_Audit_Report.pdf) [PreviousBrand Kitchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/brand-kit) [NextAboutchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about) Last updated 1 month ago --- # Brand Kit | edgeX Docs [Brand Kit Linkarrow-up-right](https://edgex-brand-kit.notion.site/edgeX-Brand-Kit-23e62ca4b6108070ba51f2120d949bd0) [PreviousVision & Roadmapchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/vision-and-roadmap) [NextAuditschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/audits) Last updated 5 months ago --- # About | edgeX Docs [Official Linkschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/official-links) [Terms of Usechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) [Privacy Policychevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/privacy-policy) [PreviousAuditschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/audits) [NextOfficial Linkschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/official-links) --- # Getting started | edgeX Docs [Accounts & Walletschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/accounts-and-wallets) [Deposits and Withdrawalschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals) [PreviousXP (Pre TGE Season)chevron-left](https://edgex-1.gitbook.io/edgeX-documentation/community/xp-pre-tge-season) [NextAccounts & Walletschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/accounts-and-wallets) Last updated 1 year ago --- # Vision & Roadmap | edgeX Docs "Build something traders love to use." We aim to develop, step by step, from trader-centric applications to a comprehensive trader ecosystem with aggregated liquidity. This ecosystem will evolve into a "trading collage" made of permissionless financial modules, enabling developers and traders with minimal programming experience to create their own highly customizable and composable trader-centric applications tailored for diverse trading preferences. **Development Milestones** * Q1 2025: Perpetual and Spot Decentralized Exchange Web and Mobile Applications Launch * Q2 2025: eStrategy: On-Chain Asset Management eLP and Trading Strategy Vaults Launch * Q3 2025: edgeX V2: High-Performance Ethereum Layer 2 Blockchain Testnet Launch * Q4 2025: Permissionless Liquidity Modules Launch [PreviousWebsocket APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api) [NextBrand Kitchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/brand-kit) Last updated 8 months ago --- # Official Links | edgeX Docs Homepage: [https://www.edgex.exchange/arrow-up-right](https://www.edgex.exchange/) Twitter: [https://x.com/edgeX\_exchangearrow-up-right](https://x.com/edgeX_exchange) Discord: [https://discord.com/invite/edgexarrow-up-right](https://discord.com/invite/edgex) Blog: [https://medium.com/@edgexexchangearrow-up-right](https://medium.com/@edgexexchange) [PreviousAboutchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/about) [NextTerms of Usechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) Last updated 1 year ago --- # Community | edgeX Docs [EDGEchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/edge) [Maru 🦭chevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/maru) [XP (Pre TGE Season)chevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/xp-pre-tge-season) [PreviouseStrategychevron-left](https://edgex-1.gitbook.io/edgeX-documentation/estrategy) [NextEDGEchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/edge) Last updated 1 month ago --- # edgeX V1 | edgeX Docs edgeX V1, the Minimum Viable Product (MVP) of edgeX, is a high-performance, orderbook-based perpetual decentralized exchange (Perp DEX), crafted to deliver a native trading experience. This is achieved through advanced trading infrastructure, superior performance, and trader-centric features. **Commitment to Trader Experience** Recognizing that traders are the foundation of any exchange’s sustainable growth, edgeX is designed to foster organic and long-term engagement. With deep roots in the crypto derivatives space, edgeX team has a profound understanding of trader demands, building edgeX around these needs from the outset. The guiding principle has always been to “build something traders love to use.” The MVP underscores edgeX’s standard of excellence across several key areas: **Battle-Tested Solution:** Powered by the StarkEx Layer 2 engine, edgeX V1 is built with an on-chain infrastructure that has handled over $1.28 trillion in cumulative trading volume since 2020. This robust solution meets the high demands of professional traders for performance and experience, while ensuring transparency of data and security of assets. **Zero-Knowledge (ZK) Rollup:** Each trade on edgeX is validated by third-party committees and batched into Ethereum for transparency. The publication of zero-knowledge proofs on the Ethereum Layer 1 blockchain validates Layer 2 transactions, ensuring their integrity and security. **Self-Custody:** edgeX ensures traders retain full custody and control of their funds, a key differentiation from centralized exchanges (CEX). The failures of exchanges like FTX have underscored the risks of centralized custody. At edgeX, users maintain self-custody of their assets, allowing for withdrawals at any time without platform permission, thus providing a trustless and secure trading environment. **Price Integrity and Fairness:** edgeX employs independent oracle providers to obtain mark prices, preventing price manipulation and ensuring an equitable and accurate reflection of asset values. This mechanism safeguards user positions from price manipulation and liquidation issues often seen in centralized exchanges. **Trading Performance:** The high-performance trading engine of edgeX V1 ensures a seamless and lightning-fast trading experience. Compared to other Performant Perp DEXs, edgeX achieves impressive performance metrics. When scaled up to 10 shards, edgeX outperforms competitors in terms of performance and match latency, delivering a faster and more efficient trading process. These advantages underscore edgeX commitment to providing a top-tier trading experience for professional perpetual traders. **Professional UX and UI:** edgeX features a professional UI and UX tailored for professional perpetual traders, ensuring a seamless and intuitive trading experience. **Advanced Trading Features:**edgeX offers advanced trading features traditionally available only on CEXs, such as a sub-account system. This allows traders to manage bi-directional positions, optimizing strategies and managing risks more effectively through hedge positions. **Easiest Onboarding — Social Logins:** With features like MPC wallets, edgeX V1 offers the easiest onboarding process for new users. Traders can register with just an email, and enjoy cross-chain deposit and withdrawal, making the platform accessible to everyone. **Mobile Version Coming Soon:** Recognizing the importance of retail perpetual traders, the mobile version of edgeX will be launched shortly after the web version, ensuring traders can manage their trades conveniently from any device. [PreviousAbout edgeXchevron-left](https://edgex-1.gitbook.io/edgeX-documentation) [NextV1 Technical Architecturechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/v1-technical-architecture) Last updated 1 year ago --- # API Docs | edgeX Docs > **Warning:** This is a beta version and actively under development. Please open a ticket on [Discordarrow-up-right](https://discord.com/invite/edgex) > if you encounter any problems. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api#api-endpoint-domain) API Endpoint Domain #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api#http-endpoint) HTTP Endpoint Copy https://pro.edgex.exchange #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api#websocket-endpoint) WebSocket Endpoint Copy wss://quote.edgex.exchange #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api#authentication) Authentication > The authentication method for **third-party API** calls _**differs**_ from _web authentication_ methods. **Third-party API** calls only require two [authentication](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#auth-header) > request headers. [PreviousStock Perpetualchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual) [NextAuthenticationchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication) Last updated 1 year ago --- # Trading | edgeX Docs [Trading Accounts & Marginchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-accounts-and-margin) [Trading Ruleschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-rules) [Last Price, Index Price & Oracle Pricechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/last-price-index-price-and-oracle-price) [Trading Feeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-fees) [Funding Feeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/funding-fees) [Order Typeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/order-types) [Take Profit & Stop Losschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/take-profit-and-stop-loss) [Liquidation Logicchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/liquidation-logic) [TradingViewchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/tradingview) [Stock Perpetualchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual) [PreviousWithdrawalschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/withdrawals) [NextTrading Accounts & Marginchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-accounts-and-margin) --- # Privacy Policy | edgeX Docs This Privacy Policy (“Policy”) describes how EDGEX DAO PTE. LTD. and its affiliates (“edgeX”, “we”, “us” or “our”) may collect, process, use, safeguard and disclose personal information, and your rights choices regarding this information. For the purposes of this Policy, “personal information” is any information related to an identified or identifiable individual. Please note that we may change this Policy from time to time. We encourage you to review this Policy periodically. Please read this Policy carefully. You can contact us with questions using the details in the “Contact Us” section of this Policy. **Applicability of This Policy** This Policy applies to personal information collected in connection with the Services (in each case, as defined in the [Terms of Use)arrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) . If you do not agree with the terms of this Policy, do not access or use the Services, or any other aspect of our business. **What We Collect** When you interact with the Services, we may collect personal information about you from different sources listed below. Based on your consent and performance of a contract with you, we use your data to communicate with you, process your request, and provide products or services. Basic Information * IP address * Country information * Device type, model and related operation system * Language and time zone settings * Browse (plug-in) type and version * Submit source (Web, App) * Basic equipment information: including equipment brand, equipment manufacturer, equipment model number, equipment name, equipment system type and version, equipment basic configuration, equipment basic settings, equipment environment * Device network information, including network access form, wireless router identification (BSSID, SSID) and IP address, WIFI list, network operator information, network base station information, network connection status * Device application information, including SDK host application package name, version number and installed application. The Installed application information with ishuemi SDK, in order to fraud prevention, security, or compliance with laws. For example, monitor whether the device is in the root environment, whether there is a hook risk, and whether it is running on a real device, etc. To provide product functionality, analyze performance, solve bugs, and guarantee the basic availability and stability of the product. This purpose is based on your consent and/or our legitimate interests in improving experience and security to deal with operational bugs or product issues you encounter during use. Financial Information * Your Ethereum network address (on-chain address) * Cryptocurrency wallet information * Transaction history * Trading data and associated fees paid. * Transaction Information, such as information about the transactions you make on the Services, such as the type of transaction, transaction amount, and timestamp. * Correspondence, such as your feedback, questionnaire and other survey responses, and information you provide to our support teams, including via our help chat or social media messaging channels. Personal information collected via automated means * Online Identifiers, such as geo-location or tracking details, browser fingerprint, operating system, browser name and version, and IP addresses. * Usage and Diagnostics Data, such as conversion events, user preferences, crash logs, device information and other data collected via cookies and similar technologies. * Information from cookies and other tracking technologies. We, and third parties we authorize, may use cookies, web beacons, and similar technologies to record your preferences, track the use of the Services, including our mobile applications, and collect information about the use of the Services, as well with other information we collect about you. You may choose to set your web browser to refuse cookies, or to alert you when cookies are being sent. If you do so, please note that some parts of the Services may not function properly. Personal information we receive from third parties * Information We Receive from Third Parties. Sometimes, we receive personal information about you from other sources as required or permitted by applicable law, including public databases. We may combine the information collected from these sources with the information we get from the Services in order to comply with our legal obligations and limit the use of the Services in connection with fraudulent or other illicit activities. **How We Use Information** We use your personal information in accordance with your instructions, including any applicable terms in the[Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , and as required by applicable law. We may also use the personal information we collect for: * Providing Services and Features.We may use the personal information we collect to provide, maintain, and improve the Services, including as we described in the [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) . In particular we will use your personal information to perform our contractual obligation towards you to allow you to browse and use the Services. This includes using information to: * operate, maintain, customize, measure, and improve the Services, and manage our business; * create and update user accounts; * process transactions; * send information, including confirmations, notices, updates, security alerts, and support and administrative messages. * Safety and Security. It is in our legitimate business interest to use your personal information to help maintain the safety, security, and integrity of you and the Services, including to: * protect, investigate, and deter against fraudulent, unauthorized, or illegal activity; * monitor and verify identity or service access, combat spam, malware or security risks; * perform internal operations necessary to provide the Services, including to troubleshoot software bugs and operational problems; * enforce our agreements with third parties, and address violations of our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) or agreements for other products or services; * comply with applicable security laws and regulations. * Customer Support. If you reach out to us for support, it is in our legitimate business interest to use your personal information to provide customer support, including to: * direct questions to the appropriate customer support person; * investigate and address user concerns; * monitor and improve our customer support responses and processes. * Personalization. We may use your personal information to personalize your experience and use of the Services and our communications. * Research and Development. It is in our legitimate business interest to use your personal information for testing, research, analysis, and product development to improve your experience. This helps us to improve and enhance the safety and security of the Services, improve our ability to prevent the use of the Services for illegal or improper purposes and develop new features and products relating to the Services. * Legal and Regulatory Compliance. It is in our legitimate interests to enforce compliance with our terms and policies, including our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , to ensure the integrity of the Services and to defend ourselves against legal claims or disputes. Where we do so, we will use the personal information relevant to such a case. We may also verify your identity by comparing the personal information you provide against third-party databases and public records and we use personal information to investigate or address claims or disputes relating to use of the Services, or as otherwise allowed by applicable law, or as requested by regulators, government entities, and official inquiries. * Direct Marketing. Except where consent is required, it is in our legitimate interest to use the information we collect to market the Services to you. This may include sending you communications about the Services, features, promotions, surveys, news, updates, and events, and managing your participation in these promotions and events. If you do not want us to send you marketing communications, please opt out by selecting “unsubscribe” to any marketing email sent by us or by contacting us using the details in the “Contact Us” section of this Policy. * Anonymization and Aggregation. It is in our legitimate interests to aggregate or anonymize personal information in a form that does not allow you to be personally identified and use the resulting information for statistical analysis regarding the use of the Services, such as to better understand our customer base, or for other purposes. **When We Share and Disclose Information** We may share your information in the following circumstances: * To Comply with Our Legal Obligations. We may share your information: (a) to cooperate with government investigations; (b) when we are compelled to do so by a subpoena, court order, or similar legal procedure; (c) when we believe in good faith that the disclosure of personal information is necessary to prevent harm to another person; (d) to report suspected illegal activity; or (e) to investigate violations of our [Terms of Usearrow-up-right](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) , agreements for other products or services, or any other applicable policies. * With Service Providers or Other Third Parties. We may share your personal information with service providers or other third parties who help facilitate business and compliance operations, such as marketing and technology services. * Partners. We may share your personal information with business partners, for example marketing partners, subject to any consent requirements. * Affiliates. We may share your personal information with our subsidiaries and affiliates, for purposes consistent with this Policy. * During a Change to Our Business. If we engage in a merger, acquisition, bankruptcy, dissolution, reorganization, sale of some or all of our assets or stock, financing, public offering of securities, acquisition of all or a portion of our business, a similar transaction or proceeding, or steps in contemplation of such activities, some or all of your personal information may be shared or transferred, subject to standard confidentiality arrangements. * Aggregated or De-identified Data. We may share aggregated or anonymized data with other persons for their own uses. **INTERNATIONAL TRANSFERS** We operate globally, and we may need to transfer your personal data internationally. To provide secure and stabile of the Services, we maintain servers in Japan, Singapore, and Hong Kong. Your personal data may be processed outside your country of residence. Data protection laws vary from country to country, with some countries offer more protection than others. Wherever your personal data is processed, we apply the same protections as described in this Notice. We transfer your personal data in accordance with legal frameworks required in different jurisdictions. Recipients of your personal data must agree to at least the same level of privacy safeguards required by applicable data protection laws. Such as those described below:In some cases, we rely on the following adequacy decisions: * [European Commission adequacy decisionsarrow-up-right](https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/adequacy-decisions_en) * [UK adequacy regulationsarrow-up-right](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/international-transfers/international-transfers-a-guide/#adequacy) * [Swiss adequacy decisionsarrow-up-right](https://www.edoeb.admin.ch/edoeb/en/home/datenschutz/arbeit_wirtschaft/datenuebermittlung_ausland.html) In some cases, we rely on the following agreements: * [EEA Standard Contractual Clauses (SCCs)arrow-up-right](https://commission.europa.eu/law/law-topic/data-protection/international-dimension-data-protection/standard-contractual-clauses-scc_en) * [UK Standard clause contractarrow-up-right](https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/international-transfers/international-data-transfer-agreement-and-guidance/) **Data Retention** We retain your personal information only for as long as is necessary to fulfill the purposes for which it was collected and processed, in accordance with our retention procedures, and in accordance with applicable laws or until you withdraw your consent (where applicable). To determine the appropriate retention period for your personal information, we consider the amount, nature and sensitivity of the personal information, the potential risk of harm from unauthorized use or disclosure of your personal information, the purposes for which we use your personal information and whether we can achieve those purposes through other means, and the applicable legal requirements. **Your Rights and Choices** To view or update your information, contact us using the details in the “Contact Us” section of this Policy. If provided under any applicable law and subject to any limitations in such law, you may: Ask us for access to your personal information we hold; Request corrections or deletions of your personal information; Request to restrict the processing of your personal information, or object to that processing; Withdraw your consent (where we are processing your personal information based on your consent) to the processing of your personal information; Request for the receipt or the transfer to another organization, in a machine-readable form, of the personal information that you have provided to us; and Complain to your local data protection authority of violation of your privacy rights, or your suffering as a result of unlawful processing of your personal information. Please note that, prior to any response to the exercise of such rights, we will require you to verify your identity. In addition, we may have valid legal reasons to refuse your request, and will inform you if that is the case. If you would like to exercise your rights, or for more information on your rights, please contact us using the details in the “Contact Us” section of this Policy. **Security** We maintain administrative, technical and physical safeguards designed to protect the personal information we maintain against unauthorized access, use, disclosure, alteration or destruction in line with applicable data protection and privacy laws and we require our third-party service providers to implement appropriate safeguards. No system can be completely secure. Therefore, although we take steps to secure you information, we cannot guarantee that your information, searches or other communication will always remain secure. You are responsible for all activity on the Services relating to any of your Ethereum network addresses or cryptocurrency wallets. **Age Limitations** To the extent prohibited by applicable law, we do not allow use of the Services by anyone younger than 18 years old. If you learn that anyone younger than 18 years old has unlawfully provided us with personal data, please contact us using the details in the “Contact Us” section of this Policy and we will take steps to delete such information, close any such accounts, and, to the extent possible, prevent the user from continuing to use the Services. **Third-Party Matters** Through the Services, we may provide links to websites, mobile applications or any other online assets that are not owned or controlled by us. This Policy does not apply to those websites. If you choose to use those websites, please check the legal and privacy statements posted on each website, mobile application or the online asset you access to understand their privacy practices. We have no control over and assume no responsibility for the content, privacy policies or practices of any third-party sites or services.For the avoidance of doubt, any TradingView charts displayed on the Site is governed by this Policy and not by TradingView’s [Privacy Policyarrow-up-right](https://www.tradingview.com/privacy-policy/) . **Changes to This Policy** If we make any changes, we will change the Last Updated date above. We encourage you to review this Policy to stay informed. If we make material changes, we will provide additional notice. **Online Tracking** Cookies are small text files of letters and numbers that are stored and accessed on your browser or the hard drive of your device. Like many companies online, we use services provided by Google and other companies that use cookies and other tracking technology to collect directly from your device information about your browsing activities, your interactions with websites, and the device you are using to connect to the Internet. The use of these technologies will improve your experience when you browse or use the Services, and allow us to enhance the functionality of the Services, increase security, and measure the use and effectiveness of the Services. This Policy also governs: * Pixels: A pixel is a small amount of code on a web page or in an email notification that typically works in conjunction with cookies to identify users and record user behavior. We use pixels to learn whether you have interacted with certain web or email content. This helps us measure and improve the Services and personalize your experience. * Local Storage: Local storage is an industry-standard technology that allows a website or application to store information locally on your computer or mobile device. We use local storage, including HTML5, to customize what we show you based on your content consumption and other past interactions with the Services. * Device Identifiers: Device identifiers are distinctive numbers associated with a smartphone or similar handheld device. We use mobile device identifiers for purposes set out in this Policy, for example to recognize your device when you return to the Services or otherwise use the Services. We use the following types of cookies: * Strictly necessary cookies: These cookies are necessary for the Services to function and cannot be switched off in our systems. They allow us to enable security, prevent fraud and debug the website and are usually only set in response to actions made by you which amount to a request for Services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but then some parts of the Services will not work. * Analytical or Performance cookies: These cookies allow us to count visits and traffic sources so we can measure and improve the performance of the Services. They help us to know which pages are the most and least popular and see how visitors move around the Services. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited the Services and will not be able to monitor its performance. * Functional cookies: These are used to recognize you when you return to the Services. This enables us to personalize our content for you, greet you by name and remember your account preferences. * Marketing cookies: These cookies are used by third-party advertisers or publishers to display personalized advertising. They do this by tracking your activity across websites. We use both persistent cookies and session cookies. Persistent cookies stay on your device for a set period of time or until you delete them, while session cookies are deleted once you close your web browser. The cookies placed through your use of the Services are either set by us (first-party cookies) or by a third party at our request (third-party cookies) You have a number of options to object, control or limit how we, our partners, and other third parties use cookies. You can block cookies through the mechanisms described below. However, note that cookies are important to many aspects of the Services. If you disable all cookies, you may not be able to enjoy all features of the Services. * Blocking cookies in your browser. Most browsers let you remove or reject cookies, including cookies used for interest-based advertising. To do this, follow the instructions in your browser settings. Many browsers accept cookies by default until you change your settings. For more information about cookies, including how to see what cookies have been set on your device and how to manage and delete them, visit [www.allaboutcookies.org.arrow-up-right](https://allaboutcookies.org/) * Blocking advertising ID use in your mobile settings. Your mobile device settings may provide functionality to limit use of the advertising ID associated with your mobile device for interest-based advertising purposes. * Using privacy plug-ins or browsers. You can block our websites from setting cookies used for interest-based ads by using a browser with privacy features, like Brave, or installing browser plugins like Privacy Badger, Ghostery or uBlock Origin, and configuring them to block third-party cookies or trackers. * Platform opt-outs. The following advertising partner offers opt-out features that let you opt-out of use of your information for interest-based advertising: * Google: [https://adssettings.google.com.arrow-up-right](https://adssettings.google.com/) * Advertising industry opt-out tools. You can also use the opt-out options set forth below to limit use of your information for interest-based advertising by participating companies. Note that because these opt-out mechanisms are specific to the device or browser on which they are exercised, you will need to opt out on every browser and device that you use. * Digital Advertising Alliance: [http://optout.aboutads.infoarrow-up-right](http://optout.aboutads.info/) **Notice to California Residents (“CCPA Notice”)** We are required by the California Consumer Privacy Act of 2018 (“CCPA”) to provide this CCPA Notice to California residents to explain how we collect, use and share their personal information, and the rights and choices we offer California residents regarding our handling of their personal information. **CCPA Scope and Exclusions** This CCPA Notice, including the description of our Privacy Practices and your Privacy Rights, apply only to California residents whose interactions with us are limited to: * visiting our consumer websites; and * signing up for email alerts. This CCPA Notice does not apply to the personal information we collect, use or disclose about: * individuals who provide information to us to initiate or complete the process of trading on our platform, which are subject to the notice set forth in the "Additional Disclosure" section of this Policy; or * representatives of businesses that seek to obtain our products or Services, or to provide products or services to us. **Privacy Practices** We do not “sell” the personal information (as defined in the CCPA) we collect for monetary value (and will not sell it without providing a right to opt out). Like many companies, we may use third-party cookies for our advertising purposes. If you would like to learn how you may opt out of our use of cookies and other tracking technologies, please review the instructions provided in the "Online Tracking" section of this Policy. **Privacy Rights** The CCPA grants individuals the following rights: * Information. You can request information about how we have collected, used and shared your personal information during the past 12 months. For details about the personal information we have collected over the last 12 months, including the categories of sources, please see the "What We Collect" section of this Policy. We collect this information for the business and commercial purposes described in the How We Use Information section of this Policy. We share this information with the categories of third parties described in the "When We Share and Disclose Information" section of this Policy. * Access. You can request a copy of the personal information that we maintain about you. * Deletion. You can ask us to delete the personal information that we collected or maintain about you. Please note that the CCPA limits these rights by, for example, prohibiting us from providing certain sensitive information in response to an access request and limiting the circumstances in which we must comply with a deletion request. We will also respond to requests for information and access only to the extent we are able to associate, with a reasonable effort, the information we maintain with the identifying details you provide in your request. If we deny your request, we will communicate our decision to you. You are entitled to exercise the rights described above free from discrimination. **How to Submit a Request** To request access to or deletion of personal information, contact us using the details in the “Contact Us” section of this Policy. **Identity Verification** The CCPA requires us to verify the identity of the individual submitting a request to access or delete personal information before providing a substantive response to the request. We will ask you to verify your identity when you submit a request. **Authorized Agents** California residents can empower an “authorized agent” to submit requests on their behalf. We will require the authorized agent to have a written authorization confirming that authority. **Additional Disclosure for Our Consumers and Customers (“Additional Disclosure”)** This Additional Disclosure governs our collection, use and sharing of personal information that users provide to us to initiate or complete the process of trading on the edgeX protocol. To the extent there are conflicting provisions between this "Additional Disclosure" section and other sections of this Policy, this "Additional Disclosure" section will govern. The types of personal information we collect and share can include: * Contact details * IP addresses * Trading history * Cryptocurrency balances and wallets * Conversion events Notwithstanding anything to the contrary in this Policy, when you are no longer our customer, we continue to share your information as described in this Additional Disclosure. **Reasons We Can Share Your Personal Information** We need to share users’ personal information to operate certain aspects of the edgeX protocol and our business. Whether we share your personal information, the reasons for which we share your personal information and whether you can limit this sharing include the following: * We share users’ personal information for our everyday business purposes, such as to process and match your orders and respond to court orders and legal investigations. You cannot limit our sharing of this information. * Subject to any consent requirements in any applicable laws, we may share users’ personal information for our marketing purposes, such as to offer our products and services to you. * We do not share users’ personal information for joint marketing with financial companies. * We do not share users’ personal information for our affiliates’ everyday business purposes. * We do not share users’ personal information for our affiliates to market to you. * We share users’ personal information for nonaffiliates to market to you. **How Does edgeX Collect My Personal Information?** We collect your personal information, for example, when you deposit cryptoassets in the edgeX protocol, make trades using the edgeX protocol, or withdraw cryptoassets from the edgeX, protocol. We may also collect your personal information from other companies. **Why Can’t I Limit All Sharing?** Applicable laws give you the right to limit only (a) sharing for affiliates’ everyday business purposes, (b) affiliates from using your information to market to you, and (c) sharing for nonaffiliates to market to you. State laws, regional laws and individual companies may give you additional rights to limit sharing. See above for more on your rights under state law. As used in this "Additional Disclosure" section, “affiliates” refer to companies related by common ownership or control; “nonaffiliates” refer to companies not related by common ownership or control; and “joint marketing” refers to a formal agreement between nonaffiliated financial companies that together market financial products or services to you. **Contact Us** edgeX is the entity responsible for the processing of your personal information. Please contact us if you have any questions about this Policy or if you are seeking to exercise any of your statutory rights. We will respond within a reasonable time frame. You may contact us at our website or at our mailing address: support@edgex.exchange Privacy Officer EDGEX DAO PTE. LTD. [PreviousTerms of Usechevron-left](https://edgex-1.gitbook.io/edgeX-documentation/about/terms-of-use) Last updated 1 year ago --- # EDGE | edgeX Docs The total supply of EDGE is 1,000,000,000 tokens: * 25.0% to the genesis distribution * Up to 5% to the Pre TGE Season * 25.0% to core contributors * 10.0% to the Foundation * 35.0% to future ecosystem and community ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252FPTKxvJhLaUQyZt32s6xN%252FToken.png%3Falt%3Dmedia%26token%3D62c8b8bb-1b3d-4bef-a3ac-23a6d94b6a96&width=768&dpr=4&quality=100&sign=26c22fb9&sv=2) Tokens allocated to the genesis distribution will be fully unlocked at genesis. Pre-TGE Season allocation will be fully unlocked 24 hours after the genesis. Tokens allocated to core contributors will be subject to a 2-year lock-up following genesis, followed by a 2-year vesting schedule. [PreviousCommunitychevron-left](https://edgex-1.gitbook.io/edgeX-documentation/community) [NextMaru 🦭chevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/maru) Last updated 10 days ago --- # Maru 🦭 | edgeX Docs **Manifesto** Maru, the 99% everyday trader. The ones trading between subway stops, coffee lines, and sleepless nights. Wall Street had its century. Marble lobbies. Bloomberg terminal. Suits and ties. They wrote the rules. Told the story. Most traders were never invited. The 99% stayed invisible. Until now. Blockchain changed the map. Mobile-first. Instant execution. Deep liquidity. Leverage in your pocket. No desks. No offices. No gatekeepers. Maru doesn’t sit behind a terminal. Maru isn’t a whale or a suit. Maru trades in motion. in coffee shops, on lunch breaks, on the walk home. Trading-as-a-Habit, always on, always moving. Trading-as-Culture, an identity, a badge. Trading-as-Esport, tournaments, city by city. MARU is for anyone who is underestimated, undercapitalized, overlooked, and traded anyway. This time, the 99% write the story. From 2025 on, MARU is the flag. **Tokenomics Overview:** * **Total Supply:** 10,000,000,000 MARU * **70%** Airdrop + Ecosystem Incentives (multi-round distribution to community) * **20%** Liquidity (unlocked) * **10%** Core Contributors (locked) ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-45d20e8e9abd51c5c4867ab3c68b0c5c864a0674%252FMaru_1116.jpeg%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=e307f836&sv=2) [PreviousEDGEchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/community/edge) [NextXP (Pre TGE Season)chevron-right](https://edgex-1.gitbook.io/edgeX-documentation/community/xp-pre-tge-season) Last updated 25 days ago --- # Accounts & Wallets | edgeX Docs **Connect Wallet** Click "Connect Wallet" ➡️ Select the wallet you prefer to use **For Standard Wallet Users:** 1. An EVM Wallet: If you don't already have an EVM wallet, such as MetaMask, you can easily set one up by visiting [MetaMask's official websitearrow-up-right](https://metamask.io/) . 2. USDT and ETH in Your EVM Wallet: 1. USDT: serves as collateral for trading. 2. ETH: used to cover gas fees when depositing USDT. **Wallet Login:** Login with your wallet and select an address you want to connect ➡️ Click "NEXT" ➡️ Complete the signature. **For MPC Login Users:** To create your wallet using your email: 1. Click the "Connect" button and enter your email address. After pressing "Submit," a 6-digit code will be sent to your email within a few seconds. Enter this code to log in. 2. Once connected, you need to deposit USDT. A new blockchain address is automatically created for your email address. Send USDT over the Arbitrum network to this address. You can do this easily from a centralized exchange or another standard wallet. **MPC Login:** Select MPC Wallet (email) login ➡️ Enter your email ➡️ Enter the verification code ➡️ edgeX will generate an EVM address for you. [PreviousGetting startedchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/getting-started) [NextDeposits and Withdrawalschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals) Last updated 1 year ago --- # XP (Pre TGE Season) | edgeX Docs As edgeX transitions from a Perp DEX to the EDGE Chain, the EDGE Chain is progressing from closed beta toward open beta. A broader liquidity network is taking shape, supported by both infrastructure maturity and continued expansion at the application layer. The Pre TGE Season is designed to reward organic platform usage through XP, the campaign’s incentive unit. XP will be distributed on a weekly basis until the TGE, which is expected to occur on or before March 31. For additional details, please visit the XP page: [https://pro.edgex.exchange/xparrow-up-right](https://t.co/a1PnrgUCUG) **Timeline** The Pre-TGE Season will conclude prior to the TGE. The latest possible TGE date is March 31. **EDGE Token Allocation (Excluding the allocation reserved for users from previous seasons)** Up to 5% of the total EDGE token supply is allocated to the Pre-TGE Season. If the TGE occurs earlier, the Season and corresponding rewards will conclude accordingly: TGE on or before Feb 3: 2% allocation TGE on or before Mar 3: 3.5% allocation TGE on or before Mar 31: 5% allocation **Token Release Schedule** Pre-TGE Season rewards will be released 24 hours after TGE The first 24 hours after TGE are reserved for the release of tokens allocated to users from previous season **XP Points System** The Pre-TGE Season introduces a new points unit: XP, which is separate from previous points systems. In addition to XP, users may also receive Maru rewards. **XP Multipliers & Boosts** Mobile Trading Multiplier Trades executed via the mobile app earn a 1.2× XP multiplier. Maru Holding Bonus Users holding Maru are eligible for additional XP boosts: 50,000 MARU: +5% XP 200,000 MARU or more: +10% XP 500,000 MARU or more: +15% XP Messenger XP Boost Celestial & Luna Messenger: +10% XP Messenger: +5% XP Referral XP Boost Users invited by a Messenger receive +5% XP Users invited by a Celestial or Luna Messenger receive +10% XP Stackable Multipliers XP boosts are stackable. Example: If a user trades on mobile (1.2×) and holds 200,000 MARU (+10%), Their total XP multiplier will be: 1.2 × 1.1 = 1.32× XP [PreviousMaru 🦭chevron-left](https://edgex-1.gitbook.io/edgeX-documentation/community/maru) [NextGetting startedchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started) Last updated 10 days ago --- # V1 Technical Architecture | edgeX Docs edgeX V1 is a high-performance decentralized exchange (DEX) operating as a central limit order book (CLOB) model. Each trade on edgeX V1 is settled on the Ethereum, leveraging the StarkEx Layer 2 engine for on-chain validation of trading logic, preventing fraudulent or incorrect transactions. This robust validation process is reinforced by third-party committees, which batch trades into the Ethereum blockchain, ensuring transparency and integrity. The publication of zero-knowledge proofs on the Ethereum Layer 1 blockchain adds a layer of security, validating Layer 2 transactions and safeguarding their integrity. edgeX V1 utilizes independent oracle providers to source mark prices, effectively mitigating the risk of price manipulation and ensuring accurate reflection of asset values. This mechanism protects user positions from price manipulation and liquidation issues prevalent in centralized exchanges. The high-performance trading engine of edgeX V1 delivers a seamless and exceptionally fast trading experience. When scale up to 10 shards, edgeX achieves an impressive throughput of 20,000 transactions per second (tps) and boasts the lowest match latency in the industry. These performance metrics highlight edgeX's commitment to providing a top-tier trading environment for professional perpetual traders. edgeX V1's technical architecture balances the security and transparency inherent to decentralization with the speed and efficiency required for high-frequency trading. [PreviousedgeX V1chevron-left](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1) [NextSelf-Custodychevron-right](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/self-custody) Last updated 1 year ago --- # Deposits and Withdrawals | edgeX Docs [Depositschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/deposits) [Withdrawalschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/withdrawals) [PreviousAccounts & Walletschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/accounts-and-wallets) [NextDepositschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/deposits) Last updated 1 year ago --- # Authentication | edgeX Docs Authentication is crucial for ensuring that only authorized users can access private APIs. This document outlines the authentication mechanisms used for public and private APIs. [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#public-api) Public API ------------------------------------------------------------------------------------------------------- Public APIs do not require authentication. These interfaces are accessible to anyone without the need for any credentials. Copy No authentication is required for public interfaces. [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#private-api) Private API --------------------------------------------------------------------------------------------------------- Private APIs require authentication to ensure that only authorized users can access them. Authentication is achieved using custom headers that include a timestamp and a signature. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#auth-header) Auth Header The following headers must be included in the request to authenticate access to private APIs: Name Location Type Required Description `X-edgeX-Api-Timestamp` header string must The timestamp when the request was made. This helps prevent replay attacks. `X-edgeX-Api-Signature` header string must The signature generated using the private key and request details. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#curl-example) CURL Example Copy curl --location --request GET 'https://pro.edgex.exchange/api/v1/private/account/getPositionTransactionPage?filterTypeList=SETTLE_FUNDING_FEE&size=10&accountId=544159487963955214' \ --header 'X-edgeX-Api-Signature: 06d28020763542c0afc296dc8743797c6fda8ea9727745b57b671f70326dfed6077cd******************************aff3162e39d05d9df1c3ddf9648650382d6e62ff1076b14c0e6c687088d3917d8490e5412a080a6e9ea940c720ddd' \ --header 'X-edgeX-Api-Timestamp: 1736313025024' ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#signature-elements) Signature Elements The signature is generated using the following elements: **Signature Element** **Description** `X-edgeX-Api-Timestamp` The timestamp when the request was made. This is retrieved from the request header. **Request Method (Uppercase)** The HTTP method of the request, converted to uppercase (e.g., GET, POST). **Request Path** The URI path of the request (e.g., `/api/v1/resource`). **Request Parameter/Body** The query parameters or request body, sorted alphabetically. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#request-parameter-to-signature-content) Request Parameter To Signature Content The request parameters are concatenated into a single string that forms the signature content. This string includes the timestamp, HTTP method, request path, and sorted query parameters or request body, ensuring the integrity and authenticity of the request. For example, the following request parameters are concatenated into a single string: > 1735542383256GET/api/v1/private/account/getPositionTransactionPageaccountId=543429922991899150&filterTypeList=SETTLE\_FUNDING\_FEE&size=10 #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#how-to-get-your-private-key) How To GET Your Private Key To sign messages, you need to obtain your private key. This key is used to generate signatures that authorize various actions on the platform. ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-7d724b6b784a7e308cb4e836bb25f3c952fa0fcb%252F20250102-134437.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7fd8ba2f&sv=2) **How To GET Your Private Key** > **Warning:** Keep your private key secure and never share it with anyone. Anyone with access to your private key can sign messages on your behalf. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#private-api-example) Private API Example **Private API Auth Signature:** This is used for authentication. We do not want the hash computation to consume excessive CPU resources. Therefore, this will use SHA3 to hash the request body string before signing. We provide SDKs in multiple languages to help you get started quickly. > [Python SDK: make\_authenticated\_requestarrow-up-right](https://github.com/edgex-Tech/edgex-python-sdk/blob/main/edgex_sdk/internal/async_client.py#L161) > > [Golang SDK: requestInterceptorarrow-up-right](https://github.com/edgex-Tech/edgex-golang-sdk/blob/5a8c8617e8a934c85c8c8c85a1878543f0053b7b/sdk/client.go#L97) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#java-example) Java Example Below is a Java implementation of the Ecdsa signature algorithm. This example demonstrates how to sign a GET request using a private key. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#request-body-to-body-string-code-example) Request Body To Body String Code Example The following Java code example demonstrates how to convert a JSON request body into a sorted string format suitable for signature generation: ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#signature-algorithm) Signature Algorithm The signature algorithm used is Ecdsa (Elliptic Curve Digital Signature Algorithm). [PreviousAPI Docschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api) [NextL2 Signaturechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/sign) Last updated 2 months ago * [Public API](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#public-api) * [Private API](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#private-api) * [Auth Header](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#auth-header) * [CURL Example](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#curl-example) * [Signature Elements](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#signature-elements) * [Private API Example](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#private-api-example) * [Request Body To Body String Code Example](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#request-body-to-body-string-code-example) * [Signature Algorithm](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#signature-algorithm) Copy import java.math.BigInteger; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; import java.time.Duration; import org.web3j.abi.TypeEncoder; import org.web3j.abi.datatypes.Utf8String; import org.web3j.crypto.Hash; import org.web3j.utils.Numeric; import org.web3j.abi.datatypes.generated.Uint256; import com.starkbank.ellipticcurve.utils.RandomInteger; import com.starkbank.ellipticcurve.PrivateKey; import com.starkbank.ellipticcurve.Curve; import com.starkbank.ellipticcurve.Signature; import com.starkbank.ellipticcurve.Math; import com.starkbank.ellipticcurve.Point; public class EcdsaSignatureDemo { private static final BigInteger K_MODULUS = Numeric .toBigInt("0x0800000000000010ffffffffffffffffb781126dcae7b2321e66a241adc64d2f"); private static Curve secp256k1 = new Curve(BigInteger.ONE, new BigInteger("3141592653589793238462643383279502884197169399375105820974944592307816406665"), new BigInteger("3618502788666131213697322783095070105623107215331596699973092056135872020481"), new BigInteger("3618502788666131213697322783095070105526743751716087489154079457884512865583"), new BigInteger("874739451078007766457464989774322083649278607533249481151382481072868806602"), new BigInteger("152666792071518830868575557812948353041420400780739481342941381225525861407"), "secp256k1", new long[] { 1L, 3L, 132L, 0L, 10L }); // replace with your account id and private key private static final String AccountID = "****"; private static final String PrivateKey = "****"; public static void main(String[] args) { String host = "https://pro.edgex.exchange"; String path = "/api/v1/private/account/getAccountById"; String method = "GET"; String param = "accountId=" + AccountID; long timestamp = System.currentTimeMillis(); String message = timestamp + method + path + param; String signature = signParams(message); String requestUrl = host + path + "?" + param; try { HttpClient client = HttpClient.newBuilder() .connectTimeout(Duration.ofSeconds(30)) .build(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(requestUrl)) .timeout(Duration.ofSeconds(30)) .header("X-edgeX-Api-Signature", signature) .header("X-edgeX-Api-Timestamp", String.valueOf(timestamp)) .header("Content-Type", "application/json") .GET() .build(); HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println("Response Status: " + response.statusCode()); System.out.println("Response Body: " + response.body()); } catch (Exception e) { System.err.println("Request failed: " + e.getMessage()); e.printStackTrace(); } } private static String signParams(String message) { String msg = TypeEncoder.encodePacked(new Utf8String(message)); BigInteger msgHash = Numeric.toBigInt(Hash.sha3(Numeric.hexStringToByteArray(msg))); msgHash = msgHash.mod(K_MODULUS); // Please replace it with a real private key when actually using String privateKeyHex = PrivateKey; if (privateKeyHex.startsWith("0x")) { privateKeyHex = privateKeyHex.substring(2); } BigInteger mySecretKey = new BigInteger(privateKeyHex, 16); PrivateKey privateKey = new PrivateKey(secp256k1, mySecretKey); Signature signature = sign(msgHash, privateKey); return TypeEncoder.encodePacked(new Uint256(signature.r)) + TypeEncoder.encodePacked(new Uint256(signature.s)) + TypeEncoder.encodePacked(new Uint256(privateKey.publicKey().point.y)); } private static Signature sign(BigInteger numberMessage, PrivateKey privateKey) { Curve curve = privateKey.curve; BigInteger randNum = RandomInteger.between(BigInteger.ONE, curve.N); Point randomSignPoint = Math.multiply(curve.G, randNum, curve.N, curve.A, curve.P); BigInteger r = randomSignPoint.x.mod(curve.N); BigInteger s = numberMessage.add(r.multiply(privateKey.secret)).multiply(Math.inv(randNum, curve.N)) .mod(curve.N); return new Signature(r, s); } } Copy org.web3j core 4.10.3 com.starkbank.ellipticcurve starkbank-ecdsa 1.0.2 Copy import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.ArrayList; import java.util.List; import java.util.TreeMap; import java.util.stream.Collectors; public class RequestBodyToString { private static final String EMPTY_STRING = ""; private static String getValue(JsonElement valueJson) { if (valueJson.isJsonNull()) { return EMPTY_STRING; } else if (valueJson.isJsonPrimitive()) { return valueJson.getAsString(); } else if (valueJson.isJsonArray()) { JsonArray valueArray = valueJson.getAsJsonArray(); if (valueArray.isEmpty()) { return EMPTY_STRING; } List values = new ArrayList<>(); for (JsonElement itemValue : valueArray) { values.add(getValue(itemValue)); } return String.join("&", values); } else if (valueJson.isJsonObject()) { TreeMap sortedDataMap = new TreeMap<>(); JsonObject valueJsonObj = valueJson.getAsJsonObject(); for (String key : valueJsonObj.keySet()) { sortedDataMap.put(key, getValue(valueJsonObj.get(key))); } return sortedDataMap.keySet().stream() .map(key -> key + "=" + sortedDataMap.get(key)) .collect(Collectors.joining("&")); } return EMPTY_STRING; } } --- # Self-Custody | edgeX Docs edgeX, a high-performance decentralized derivatives trading platform, is advancing user asset security and operational transparency by integrating StarkEx’s Layer 2 (L2) scalability solution. Developed by Israeli zero-knowledge proof (ZK) specialist StarkWare, StarkEx employs ZK-Rollup technology to enhance the Ethereum blockchain’s capabilities. This integration ensures that users maintain self-custody over their assets while benefiting from increased transaction speeds and reduced costs. **Leveraging StarkEx for Scalability and Security** At the core of edgeX V1’s trading and settlement system is StarkEx’s ZK-Rollup technology, which aggregates multiple transactions off-chain and then verifies them on-chain using zero-knowledge proofs. This approach significantly reduces the computational load on the Ethereum mainnet, enabling higher throughput without compromising security. Since its deployment in 2020, StarkEx has processed over **$1.3 trillion** in trading volume for more than **200,000 users** worldwide, making it one of the most battle-tested L2 solutions available. By adopting this technology, edgeX ensures that all transactions are securely validated and that the final state of transactions is both transparent and immutable. ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-45d5fa452ea1566cff0de278b161fa6c8c6d50da%252FStarkEx_flow.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=b39ea336&sv=2) **System Operational Flow** **Overview** 1. Transaction Execution: Users initiate trades on edgeX, which are executed by the platform and sent to the StarkEx service for processing. 2. Batch Processing and Proof Generation: The StarkEx service batches these transactions and forwards them to the Shared Prover (SHARP) system. SHARP generates zero-knowledge proofs (STARK proofs) to validate the integrity of the batched transactions. 3. On-Chain Verification: The generated proofs are submitted to the on-chain STARK verifier. This verifier ensures that the proofs are valid before any state changes are accepted on the Ethereum blockchain. 4. State Update Submission: Upon successful verification, the StarkEx service submits the updated state to the StarkEx smart contract on the Ethereum mainnet. The contract accepts this new state only if the associated proof has been validated, ensuring the legitimacy of all recorded transactions. This meticulous process upholds the platform’s security and accuracy, providing users with confidence in the system’s reliability. Curious to learn more about StarkEx? Visit their comprehensive [documentationarrow-up-right](https://docs.starkware.co/starkex/index.html) for detailed insights. **User Asset Self-Custody: Control at the Forefront** Unlike centralized exchanges that hold custody of user funds, edgeX utilizes Ethereum smart contracts to store and manage assets transparently via the StarkEx solution. Users deposit their funds directly into these smart contracts on the Ethereum mainnet before engaging in any trading activities on the edgeX platform. Each transaction requires the user’s approval through their Ethereum private key, ensuring that only the account owner can authorize movements of their assets. This non-custodial approach means that even while assets are managed within the L2 system, users retain full control. Even in black swan scenarios where the L2 operator (edgeX) might experience downtime or fail to process transactions promptly, users can independently close their positions and withdraw their funds using their private keys. This mechanism provides an additional layer of security and autonomy, safeguarding user assets against potential operational risks. edgeX’s reliance on user signatures for all L2 account operations makes unauthorized transactions virtually impossible. The synchronization of L2 states with Ethereum’s Layer 1 custody contracts further ensures that all asset movements are transparent and verifiable on the blockchain. By design, no entity can construct fraudulent transactions to misappropriate user assets. **Anti-Censorship Measures and Forced Withdrawals** edgeX’s architecture includes robust features to protect user assets through anti-censorship mechanisms, ensuring that users can access their funds without interference at any time: * **Forced Withdrawals**: If, for any reason, edgeX does not process a user’s withdrawal request within a predetermined timeframe, users can initiate a forced withdrawal. This process allows them to interact directly with the smart contract to retrieve their assets, bypassing the operator. These features ensure that users have uninterrupted access to their assets, even in the face of unforeseen events or platform disruptions. ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-83e36d891d5312ef9ac6d8c562aae3722fb61e31%252Fforced-operation.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7341ebf9&sv=2) For a step-by-step guide on the forced withdrawal process, please check out the [StarkEx Forced Operations pagearrow-up-right](https://docs.starkware.co/starkex/perpetual/performing-forced-transactions.html) . **Commitment to Transparency and User Empowerment** edgeX’s integration of StarkEx technology represents a significant advancement in exchange technology. By prioritizing self-custodial assets and incorporating mechanisms for anti-censorship, edgeX empowers users with unparalleled control over their assets. [PreviousV1 Technical Architecturechevron-left](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/v1-technical-architecture) [NextDecentralized Oracle Pricingchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/decentralized-oracle-pricing) Last updated 1 year ago --- # Decentralized Oracle Pricing | edgeX Docs **Oracle Price** edgeX's Oracle Price is sourced from the independent provider [Storkarrow-up-right](https://www.stork.network/) and is used to calculate margin requirements and liquidation prices. The estimated liquidation price is influenced by the user’s leverage and margin. If the Oracle Price reaches this liquidation threshold, the position will undergo forced liquidation. Oracle Prices are crucial for maintaining the integrity of the trading platform by providing reliable price data that is resistant to manipulation. **The Importance of Oracle Prices and How Decentralized Oracles Prevent Price Manipulations** In the cryptocurrency market, centralized exchanges (CEXs) have historically played a significant role. However, concerns about potential price manipulation and malicious flash crashes on some centralized platforms have garnered widespread attention. These incidents can lead to unwarranted liquidations and substantial financial losses for traders. In this context, decentralized oracles are emerging as a promising solution to enhance market integrity. The Challenge of Malicious Flash Crashes on Centralized Exchanges A malicious flash crash refers to sudden, abnormal surges or drops in asset prices on trading charts. These abrupt movements can trigger traders’ stop-loss orders unexpectedly, leading to forced liquidations and financial losses. Causes may include market manipulation, insufficient liquidity, algorithmic trading errors, or technical glitches within the exchange. Given that CEXs have full control over their platforms, it becomes challenging for external parties and traders to verify the true origins of these anomalies. In contrast, decentralized exchanges like edgeX can integrate decentralized oracles into their platforms. Decentralized oracles are systems that collect and verify data through distributed networks, aiming to provide trustworthy and manipulation-resistant external information to decentralized applications. Unlike traditional centralized oracles, these decentralized counterparts rely on multiple independent data sources and validation nodes to ensure data accuracy and reliability. **How Decentralized Oracles Prevent Malicious Price Manipulations** 1: Decentralized Data Sources By aggregating price information from multiple mainstream exchanges and markets, decentralized oracles reduce the risk of relying on a single, potentially compromised data source. Even if one exchange experiences abnormal volatility, the oracle can provide accurate pricing by referencing alternative sources. This diversification enhances the robustness of the price data and mitigates the impact of localized anomalies. 1. Consensus Mechanism Verification Nodes within the oracle network use consensus algorithms to validate collected data, filtering out anomalous or outlier price points. This process ensures that the final price feed is both accurate and trustworthy. By requiring agreement among multiple nodes, the oracle network minimizes the risk of false data being introduced into the system. 1. Transparency and Auditability All data collection and verification steps are recorded, offering complete transparency. This auditability enhances the system’s credibility and minimizes the possibility of undetected manipulation. Traders and external parties can verify the integrity of the data, fostering trust in the platform. edgeX Uses Stork, the Most Battle-Proven Decentralized Oracle Provider for Perp DEX Stork is an oracle that offers unprecedented speed and pricing expertise to the world of leveraged derivatives trading. Stork serves as the backbone for over 35 perpetual decentralized exchanges (Perp DEX), supporting over 2,000 assets and securing over $300 billion in trading volume. **Technical Architecture** Stork is built on robust architecture designed for speed, reliability, and flexibility: **Decentralized Publisher Network:** The network of data providers supplies proprietary market data, signed in a chain-compatible format. **High-Frequency Oracle:** Redundant, geo-distributed infrastructure powers low-latency WebSockets for access to all price feeds. **Off-Chain Component:** Decentralized applications (dApps) integrate with a WebSocket to determine which updates should be sent on-chain. **On-Chain Contract:** Utilizes Stork’s On-Chain Verifier to ensure only approved publisher prices are considered. **Stork On-Chain Verifier:** Verifies the validity, source, and calculation method of published prices on-chain. For more details about Stork, visit the [Stork documentationarrow-up-right](https://docs.stork.network/) . **edgeX’s Commitment to Promoting Fair Competition for All Traders** edgeX utilizes the decentralized oracle Stork to obtain independent and precise price data, ensuring accurate pricing and mitigating liquidation risks stemming from malicious price swings. By minimizing opportunities for price manipulation, decentralized oracle integration contributes to a fairer trading environment for all traders. [PreviousSelf-Custodychevron-left](https://edgex-1.gitbook.io/edgeX-documentation/edgex-v1/self-custody) [NexteStrategychevron-right](https://edgex-1.gitbook.io/edgeX-documentation/estrategy) Last updated 1 year ago --- # Trading Accounts & Margin | edgeX Docs **Collateral:** edgeX supports USDT as the primary collateral for trading. **Margin Mode and Trading Accounts:** By default, edgeX operates with a cross-margin system, allowing collateral to be shared among all positions within a single trading account. Users can also opt for isolated margins by creating separate trading accounts under the same wallet using the sub-accounts feature. Users can establish up to 20 trading accounts with independent margins per single wallet. The liquidation of one trading account does not affect the liquidation of other trading accounts associated with the same wallet. Transfers of Available Balance for Withdrawals (as defined below) between trading accounts are fee-free. However, such transfers can impact the margin ratio and potentially trigger liquidation for the involved accounts. For comprehensive details on the liquidation process, please refer to the Liquidation Logic section. **Margin, Profit & Loss (P&L) Calculations:** For USDT Perpetual Contracts, margin and P&L are calculated in USDT. This eliminates the need for traders to hedge their positions against non-stablecoin cryptocurrency risks. The P&L chart follows a linear curve; for instance, if the price moves by 100 USDT when trading 1 BTC, the trader's P&L will see a change of 100 USDT. **Hedge Mode:** Users can create sub-accounts to emulate Hedge Mode behavior, allowing them to simultaneously open long and short positions in the same market. [PreviousTradingchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading) [NextTrading Ruleschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-rules) Last updated 1 year ago --- # Websocket API | edgeX Docs ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#websocket-api-documentation) WebSocket API Documentation This document outlines the WebSocket API for both private (user account) and public (market data) information. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#private-websocket-user-account-information-websocket-interface) (Private WebSocket) User Account Information WebSocket Interface #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#description) Description * **01.** Private WebSocket connections do not require subscriptions; data is automatically pushed after a successful connection. This includes both trading messages and custom messages. * **02.** Trading messages are identified with the type `type-event`. Other message types will be defined separately. * **03.** The `event` field within the body of a trading message can be one of the following: `Snapshot`, `ACCOUNT_UPDATE`, `DEPOSIT_UPDATE`, `WITHDRAW_UPDATE`, `TRANSFER_IN_UPDATE`, `TRANSFER_OUT_UPDATE`, `ORDER_UPDATE`, `FORCE_WITHDRAW_UPDATE`, `FORCE_TRADE_UPDATE`, `FUNDING_SETTLEMENT`, `ORDER_FILL_FEE_INCOME`, `START_LIQUIDATING`, `FINISH_LIQUIDATING`, or `UNRECOGNIZED`. * **04.** Ping-Pong Mechanism: * **Server Ping (Heartbeat):** * After a successful WebSocket connection, the server sends a Ping message at a fixed interval. The message body looks like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the server's timestamp when the Ping was sent. * The client must respond with a Pong message upon receipt, with a body like: `{"type":"pong","time":"1693208170000"}`. * If the server doesn't receive a Pong response after 5 consecutive Pings, the server will terminate the connection. * **Client Ping (Latency Measurement):** * After a successful WebSocket connection, the client can also initiate a Ping message with a body like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the client's timestamp when the Ping was sent. * The server will immediately respond with a Pong message, with a body like: `{"type":"pong","time":"1693208170000"}`. The `time` field in the Pong will match the `time` field in the client's Ping. * **05.** Authentication: * **Web:** * Browsers don't allow custom headers during WebSocket connections, so special handling is required. * Use the same authentication logic as HTTP. Create a JSON string using the `X-edgeX-Api-Signature`, `X-edgeX-Api-Timestamp` key-value pairs, for example: `{"X-edgeX-Api-Signature": "00e6b34cf9c3c0ca407cc2fe149fad836206c97201f236137c0e89fd079760470672b5257fa372710b5863d1ec6e0215e5bd6b2c3a319eda88886250a100524706ea3dd81a7fc864893c8c6f674e4a4510c369f939bdc0259a0980dfde882c2d", "X-edgeX-Api-Timestamp": "1705720068228"}`. * Base64 encode this JSON string. * During the WebSocket request, pass the base64 encoded value in the `SEC_WEBSOCKET_PROTOCOL` header. * **App/API:** * App/API WebSocket connections can use [custom](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication#private-api) headers. Therefore, Apps/API can continue using the same authentication logic as HTTP, or they can use the Web authentication method described above. * WebSocket is a GET request and there is no need to sign the request body. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#url-api-v1-private-ws) URL: `/api/v1/private/ws` **Payload** ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#public-websocket-market-data-websocket-interface) (Public WebSocket) Market Data WebSocket Interface #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#url-api-v1-public-ws) URL: `/api/v1/public/ws` #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#description-1) Description * **01.** When subscribing or unsubscribing, the server will validate the channel. For invalid channels, the server will respond with an error message, for example: `{"type":"error","content":{"code":"INVALID_CONTRACT_ID""msg":"invalid contractId:100000001"}}` * **02.** The message structure for subscribing and unsubscribing is: `{"type": "subscribe", "channel": "ticker.10000001"}`. * **03.** Ping-Pong Mechanism: * **Server Ping (Heartbeat):** * After a successful WebSocket connection, the server sends a Ping message at a fixed interval. The message body looks like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the server's timestamp when the Ping was sent. * The client must respond with a Pong message upon receipt, with a body like: `{"type":"pong","time":"1693208170000"}`. * If the server doesn't receive a Pong response after 5 consecutive Pings, the server will terminate the connection. * **Client Ping (Latency Measurement):** * After a successful WebSocket connection, the client can also initiate a Ping message with a body like: `{"type":"ping","time":"1693208170000"}`. The `time` field is the client's timestamp when the Ping was sent. * The server will immediately respond with a Pong message, with a body like: `{"type":"pong","time":"1693208170000"}`. The `time` field in the Pong will match the `time` field in the client's Ping. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#subscription-metadata) Subscription Metadata **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#subscribe-to-24-hour-market-ticker) Subscribe to 24-Hour Market Ticker **Channel Explanation** Channel Description ticker.{contractId} Subscribe to the ticker of contract `contractId` ticker.all Subscribe to the ticker of all contracts ticker.all.1s Subscribe to the ticker of all contracts (periodic push) **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#subscribe-to-k-line-data) Subscribe to K-Line Data **Channel Explanation** Channel Description kline.{priceType}.{contractId}.{interval} Subscribe to the `interval` K-Line of contract `contractId` based on `priceType` `**priceType**` **Parameter** Value Description LAST\_PRICE Last Price K-Line MARK\_PRICE Mark Price K-Line `**interval**` **Parameter** Value Description MINUTE\_1 1-Minute K-Line MINUTE\_5 5-Minute K-Line MINUTE\_15 15-Minute K-Line MINUTE\_30 30-Minute K-Line HOUR\_1 1-Hour K-Line HOUR\_2 2-Hour K-Line HOUR\_4 4-Hour K-Line HOUR\_6 6-Hour K-Line HOUR\_8 8-Hour K-Line HOUR\_12 12-Hour K-Line DAY\_1 Daily K-Line WEEK\_1 Weekly K-Line MONTH\_1 Monthly K-Line **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#subscribe-to-order-book) Subscribe to Order Book **Usage Instructions** > After a successful subscription, a full dataset is pushed once initially (`depthType=SNAPSHOT`), and subsequent pushes will be incremental updates (`depthType=CHANGED`). **Channel Explanation** Channel Description depth.{contractId}.{depth} Subscribe to the order book of contract `contractId` with a depth of `depth` `**depth**` **Parameter** Value Description 15 15 levels 200 200 levels **Request** **Response** **Payload** #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#subscribe-to-latest-trades) Subscribe to Latest Trades **Channel Explanation** Channel Description trades.{contractId} Subscribe to the latest trades of contract `contractId` **Request** **Response** **Payload** [PreviousWithdraw APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api) [NextVision & Roadmapchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/vision-and-roadmap) Last updated 1 year ago * [WebSocket API Documentation](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#websocket-api-documentation) * [(Private WebSocket) User Account Information WebSocket Interface](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#private-websocket-user-account-information-websocket-interface) * [(Public WebSocket) Market Data WebSocket Interface](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api#public-websocket-market-data-websocket-interface) Copy { // The type for trading messages is "trade-event". Custom messages have their own defined type. "error" indicates an error message sent by the server. "type": "trade-event", // The body of a trading message has the structure below. The message structure for custom messages will be defined separately by the user. "content": { // The event that triggered the data update "event": "ACCOUNT_UPDATE", // Data update version "version": "1000", // Data "data": { // Account information "account": [\ ], // Collateral information "collateral": [\ ], // Collateral transaction details "collateralTransaction": [\ ], // Position information "position": [\ ], // Position transaction details "positionTransaction": [\ ], // Deposit records "deposit": [\ ], // Withdrawal records "withdraw": [\ ], // Transfer in records "transferIn": [\ ], // Transfer out records "transferOut": [\ ], // Order information "order": [\ ], // Trade details "orderFillTransaction": [\ ] } } } Copy { "type": "subscribe", "channel": "metadata" } Copy { "type": "subscribed", "channel": "metadata" } Copy { // error "type": "quote-event", "channel": "metadata", "content": { // snapshot quote-event "dataType": "Snapshot", // "channel": "metadata", "data": [\ {\ // Coin information\ "coin": [\ ],\ // Contract information\ "contract": [\ ]\ }\ ] } } Copy { "type": "subscribe", "channel": "ticker.10000001" } Copy { "type": "subscribed", "channel": "ticker.10000001" } Copy { "type": "payload", "channel": "ticker.10000001", "content": { "dataType": "Snapshot", "channel": "ticker.10000001", "data": [\ {\ "contractId": "string",\ "priceChange": "string",\ "priceChangePercent": "string",\ "trades": "string",\ "size": "string",\ "value": "string",\ "high": "string",\ "low": "string",\ "open": "string",\ "close": "string",\ "highTime": "string",\ "lowTime": "string",\ "startTime": "string",\ "endTime": "string",\ "lastPrice": "string"\ }\ ] } } Copy { "type": "subscribe", "channel": "kline.LAST_PRICE.10000001.MINUTE_1" } Copy { "type": "subscribed", "channel": "kline.LAST_PRICE.10000001.MINUTE_1" } Copy { "type": "payload", "channel": "kline.LAST_PRICE.10000001.MINUTE_1", "content": { "dataType": "Changed", "channel": "kline.LAST_PRICE.10000001.MINUTE_1", "data": [\ {\ "klineId": "1",\ "contractId": "10000001",\ "klineType": "MINUTE_1",\ "klineTime": "1688365544504",\ "trades": "5",\ "size": "10.1",\ "value": "100000",\ "high": "31200",\ "low": "31000",\ "open": "3150",\ "close": "31010",\ "makerBuySize": "5",\ "makerBuyValue": "150000"\ }\ ] } } Copy { "type": "subscribe", "channel": "depth.10000001.15" } Copy { "type": "subscribed", "channel": "depth.10000001.15" } Copy { "type": "payload", "channel": "depth.10000001.15", "content": { "dataType": "Snapshot", "channel": "depth.10000001.15", "data": [\ {\ "startVersion": "string",\ "endVersion": "string",\ "level": 0,\ "contractId": "10000001",\ "depthType": "Snapshot", // Data type: SNAPSHOT for full data, CHANGED for incremental data\ "bids": [\ [\ "26092",\ // Price\ "0.9014"\ // Size. A size of 0 indicates a deletion. Positive numbers mean increase. Negative numbers mean decrease.\ ],\ [\ "26091",\ "0.9667"\ ]\ ],\ "asks": [\ [\ "26093",\ "0.964"\ ],\ [\ "26094",\ "1.0213"\ ]\ ]\ }\ ] } } Copy { "type": "subscribe", "channel": "trades.10000001" } Copy { "type": "subscribed", "channel": "trades.10000001" } Copy { "type": "payload", "channel": "trades.10000001", "content": { "dataType": "Changed", "channel": "trades.10000001", "data": [\ {\ "ticketId": "1",\ "time": "1688365544504",\ "price": "30065.12",\ "size": "0.01",\ "value": "300.6512",\ "takerOrderId": "10",\ "makerOrderId": "11",\ "takerAccountId": "3001",\ "makerAccountId": "3002",\ "contractId": "10000001",\ "isBestMatch": true,\ "isBuyerMaker": false\ }\ ] } } --- # L2 Signature | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#how-to-sign-message) How To Sign Message --------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#overview) Overview In Layer 2 trading systems, to ensure transaction security and prevent unauthorized operations, critical operations (such as limit orders, transfers, withdrawals, etc.) require users to provide digital signatures to prove the legitimacy of the operations. This signature is passed through the `l2Signature` parameter. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#how-to-get-your-l2-private-key) How To GET Your L2 Private Key To generate l2Signature, you first need to obtain your L2 private key. This key is used to generate signatures that authorize various actions on the platform. ![](https://edgex-1.gitbook.io/edgeX-documentation/~gitbook/image?url=https%3A%2F%2F306066812-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FpfcaPbebWLbUlo9XcPCp%252Fuploads%252Fgit-blob-7d724b6b784a7e308cb4e836bb25f3c952fa0fcb%252F20250102-134437.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=7fd8ba2f&sv=2) **How To GET Your L2 Private Key** > **⚠️ Security Warning:** > > * Keep your private key secure and never share it with anyone > > * Anyone with access to your private key can sign messages and execute operations on your behalf > ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#signature-algorithm) Signature Algorithm #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#two-algorithms-are-used-in-the-signature-process) Two algorithms are used in the signature process: 1. **ECDSA** (Elliptic Curve Digital Signature Algorithm) is used to generate and verify signatures. 2. **Pedersen Hash** which consumes more CPU resources compared to regular Ethereum signatures, is used for message hashing. L2Signature generation follows these standard steps: 1. **Collect Parameters**: Gather all required parameters for the operation 2. **Calculate Hash**: Use Pedersen Hash to compute the message hash 3. **Generate Signature**: Use ECDSA algorithm and L2 private key to sign the hash 4. **Format Output**: Format the signature according to API requirements > [Python L2Signature Demoarrow-up-right](https://github.com/edgex-Tech/edgex-python-sdk/blob/main/edgex_sdk/internal/client.py#L111) > [Golang L2Signature Demoarrow-up-right](https://github.com/edgex-Tech/edgex-golang-sdk/blob/main/sdk/internal/utils.go#L30) > [Java Script L2Signature Demoarrow-up-right](https://www.npmjs.com/package/@starkware-industries/starkware-crypto-utils#signing-a-starkex-order) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#java-l2signature-example) Java L2Signature Example Below is a Java implementation of the Ecdsa signature algorithm. This example demonstrates how to sign a message using a private key. [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#signature-construction-guide) Signature Construction Guide --------------------------------------------------------------------------------------------------------------------------------- This section provides detailed instructions for constructing signatures for various actions on the platform. Each operation has specific message formats and parameter requirements. ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#withdrawal-signature) Withdrawal Signature Used to authorize withdrawing assets from Layer 2 to an Ethereum address. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#parameters) Parameters * `assetIdCollateral` - Asset ID for the collateral token from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) * `positionId` - User's account ID in Layer 2 * `ethAddress` - Destination Ethereum address for withdrawal * `nonce` - Unique transaction identifier to prevent replay attacks * `expirationTimestamp` - Unix timestamp when signature expires * `amount` - Amount to withdraw in base units #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#calculation) Calculation The following TypeScript function constructs the withdrawal message for signing: ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#limit-order-signature) Limit Order Signature Used to authorize a limit order for perpetual trading. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#parameters-1) Parameters * `assetIdSynthetic` - Synthetic asset ID from [`meta_data.contractList.starkExSyntheticAssetId`](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) * `assetIdCollateral` - Collateral asset ID from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) * `isBuyingSynthetic` - `true` for buy orders, `false` for sell orders * `assetIdFee` - Fee token asset ID from [`meta_data.coinList.starkExAssetId`](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) * `amountSynthetic` - Amount of synthetic asset * `amountCollateral` - Amount of collateral asset * `maxAmountFee` - Maximum fee amount allowed * `nonce` - Unique order identifier * `positionId` - User's position ID * `expirationTimestamp` - Unix timestamp when order expires #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#calculation-1) Calculation The following TypeScript function constructs the limit order message for signing: ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#transfer-signature) Transfer Signature Used to authorize transfers between Layer 2 accounts. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#parameters-2) Parameters * `assetId` - Asset ID being transferred * `receiverPublicKey` - Recipient's public key * `senderPositionId` - Sender's position ID * `receiverPositionId` - Recipient's position ID * `srcFeePositionId` - Fee source position ID * `nonce` - Unique transfer identifier * `amount` - Transfer amount * `expirationTimestamp` - Unix timestamp when transfer expires * `assetIdFee` - Fee token asset ID (optional, default '0') * `maxAmountFee` - Maximum fee amount (optional, default '0') #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#calculation-2) Calculation The following TypeScript function constructs the transfer message for signing: For more details on the signature construction, see the [StarkEx documentationarrow-up-right](https://docs.starkware.co/starkex/perpetual/signature_construction_perpetual.html) . [PreviousAuthenticationchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/authentication) [NextPublic APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api) Last updated 2 months ago * [How To Sign Message](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#how-to-sign-message) * [Overview](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#overview) * [How To GET Your L2 Private Key](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#how-to-get-your-l2-private-key) * [Signature Algorithm](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#signature-algorithm) * [Signature Construction Guide](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#signature-construction-guide) * [Withdrawal Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#withdrawal-signature) * [Limit Order Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#limit-order-signature) * [Transfer Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/sign#transfer-signature) Copy public static CreateOrderRequest signOrder( CreateOrderRequest request, Contract contract, Coin quotelCoin, PrivateKey privateKey) { BigInteger msgHash = L2SignUtil.hashLimitOrder( request.getSide() == OrderSide.BUY, BigIntUtil.toBigInt(quotelCoin.getStarkExAssetId()), BigIntUtil.toBigInt(contract.getStarkExSyntheticAssetId()), BigIntUtil.toBigInt(quotelCoin.getStarkExAssetId()), UnsignedLong.valueOf(new BigDecimal(request.getL2Value()) .multiply(new BigDecimal(BigIntUtil.toBigInt(quotelCoin.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.valueOf(new BigDecimal(request.getL2Size()) .multiply(new BigDecimal(BigIntUtil.toBigInt(contract.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.valueOf(new BigDecimal(request.getL2LimitFee()) .multiply(new BigDecimal(BigIntUtil.toBigInt(quotelCoin.getStarkExResolution()))) .toBigIntegerExact()), UnsignedLong.fromLongBits(request.getAccountId()), UnsignedInteger.valueOf(request.getL2Nonce()), UnsignedInteger.valueOf(request.getL2ExpireTime() / (60 * 60 * 1000L))); Signature signature = Ecdsa.sign(msgHash, privateKey); return request.toBuilder() .setL2Signature(L2Signature.newBuilder() .setR(BigIntUtil.toHexStr(signature.r)) .setS(BigIntUtil.toHexStr(signature.s)) .build()) .build(); } public static BigInteger hashLimitOrder( boolean isBuyingSynthetic, BigInteger assetIdCollateral, BigInteger assetIdSynthetic, BigInteger assetIdFee, UnsignedLong amountCollateral, UnsignedLong amountSynthetic, UnsignedLong maxAmountFee, UnsignedLong positionId, UnsignedInteger nonce, UnsignedInteger expirationTimestamp) { BigInteger assetIdSell; BigInteger assetIdBuy; UnsignedLong amountSell; UnsignedLong amountBuy; if (isBuyingSynthetic) { assetIdSell = assetIdCollateral; assetIdBuy = assetIdSynthetic; amountSell = amountCollateral; amountBuy = amountSynthetic; } else { assetIdSell = assetIdSynthetic; assetIdBuy = assetIdCollateral; amountSell = amountSynthetic; amountBuy = amountCollateral; } BigInteger packedMessage0 = amountSell.bigIntegerValue(); packedMessage0 = packedMessage0.shiftLeft(64).add(amountBuy.bigIntegerValue()); packedMessage0 = packedMessage0.shiftLeft(64).add(maxAmountFee.bigIntegerValue()); packedMessage0 = packedMessage0.shiftLeft(32).add(nonce.bigIntegerValue()); BigInteger packedMessage1 = BigInteger.valueOf(3); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(64).add(positionId.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(32).add(expirationTimestamp.bigIntegerValue()); packedMessage1 = packedMessage1.shiftLeft(17); BigInteger msg = pedersenHash(assetIdSell, assetIdBuy); msg = pedersenHash(msg, assetIdFee); msg = pedersenHash(msg, packedMessage0); msg = pedersenHash(msg, packedMessage1); return msg; } public static BigInteger pedersenHash(BigInteger... input) { BigInteger[][] points = PEDERSEN_POINTS; Point shiftPoint = new Point(points[0][0], points[0][1]); for (int i = 0; i < input.length; i++) { BigInteger x = input[i]; for (int j = 0; j < 252; j++) { int pos = 2 + i * 252 + j; Point pt = new Point(points[pos][0], points[pos][1]); if (x.and(BigInteger.ONE).intValue() != 0) { shiftPoint = EcMath.add(shiftPoint, pt, Curve.secp256k1.A, Curve.secp256k1.P); } x = x.shiftRight(1); } } return shiftPoint.x; } public static Signature sign(BigInteger msgHash, PrivateKey privateKey) { Curve curve = privateKey.curve; BigInteger randNum = new BigInteger(curve.N.toByteArray().length * 8 - 1, new SecureRandom()).abs().add(BigInteger.ONE); Point randomSignPoint = EcMath.multiply(curve.G, randNum, curve.N, curve.A, curve.P); BigInteger r = randomSignPoint.x.mod(curve.N); BigInteger s = ((msgHash.add(r.multiply(privateKey.secret))).multiply(EcMath.inv(randNum, curve.N))).mod(curve.N); return Signature.create(r, s); } Copy // Construct withdrawal message for signing function getWithdrawalToAddressMsg({ assetIdCollateral, positionId, ethAddress, nonce, expirationTimestamp, amount }) { // Pack parameters into 256-bit words const w1 = assetIdCollateral; let w5 = BigInt(withdrawalToAddress); // Constant identifier w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 32) + BigInt(nonce); w5 = (w5 << 64) + BigInt(amount); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 49; // Calculate Pedersen hash return pedersen([\ pedersen([w1, ethAddress]),\ w5.toString(16)\ ]); } Copy function getLimitOrderMsg({ assetIdSynthetic, assetIdCollateral, isBuyingSynthetic, assetIdFee, amountSynthetic, amountCollateral, maxAmountFee, nonce, positionId, expirationTimestamp }) { // Determine sell/buy assets based on order side const [assetIdSell, assetIdBuy] = isBuyingSynthetic ? [assetIdCollateral, assetIdSynthetic] : [assetIdSynthetic, assetIdCollateral]; const [amountSell, amountBuy] = isBuyingSynthetic ? [amountCollateral, amountSynthetic] : [amountSynthetic, amountCollateral]; // Pack order data into 256-bit words const w1 = assetIdSell; const w2 = assetIdBuy; const w3 = assetIdFee; // Calculate message hash let msg = pedersen([w1, w2]); msg = pedersen([msg, w3]); let w4 = BigInt(amountSell); w4 = (w4 << 64) + BigInt(amountBuy); w4 = (w4 << 64) + BigInt(maxAmountFee); w4 = (w4 << 32) + BigInt(nonce); msg = pedersen([msg, w4.toString(16)]); let w5 = BigInt(limitOrderWithFees); // Constant identifier w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 64) + BigInt(positionId); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 17; return pedersen([msg, w5.toString(16)]); } Copy function getTransferMsg({ assetId, receiverPublicKey, senderPositionId, receiverPositionId, srcFeePositionId, nonce, amount, expirationTimestamp, assetIdFee = '0', maxAmountFee = '0' }) { // Pack transfer data into 256-bit words const w1 = assetId; const w2 = assetIdFee; const w3 = receiverPublicKey; let w4 = BigInt(senderPositionId); w4 = (w4 << 64) + BigInt(receiverPositionId); w4 = (w4 << 64) + BigInt(srcFeePositionId); w4 = (w4 << 32) + BigInt(nonce); let w5 = BigInt(transfer); // Constant identifier w5 = (w5 << 64) + BigInt(amount); w5 = (w5 << 64) + BigInt(maxAmountFee); w5 = (w5 << 32) + BigInt(expirationTimestamp); w5 = w5 << 81; // Calculate message hash let msg = pedersen([w1, w2]); msg = pedersen([msg, w3]); msg = pedersen([msg, w4.toString(16)]); return pedersen([msg, w5.toString(16)]); } --- # Trading Rules | edgeX Docs The trading rules encompass various limitations and guidelines applicable to the markets listed on the exchange. Users can access detailed, market-specific trading rules through the 'Risk Limit' tab on the main trading screen. [PreviousTrading Accounts & Marginchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-accounts-and-margin) [NextLast Price, Index Price & Oracle Pricechevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/last-price-index-price-and-oracle-price) Last updated 1 year ago --- # Withdrawals | edgeX Docs **Ethereum Withdrawals:** For maximum security, all transactions are batched, verified rigorously, and then settled on Ethereum L1. The process could take up to 14 hours. **Non-Ethereum Withdrawals:** Users can withdraw assets directly to different EVM-compatible chains on edgeX. When withdrawing assets to an EVM-compatible chain, the asset is first transferred to edgeX's L2 asset pool. Subsequently, edgeX transfers the corresponding amount of assets to the user's address from its asset pool on the respective withdrawal chain. Please note that the maximum withdrawal amount is limited not only by the total assets available in a user's account but also by the maximum available amount in the chain's asset pool. **Withdrawal Fees:** For ETH standard withdrawals, users just need to cover the gas fees themselves. For non-ETH withdrawals, a cross-chain withdrawal fee of 0.1% applies, with a minimum fee of 1 USD. **Quick Guide** For Wallet Users: You can select the chain for withdrawal from Ethereum, BNB Chain, or Arbitrum ➡️ Enter the withdrawal amount ➡️ Click "Withdraw" ➡️ Confirm in the approval pop-up page ➡️ Complete the withdrawal. For MPC Account Users: Withdrawals can only be made via Arbitrum. ➡️ Enter the withdrawal amount. ➡️ Input the Arbitrum address for the withdrawal. ➡️ Click "Withdraw." ➡️ Confirm in the pop-up confirmation window. ➡️ Complete the withdrawal. [PreviousDepositschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/deposits) [NextTradingchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading) Last updated 1 month ago --- # Stock Perpetual | edgeX Docs Before you start trading Stock Perpetuals, please read the following trading rules carefully. These contracts are linked to underlying equity assets. During weekends and market holidays when the stock markets are closed, the trading mechanisms will be adjusted as follows: #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual#id-1.-trading-hours-and-market-status) 1\. Trading Hours & Market Status * 24/7 Trading: The perpetual market remains open 24/7, but price and volatility are significantly influenced by the status of the underlying stock market. * Market Status: The system determines the current status as "Market Open" or "Market Closed" in real-time, based on the official trading schedule of the relevant stock markets. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual#id-2.-special-rules-during-weekends-and-holidays) 2\. Special Rules During Weekends & Holidays **2.1 Order Types** To protect your assets from abnormal price fluctuations caused by low liquidity when the stock market is closed, the following rules apply: * Market Orders Rejected: The system will reject all Market Orders. * Limit Orders Only: Only Limit Orders are supported, and the limit price must fall within the designated price range. * Conditional Orders: All Conditional Orders (including Take Profit & Stop Loss (TP/SL), Conditional Limit Orders, and Conditional Market Orders) triggered during market closed period must follow the same rules: Market orders will be rejected, and Limit orders outside the price range will also be rejected. **2.2 Price Range & Mark Price** Price range Calculation: * Formula: Long price upper limit is Last Closing Index Price × (1 + 1 / Max Leverage of the pair); Short price lower limit is Last Closing Index Price × (1 - 1 / Max Leverage of the pair). * _Example: If the maximum leverage for a perp trading pair is 10x and the last closing Index Price is $100, buy limit orders cannot exceed $110 and sell limit orders cannot be below $90 during market closure._ Mark Price Adjustment: * During market closure, the Mark Price is also restricted within the price range. * Clamping Mechanism: The price change is limited to 0.5% every 3 seconds. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual#id-3.-risk-disclosure) 3\. Risk Disclosure * Order Execution Risk: Orders placed or triggered during weekends or holidays may be rejected if they do not meet the criteria mentioned above. * Price Deviation Risk: During market status transitions or periods of extreme volatility, the contract price may temporarily deviate from the external spot price. * Liquidation Risk: If your margin is insufficient, you may face the risk of forced liquidation [PreviousTradingViewchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/tradingview) [NextAPI Docschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api) Last updated 0 minutes ago --- # Take Profit & Stop Loss | edgeX Docs **Take-Profit (TP):** Close your position once you've reached a specified level of profit. **Stop-Loss (SL):** Exit your position once the asset reaches a specified price to mitigate capital losses if the market moves against you. **Please note:** 1. **TP/SL Orders Function as Market Orders:** TP/SL orders are executed as market orders. 2. **Configuration After Execution:** You can only select and configure TP/SL options after your order is executed. For limit and conditional (market or limit) orders, you need to wait for the orders to transition from pending status (under Active or Conditional) to the "Positions" tab at the bottom of the trading page. As market orders are immediately executed at the best available price, you can set TP/SL immediately without waiting for a trigger price. 3. **Default Reduce-Only Orders:** By default, all TP/SL orders are Reduce-Only orders on edgeX. 4. **Setting TP/SL:** Check your open positions under the "Positions" tab and click on the \[+Add\] button to set TP/SL. 5. **Configuring TP/SL:** * A new window will pop up with the following fields: * All TP/SL orders can only be triggered by the Last Traded Price. * You can set either the Take-Profit or Stop-Loss sections, or both, if you want to apply both conditions to your orders. * Enter the Take-Profit trigger price and quantity. You can apply the TP condition to either a partial amount or the entirety of your order. * Similarly, for Stop-Loss, choose whether to apply the SL condition to a partial amount or the entirety of your order. * Click "Confirm" once you've verified the details of your order. 6. **Close By Limit Function:** Alternatively, you can use the Close By Limit function to set up Take-Profit orders, which serves the same purpose as Step 5 above. [PreviousOrder Typeschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/order-types) [NextLiquidation Logicchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/liquidation-logic) Last updated 1 year ago --- # Last Price, Index Price & Oracle Price | edgeX Docs **Last Price** The Last Price represents the most recent transaction price of a contract, updated in real time and displayed in the order book. This metric is essential for traders engaged in day trading and scalping strategies, as it reflects the latest market activity. By providing immediate insights into current trading conditions, the Last Price enables traders to make timely decisions based on the most recent data. **Index Price** The Index Price is derived from the weighted average of prices collected from multiple major crypto exchanges, including Binance, OKX, Bybit, and Coinbase. These weights are dynamically adjusted every four hours to align with fluctuations on these platforms. Utilizing the Index Price helps users sidestep exchange-specific anomalies, making it advantageous for swing trading positions. Notably, this aggregated price is primarily used to calculate funding fees, ensuring fair funding rates across the market. **Oracle Price** The Oracle Price is sourced from the independent provider Stork and is used to calculate margin requirements and liquidation prices. The estimated liquidation price is influenced by the user’s leverage and margin. If the Oracle Price reaches this liquidation threshold, the position will undergo forced liquidation. Oracle Prices are crucial for maintaining the integrity of the trading platform by providing reliable price data that is resistant to manipulation. For a comprehensive understanding of Stork's methodology for determining the Oracle Price, please refer to Stork's [documentationarrow-up-right](https://docs.stork.network/) . [PreviousTrading Ruleschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-rules) [NextTrading Feeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-fees) Last updated 1 year ago --- # Trading Fees | edgeX Docs The trading fees on edgeX are determined by the rolling traded volume over the past 30 days, with updates occurring daily at 00:00 (UTC). * **Maker Orders**: These orders add depth and liquidity to the order book as they are not executed and filled immediately. * **Taker Orders**: In contrast, these orders are executed and filled immediately, removing liquidity from the order book. * edgeX adopts a tiered fee structure based on a trader’s rolling 30-day trading volume. * The volume from sub-accounts is aggregated with the main account, ensuring that all sub-accounts benefit from the same fee tier. * Regarding gas fees for trade settlements, edgeX V1 will cover the gas costs on behalf of users. * For comprehensive information on VIP trading fees, please visit the [VIP page arrow-up-right](https://pro.edgex.exchange/vip) on our website. [PreviousLast Price, Index Price & Oracle Pricechevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/last-price-index-price-and-oracle-price) [NextFunding Feeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/funding-fees) Last updated 8 months ago --- # Liquidation Logic | edgeX Docs edgeX employs Oracle Price to prevent liquidations triggered by low liquidity or market manipulation. In cross margin mode, a position is liquidated when the available balance reaches zero and the position margin drops to the maintenance margin level. [PreviousTake Profit & Stop Losschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/take-profit-and-stop-loss) [NextTradingViewchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/tradingview) Last updated 1 year ago --- # Public API | edgeX Docs [Meta Data APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) [Quote APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api) [Funding APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api) [PreviousL2 Signaturechevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/sign) [NextMeta Data APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) Last updated 1 year ago --- # Funding Fees | edgeX Docs Funding fees are a mechanism designed to ensure that the price of perpetual futures contracts aligns closely with the underlying asset's spot market price. These fees are periodically exchanged between traders holding long and short positions to incentivize the convergence of the contract price with the spot price. Mechanism of Funding Fees Funding fees are exchanged every hour between holders of long and short positions. The funding rate, which dictates the fee exchange, fluctuates in real-time. When the funding rate is positive at the time of settlement, long position holders pay the funding fees to short position holders. Conversely, when the funding rate is negative, short position holders pay the fees to long position holders. Only traders holding positions at the time of settlement are liable to either pay or receive funding fees. The calculation of the funding fees is based on the value of the position at the time of settlement, using the formula: _**Funding Fees=Position Value×Index Price×Funding Rate**_ **Funding Rate Calculation** The funding rate consists of two parts: **Interest Rate** and **Average Premium Index (P)**. edgeX calculates the **Interest Rate (I)** and the **Average Premium Index (P)** every minute by performing an N\*-Hour Time-Weighted-Average-Price (TWAP) over the series of minute rates. The closer to the funding fee settlement time, the greater the coefficient of the premium index. Taking an 4-hour funding interval as an example, the Average Premium Index (P) is calculated using the formula: (Premium Index \_1 \* 1 + Premium Index \_2 \* 2 +... + Premium Index \_240 \* 240)/(1 + 2 +... + 240). Each hour corresponds to 60-minute intervals. If the funding interval is every 4 hours, corresponding to 240 intervals (4 \* 60), then the coefficients would be 1, 2, ..., 240, forming an arithmetic progression starting from 1 with a common difference of 1. The Funding Rate is next calculated with the N\*-Hour Interest Rate component and the N\*-Hour premium/discount component. A +/−0.05% dampener is added. \*N = Funding Time interval. Suppose funding occurs once every 4 hours, N = 4. And if funding occurs once per hour, N = 1. Funding Rate (F) = Average Premium Index (P) + clamp (Interest Rate (I) − Average Premium Index (P), 0.05%, −0.05%) Hence, if (I − P) is within +/−0.05%, then F = P + (I − P) = I. In other words, the funding rate will equal the Interest Rate. This calculated funding rate is then applied to a trader’s position value to determine the funding fee to be paid or received at the funding timestamp **Interest Rate (I)** Formula Interest Rate (I) = Price Interest Rate Index − Base Rate Index/Fund Rate Interval * Interest Quote Index = The interest rate for borrowing the quoted currency * Interest Base Index = The interest rate for borrowing the base currency * Funding Interval = 24/Funding Time interval **Premium Index (P)** Formula Premium Index (P) = \[Max (0, Impact Bid Price − Index Price) − Max (0, Index Price − Impact Ask Price)\]/Index Price \* Impact Bid Price = The average fill price to execute the Impact Margin Notional on the Bid side \* Impact Ask Price = The average fill price to execute the Impact Margin Notional on the Ask side **Impact Margin Notional** (IMN) is the notion available to trade with a certain amount of margin. It’s used to determine how deep the order book is and to measure the Impact Bid or Ask Price. [PreviousTrading Feeschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/trading-fees) [NextOrder Typeschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/order-types) Last updated 1 year ago --- # Order Types | edgeX Docs edgeX offers three order types for perpetual contract trades: Limit Orders, Market Orders, and Conditional Orders. **1\. Limit Order** A limit order allows you to place an order at a specific price or a more favorable price. However, there is no guarantee that a limit order will be filled, as it is only executed when the preferred price is reached. A limit order to buy will only be executed at the limit price or lower, and a limit order to sell will only be executed at the limit price or higher. Advanced limit order conditions can be set, such as time-in-force options to specify the order expiry time: * **Fill-or-Kill:** This order must be filled immediately or will be canceled. * **Good-Till-Time:** This order remains effective until fulfilled or until the maximum default period of 4 weeks is reached. * **Immediate-or-Cancel:** This order must be executed at the limit price or better immediately, or it will be canceled. Additionally, you can further customize your order by adding execution conditions with Post-Only or Reduce-Only: * **Post-Only:** Ensures your order is posted on the order book without being matched immediately, guaranteeing it is only executed as a maker order. * **Reduce-Only:** Dynamically reduces or adjusts your limit order's contract quantity, ensuring your position is not unintentionally increased. **2\. Market Order** A market order is a buy or sell order that gets filled at the best available price on the market after submission. Market orders are filled based on available liquidity, meaning the order is executed against the limit orders previously placed on the order book. The execution of a market order is guaranteed, but you cannot specify any prices. You can only specify the contract type and order amount, as all time-in-force and execution conditions are pre-set as a market order. **3\. Conditional Orders** Conditional orders are market or limit orders that have specific conditions attached to them, known as Conditional Market and Conditional Limit orders. This allows traders to set an additional trigger price condition on either market or limit orders. * **Conditional Market Order:** Unlike market orders, you can set a trigger price with conditional market orders. Once the trigger price is reached, the conditional market order will be filled immediately. * **Conditional Limit Order:** For a conditional limit order, you need to set two prices: a trigger price and a limit price. When the trigger price meets the last traded price, the order is submitted to the order book to await execution. The order is executed when the limit price, the maximum or minimum price at which you are willing to buy or sell contracts, is reached. [PreviousFunding Feeschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/funding-fees) [NextTake Profit & Stop Losschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/take-profit-and-stop-loss) Last updated 1 year ago --- # TradingView | edgeX Docs edgeX is excited to announce its integration with TradingView, bringing more advanced charts and technical analysis tools to our users. Through this collaboration, users will be able to access: 1. **Real-Time Market Analysis** Leverage TradingView’s professional candlestick charts and technical indicators to effortlessly track cryptocurrency price movements and refine trading strategies. For instance, by utilizing the [BTC/USDarrow-up-right](https://www.tradingview.com/symbols/BTCUSD/) price trend chart, users can gain a clear understanding of price fluctuations and the market dynamics of various cryptocurrencies, aiding them in making informed strategic trading decisions. 1. **Backtesting Functionality** Simulate trading decisions using historical data, enabling users to refine strategies and enhance their investment returns. 1. **Seamless Experience** In the future, users will have the capability to directly utilize TradingView tools within the edgeX interface, eliminating the need to switch between platforms, thus making operations more efficient and convenient. This successful integration with TradingView allows edgeX to offer even smarter and more convenient trading support to its users.With the integration of TradingView, edgeX is committed to providing a better trading experience, helping users trade more efficiently. [PreviousLiquidation Logicchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/trading/liquidation-logic) [NextStock Perpetualchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/trading/stock-perpetual) Last updated 1 month ago --- # Private API | edgeX Docs [Account APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/account-api) [Asset APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api) [Order APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/order-api) [Transfer APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/transfer-api) [Withdraw APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api) [PreviousFunding APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api) [NextAccount APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/account-api) Last updated 1 year ago --- # Deposits | edgeX Docs **Ethereum Deposits:** After connecting their wallet to edgeX, users can deposit USDT into their account by sending a transaction to the Ethereum mainnet. After the deposit transaction is mined, it typically requires approximately 15 confirmations (around 5 minutes) on the Ethereum network for the funds to become available for trading on edgeX. **Non-Ethereum Deposits:** edgeX has built multiple asset pools on different chains. When users deposit assets from a non-Ethereum chain, edgeX transfers an equivalent amount of assets to the user's L2 account through the corresponding asset pool on the respective chain. For USDT deposits from a non-Ethereum chain, edgeX transfers the equivalent amount to the user's L2 account through its asset pool. \*Kindly note that Ethereum deposits are processed instantly, regardless of the amount. However, for large one-time deposits (over $300K) on non-Ethereum chains, fund rebalancing between L1 and L2 may take up to 2 hours before the deposit is viewable on edgeX. **Deposit Fees:** Users are only responsible for the gas fees associated with the corresponding blockchain when making a deposit. Our platform does not charge any deposit fees. **Quick Guide:** For Wallet Users: 1: After connecting your wallet, click "Deposit." 2: Directly enter the amount to be deposited ➡️ First-time deposit requires USDT Approval ➡️ Approve in the wallet pop-up page 3: After approval, click "Deposit" ➡️ Complete the deposit. For MPC Account Users: Copy the created address and deposit from a centralized exchange account to the copied address via the **Arbitrum chain,** or use another wallet address to deposit through the **Arbitrum chain.** [PreviousDeposits and Withdrawalschevron-left](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals) [NextWithdrawalschevron-right](https://edgex-1.gitbook.io/edgeX-documentation/getting-started/deposits-and-withdrawals/withdrawals) Last updated 1 year ago --- # Funding API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#fundingpublicapi) FundingPublicApi --------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#get-get-latest-funding-rate-by-contract-id) GET Get Latest Funding Rate by Contract ID GET /api/v1/public/funding/getLatestFundingRate #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#request-parameters) Request Parameters Name Location Type Required Description contractId query string No Contract ID > Example Response > 200 Response Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "fundingTime": "1734595200000",\ "fundingTimestamp": "1734597720000",\ "oraclePrice": "101559.9220921285450458526611328125",\ "indexPrice": "101522.558968500",\ "fundingRate": "-0.00005537",\ "isSettlement": false,\ "forecastFundingRate": "-0.00012293",\ "previousFundingRate": "0.00000567",\ "previousFundingTimestamp": "1734595140000",\ "premiumIndex": "-0.00036207",\ "avgPremiumIndex": "-0.00032293",\ "premiumIndexTimestamp": "1734597720000",\ "impactMarginNotional": "100",\ "impactAskPrice": "101485.8",\ "impactBidPrice": "101484.7",\ "interestRate": "0.0003",\ "predictedFundingRate": "0.00005000",\ "fundingRateIntervalMin": "240",\ "starkExFundingIndex": "101559.9220921285450458526611328125"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734597737870", "responseTime": "1734597737873", "traceId": "5e27ebfb0ae79f51bbd347d2bf3585f9" } #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#response-codes) Response Codes Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemapagedatafundingrate%3E) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#get-get-funding-rate-history-by-contract-id-with-pagination) GET Get Funding Rate History by Contract ID with Pagination GET /api/v1/public/funding/getFundingRatePage #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#request-parameters-1) Request Parameters Name Location Type Required Description contractId query string No Contract ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100 offsetData query string No Pagination offset. If not provided or empty, retrieves the first page filterSettlementFundingRate query string No If true, only query settlement funding rates (funding rate settlement occurs every 8 hours, with a predicted funding rate calculated every minute) filterBeginTimeInclusive query string No Start time. If not provided, retrieves the oldest data filterEndTimeExclusive query string No End time. If not provided, retrieves the latest data > Example Response > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#response-codes-1) Response Codes Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#pagedatafundingrate%3E) [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#data-models) Data Models ----------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#pagedatafundingrate) pagedatafundingrate Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise indicates failure data [PageDataFundingRate](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemapagedatafundingrate) false none General pagination response errorParam object false none Parameter information in the error message requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemapagedatafundingrate) schemapagedatafundingrate Name Type Required Constraints Description dataList \[[FundingRate](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemafundingrate)\ \] false none Data list nextPageOffsetData string false none Offset data to retrieve the next page. Empty string if there is no next page #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#listfundingrate) listfundingrate Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, otherwise indicates failure data \[[FundingRate](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemafundingrate)\ \] false none Successful response data errorParam object false none Parameter information in the error message requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#schemafundingrate) schemafundingrate Name Type Required Constraints Description contractId string(int64) false none Contract ID fundingTime string(int64) false none Funding rate settlement time. E.g., the funding rate for the 08:00-09:00 period is calculated from the previous 07:00-08:00 data, finalized at 08:00, and used for settlement at 09:00 fundingTimestamp string(int64) false none Funding rate calculation time in milliseconds oraclePrice string false none Oracle price indexPrice string false none Index price fundingRate string false none Funding rate isSettlement boolean false none Funding rate settlement flag forecastFundingRate string false none Forecast funding rate previousFundingRate string false none Previous funding rate previousFundingTimestamp string(int64) false none Previous funding rate calculation time in milliseconds premiumIndex string false none Premium index avgPremiumIndex string false none Average premium index premiumIndexTimestamp string false none Premium index calculation time impactMarginNotional string false none Quantity required for deep weighted buy/sell price calculation impactAskPrice string false none Deep weighted ask price impactBidPrice string false none Deep weighted bid price interestRate string false none Fixed interest rate predictedFundingRate string false none Comprehensive interest rate (interestRate/frequency) fundingRateIntervalMin string(int64) false none Funding rate time interval in minutes starkExFundingIndex string false none StarkEx funding index [PreviousQuote APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api) [NextPrivate APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api) Last updated 1 year ago * [FundingPublicApi](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#fundingpublicapi) * [GET Get Latest Funding Rate by Contract ID](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#get-get-latest-funding-rate-by-contract-id) * [GET Get Funding Rate History by Contract ID with Pagination](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#get-get-funding-rate-history-by-contract-id-with-pagination) * [Data Models](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api#data-models) Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "contractId": "10000001",\ "fundingTime": "1733702400000",\ "fundingTimestamp": "1733702400000",\ "oraclePrice": "101120.888977311551570892333984375",\ "indexPrice": "101121.681521500",\ "fundingRate": "0.00005000",\ "isSettlement": true,\ "forecastFundingRate": "",\ "previousFundingRate": "0.00005000",\ "previousFundingTimestamp": "1733702340000",\ "premiumIndex": "0.00022566",\ "avgPremiumIndex": "0.00017953",\ "premiumIndexTimestamp": "1733702400000",\ "impactMarginNotional": "500",\ "impactAskPrice": "101269.6",\ "impactBidPrice": "101269.1",\ "interestRate": "0.0003",\ "predictedFundingRate": "0.00005000",\ "fundingRateIntervalMin": "240",\ "starkExFundingIndex": "101120.888977311551570892333984375"\ }\ ], "nextPageOffsetData": "0880A08A97B532" }, "msg": null, "errorParam": null, "requestTime": "1734597585432", "responseTime": "1734597586672", "traceId": "02465a59be5d19088ba7e4b5c6b94f6d" } --- # Meta Data API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#metadatapublicapi) MetaDataPublicApi ------------------------------------------------------------------------------------------------------------------------------ ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#get-server-time) GET Server Time GET /api/v1/public/meta/getServerTime > Example Response > 200 Response Copy { "code": "SUCCESS", "data": { "timeMillis": "1734596189305" }, "msg": null, "errorParam": null, "requestTime": "1734596189305", "responseTime": "1734596189305", "traceId": "a69e6ec51701d7246cb344a719c99cbf" } #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#response-body) Response Body Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#getservertime) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#get-meta-data) GET Meta Data GET /api/v1/public/meta/getMetaData > Example Response > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#response-body-1) Response Body Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#MetadataResult) [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------ #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#metadataresult) MetadataResult Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, others for failure. data [MetaData](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemametadata) false none Global metadata errorParam object false none Parameter information in error message requestTime string(timestamp) false none Server request receiving time responseTime string(timestamp) false none Server response returning time traceId string false none Call traceId #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemametadata) schemametadata Name Type Required Constraints Description global [Global](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemaglobal) false none Global meta information coinList \[[Coin](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemacoin)\ \] false none All coin meta information contractList \[[Contract](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemacontract)\ \] false none All contract meta information multiChain [MultiChain](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemamultichain) false none Cross-chain withdrawal related class #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemamultichain) schemamultichain Name Type Required Constraints Description coinId string(int64) false none Asset id for deposit and withdrawal maxWithdraw string false none Maximum withdrawal amount minWithdraw string false none Minimum withdrawal amount minDeposit string false none Minimum deposit amount chainList \[[Chain](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemachain)\ \] false none Supported chains #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemachain) schemachain Name Type Required Constraints Description chain string false none Main chain name chainId string(int64) false none chainId chainIconUrl string false none Main chain icon url contractAddress string false none Contract address depositGasFeeLess boolean false none Whether to charge deposit fee feeLess boolean false none Whether to exempt from fees feeRate string false none Fee rate gasLess boolean false none Whether to charge gas fee gasToken string false none Main chain token name minFee string false none Minimum withdrawal fee. If gas + value\*fee\_rate is less than min\_fee, it will be charged according to min\_fee rpcUrl string false none Online node service of the chain webTxUrl string false none Transaction tx link withdrawGasFeeLess boolean false none Whether to charge withdrawal fee tokenList \[[MultiChainToken](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemamultichaintoken)\ \] false none Collection of cross-chain related token information txConfirm string(int64) false none Number of confirmations for on-chain deposit blockTime string false none Block time appRpcUrl string false none none #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemamultichaintoken) schemamultichaintoken Name Type Required Constraints Description tokenAddress string false none Token contract address decimals string(int64) false none Token precision iconUrl string false none Token icon url token string false none Token name pullOff boolean false none Whether to delist, default is false withdrawEnable boolean false none Whether to support withdrawal of this type of asset useFixedRate boolean false none Whether to use a fixed exchange rate fixedRate string false none Fixed exchange rate #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemacontract) schemacontract Name Type Required Constraints Description contractId string(int64) false none Perpetual contract pair identifier contractName string false none Perpetual contract pair name baseCoinId string(int64) false none e.g., 10000001 (BTC) quoteCoinId string(int64) false none e.g., 1001 (USD/USDT) tickSize string(decimal) false none Minimum price increment (quoteCoinId) stepSize string(decimal) false none Minimum quantity increment (baseCoinId) minOrderSize string(decimal) false none Minimum order quantity (baseCoinId) maxOrderSize string(decimal) false none Maximum order quantity (baseCoinId) maxOrderBuyPriceRatio string(decimal) false none Maximum limit buy order price ratio (compared to oracle price), decimal (quote\_coin\_id) minOrderSellPriceRatio string(decimal) false none Minimum limit sell order price ratio (compared to oracle price), decimal (quote\_coin\_id) maxPositionSize string(decimal) false none Maximum position quantity (baseCoinId) riskTierList \[[RiskTier](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemarisktier)\ \] false none List of risk limit tiers defaultTakerFeeRate string(decimal) false none Default taker fee rate for the contract defaultMakerFeeRate string(decimal) false none Default maker fee rate for the contract defaultLeverage string(decimal) false none Initial default leverage multiplier when user has not set a trading leverage liquidateFeeRate string(decimal) false none Liquidation fee rate enableTrade boolean false none Whether trading is allowed. true: allowed, false: not allowed enableDisplay boolean false none Whether to display. true: display, false: hide enableOpenPosition boolean false none Whether opening positions is allowed. true: allowed to open and close, false: only allowed to close positions fundingInterestRate string(decimal) false none Default value of overall interest rate, e.g., 0.0003 fundingImpactMarginNotional string(decimal) false none Quantity for calculating depth-weighted bid/ask price, e.g., 8000 fundingMaxRate string(decimal) false none Maximum funding rate, e.g., 0.000234 fundingMinRate string(decimal) false none Minimum funding rate, e.g., -0.000234 fundingRateIntervalMin string(decimal) false none Settlement interval of funding rate (in minutes, must be an integer multiple of 60 minutes, settlement starts from 00:00 UTC) decimal displayDigitMerge string(decimal) false none Depth merge. e.g., "1,0.1,0.001" displayMaxLeverage string(decimal) false none Maximum leverage multiplier to display, decimal. e.g., 20 displayMinLeverage string(decimal) false none Minimum leverage multiplier to display, decimal. e.g., 1 displayNewIcon boolean false none Whether it is a newly listed pair displayHotIcon boolean false none Whether it is a hot pair matchServerName string false none Matching service name, e.g., xxx-match-server-a. This value cannot be changed once configured, otherwise data migration is required. starkExSyntheticAssetId string(int64) false none Synthetic asset id of the current pair, bigint for hex str. starkExResolution string(int64) false none Processing precision of the quantity held by the current pair, bigint for hex str starkExOraclePriceQuorum string(int64) false none Legal number of oracle prices, bigint for hex str starkExOraclePriceSignedAssetId \[string\] false none bigint for hex str starkExOraclePriceSigner \[string\] false none bigint for hex str #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemarisktier) schemarisktier Name Type Required Constraints Description tier integer(int32) false none Tier, starting from 1 positionValueUpperBound string(decimal) false none Upper limit of position value for the tier (inclusive) maxLeverage string(decimal) false none Maximum available leverage for the tier maintenanceMarginRate string(decimal) false none Maintenance margin rate for the tier (only for display, the actual maintenance margin rate used is stark\_ex\_risk / 2^32 as an accurate maintenance margin rate), decimal starkExRisk string(int64) false none 1 ≤ risk < 2^32 starkExUpperBound string(int64) false none bigint. 0 ≤ upper\_bound ≤ 2^128-1 #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemacoin) schemacoin Name Type Required Constraints Description coinId string(int64) false none Coin id coinName string false none Coin name stepSize string(decimal) false none Minimum quantity unit showStepSize string(decimal) false none Minimum unit displayed to the user iconUrl string(url) false none Coin icon url starkExAssetId string(int64) false none starkex asset id. If empty, it means it does not exist starkExResolution string false none starkex processing precision. If empty, it means it does not exist #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemaglobal) schemaglobal Name Type Required Constraints Description appName string false none xxx appEnv string false none dev/testnet/mainnet appOnlySignOn string false none https://xxx.exchange feeAccountId string(int64) false none Fee account id feeAccountL2Key string false none Fee account l2Key, bigint for hex str poolAccountId string(int64) false none Asset pool account id poolAccountL2Key string false none Asset pool account l2Key, bigint for hex str fastWithdrawAccountId string(int64) false none Fast withdrawal account id fastWithdrawAccountL2Key string false none Fast withdrawal account l2Key, bigint for hex str fastWithdrawMaxAmount string false none Maximum amount for fast withdrawal fastWithdrawRegistryAddress string false none Fast withdrawal account address starkExChainId string false none Chain id of starkex. bigint for hex str starkExContractAddress string false none starkex contract address. starkExCollateralCoin [Coin](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemacoin) false none Coin meta information starkExMaxFundingRate integer(int32) false none Maximum funding rate per second after starkex precision processing. i.e. stark\_ex\_max\_funding\_rate \* 2^32 is the actual maximum funding rate per second. E.g.: 1120 starkExOrdersTreeHeight integer(int32) false none Order merkle tree height. E.g.: 64 starkExPositionsTreeHeight integer(int32) false none Account merkle tree height. E.g.: 64 starkExFundingValidityPeriod integer(int32) false none Funding rate submission validity period in seconds. E.g.: 86400 starkExPriceValidityPeriod integer(int32) false none Oracle price submission validity period in seconds. E.g.: 86400 maintenanceReason string false none Maintenance reason, empty if no maintenance #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#getservertime) getservertime Name Type Required Constraints Description code string false none Status code. "SUCCESS" for success, others for failure. data [GetServerTime](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemagetservertime) false none Server time errorParam object false none Parameter information in error message requestTime string(timestamp) false none Server request receiving time responseTime string(timestamp) false none Server response returning time traceId string false none Call traceId #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#schemagetservertime) schemagetservertime Name Type Required Constraints Description timeMillis string(int64) false none Server timestamp, milliseconds [PreviousPublic APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api) [NextQuote APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api) Last updated 1 year ago * [MetaDataPublicApi](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#metadatapublicapi) * [GET Server Time](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#get-server-time) * [GET Meta Data](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#get-meta-data) * [Data Models](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api#data-models) Copy { "code": "SUCCESS", "data": { "global": { "appName": "edgeX", "appEnv": "testnet", "appOnlySignOn": "https://testnet.edgex.exchange", "feeAccountId": "123456", "feeAccountL2Key": "0x1e240", "poolAccountId": "542076087396467085", "poolAccountL2Key": "0x3bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "fastWithdrawAccountId": "542076087396467085", "fastWithdrawAccountL2Key": "0x3bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "fastWithdrawMaxAmount": "100000", "fastWithdrawRegistryAddress": "0xb2846943C2EdA3830Fb784d2a6de93435267b11D", "starkExChainId": "0xaa36a7", "starkExContractAddress": "0xa3Cb2622C532e46c4376FAd4AbFDf9eDC717BABf", "starkExCollateralCoin": { "coinId": "1000", "coinName": "USDT", "stepSize": "0.000001", "showStepSize": "0.0001", "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg", "starkExAssetId": "0x33bda5c923bae4e84825b74762d5482889b9512465fbffc50d1ae4b82e345c3", "starkExResolution": "0xf4240" }, "starkExMaxFundingRate": 1120, "starkExOrdersTreeHeight": 64, "starkExPositionsTreeHeight": 64, "starkExFundingValidityPeriod": 604800, "starkExPriceValidityPeriod": 31536000, "maintenanceReason": "" }, "coinList": [\ {\ "coinId": "1000",\ "coinName": "USDT",\ "stepSize": "0.000001",\ "showStepSize": "0.0001",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "starkExAssetId": "0x33bda5c923bae4e84825b74762d5482889b9512465fbffc50d1ae4b82e345c3",\ "starkExResolution": "0xf4240"\ },\ {\ "coinId": "1001",\ "coinName": "BTC",\ "stepSize": "0.001",\ "showStepSize": "0.001",\ "iconUrl": "https://static.edgex.exchange/icons/coin/BTC.svg",\ "starkExAssetId": null,\ "starkExResolution": null\ }\ ], "contractList": [\ {\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "baseCoinId": "1001",\ "quoteCoinId": "1000",\ "tickSize": "0.1",\ "stepSize": "0.001",\ "minOrderSize": "0.001",\ "maxOrderSize": "50.000",\ "maxOrderBuyPriceRatio": "0.05",\ "minOrderSellPriceRatio": "0.05",\ "maxPositionSize": "60.000",\ "riskTierList": [\ {\ "tier": 1,\ "positionValueUpperBound": "50000",\ "maxLeverage": "100",\ "maintenanceMarginRate": "0.005",\ "starkExRisk": "21474837",\ "starkExUpperBound": "214748364800000000000"\ },\ {\ "tier": 22,\ "positionValueUpperBound": "79228162514264337593543",\ "maxLeverage": "6",\ "maintenanceMarginRate": "0.105",\ "starkExRisk": "450971567",\ "starkExUpperBound": "340282366920938463463374607431768211455"\ }\ ],\ "defaultTakerFeeRate": "0.00055",\ "defaultMakerFeeRate": "0.0002",\ "defaultLeverage": "50",\ "liquidateFeeRate": "0.01",\ "enableTrade": true,\ "enableDisplay": true,\ "enableOpenPosition": true,\ "fundingInterestRate": "0.0003",\ "fundingImpactMarginNotional": "10",\ "fundingMaxRate": "0.000234",\ "fundingMinRate": "-0.000234",\ "fundingRateIntervalMin": "240",\ "displayDigitMerge": "0.1,0.5,1,2,5",\ "displayMaxLeverage": "50",\ "displayMinLeverage": "1",\ "displayNewIcon": false,\ "displayHotIcon": true,\ "matchServerName": "edgex-match-server",\ "starkExSyntheticAssetId": "0x425443322d31300000000000000000",\ "starkExResolution": "0x2540be400",\ "starkExOraclePriceQuorum": "0x1",\ "starkExOraclePriceSignedAssetId": [\ "0x425443555344000000000000000000004d616b6572",\ "0x425443555344000000000000000000005374437277",\ "0x4254435553440000000000000000000053746f726b",\ "0x425443555344000000000000000000004465787472",\ "0x4254435553440000000000000000000053744b6169"\ ],\ "starkExOraclePriceSigner": [\ "0x28253746dcd68a62df58cda44db2613ab11c8d17deb036feaec5ece1f8a16c1",\ "0x41dbe627aeab66504b837b3abd88ae2f58ba6d98ee7bbd7f226c4684d9e6225",\ "0xcc85afe4ca87f9628370c432c447e569a01dc96d160015c8039959db8521c4",\ "0x2af704df5467285c5d1bd7c08ee33c49057fb2a05ecdc4f949293190f28ce7e",\ "0x63f0f8507cc674ff668985a1ea854d3b73835a8181bfbb4564ae422bf68a2c0"\ ]\ },\ {\ "contractId": "10000002",\ "contractName": "ETHUSDT",\ "baseCoinId": "1002",\ "quoteCoinId": "1000",\ "tickSize": "0.01",\ "stepSize": "0.01",\ "minOrderSize": "0.01",\ "maxOrderSize": "500.00",\ "maxOrderBuyPriceRatio": "0.05",\ "minOrderSellPriceRatio": "0.05",\ "maxPositionSize": "800.00",\ "riskTierList": [\ {\ "tier": 1,\ "positionValueUpperBound": "50000",\ "maxLeverage": "100",\ "maintenanceMarginRate": "0.005",\ "starkExRisk": "21474837",\ "starkExUpperBound": "214748364800000000000"\ },\ {\ "tier": 22,\ "positionValueUpperBound": "79228162514264337593543",\ "maxLeverage": "6",\ "maintenanceMarginRate": "0.105",\ "starkExRisk": "450971567",\ "starkExUpperBound": "340282366920938463463374607431768211455"\ }\ ],\ "defaultTakerFeeRate": "0.00055",\ "defaultMakerFeeRate": "0.0002",\ "defaultLeverage": "50",\ "liquidateFeeRate": "0.01",\ "enableTrade": true,\ "enableDisplay": true,\ "enableOpenPosition": true,\ "fundingInterestRate": "0.0003",\ "fundingImpactMarginNotional": "100",\ "fundingMaxRate": "0.000234",\ "fundingMinRate": "-0.000234",\ "fundingRateIntervalMin": "240",\ "displayDigitMerge": "0.01,0.02,0.04,0.1,0.2",\ "displayMaxLeverage": "50",\ "displayMinLeverage": "1",\ "displayNewIcon": true,\ "displayHotIcon": false,\ "matchServerName": "edgex-match-server",\ "starkExSyntheticAssetId": "0x4554482d3900000000000000000000",\ "starkExResolution": "0x3b9aca00",\ "starkExOraclePriceQuorum": "0x1",\ "starkExOraclePriceSignedAssetId": [\ "0x455448555344000000000000000000004d616b6572",\ "0x455448555344000000000000000000005374437277",\ "0x4554485553440000000000000000000053746f726b",\ "0x455448555344000000000000000000004465787472",\ "0x4554485553440000000000000000000053744b6169"\ ],\ "starkExOraclePriceSigner": [\ "0x28253746dcd68a62df58cda44db2613ab11c8d17deb036feaec5ece1f8a16c1",\ "0x41dbe627aeab66504b837b3abd88ae2f58ba6d98ee7bbd7f226c4684d9e6225",\ "0xcc85afe4ca87f9628370c432c447e569a01dc96d160015c8039959db8521c4",\ "0x2af704df5467285c5d1bd7c08ee33c49057fb2a05ecdc4f949293190f28ce7e",\ "0x63f0f8507cc674ff668985a1ea854d3b73835a8181bfbb4564ae422bf68a2c0"\ ]\ }\ ], "multiChain": { "coinId": "1000", "maxWithdraw": "100000", "minWithdraw": "0", "minDeposit": "10", "chainList": [\ {\ "chain": "Sepolia - Testnet",\ "chainId": "11155111",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xC820e27D4821071129D4fB04CcD9ae8a370373bc",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "ETH",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/eth-sepolia",\ "webTxUrl": "https://sepolia.etherscan.io/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0xd98B590ebE0a3eD8C144170bA4122D402182976f",\ "decimals": "6",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "12",\ "allowAaDeposit": true,\ "allowAaWithdraw": false,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/eth-sepolia"\ },\ {\ "chain": "BNB - Testnet",\ "chainId": "97",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xBe8dCAE2b5E58BdEe4695F7f366fF0A8B0A414D1",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "BSC",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/bsc-testnet",\ "webTxUrl": "https://testnet.bscscan.com/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0xda6c748A7593826e410183F05893dbB363D025a1",\ "decimals": "6",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "3",\ "allowAaDeposit": false,\ "allowAaWithdraw": false,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/bsc-testnet"\ },\ {\ "chain": "Arbitrum - Testnet",\ "chainId": "421614",\ "chainIconUrl": "https://static.edgex.exchange/icons/chain/sepolia.svg",\ "contractAddress": "0xeeA926DB072E839063321776ddAdaddeECdF9718",\ "depositGasFeeLess": false,\ "feeLess": false,\ "feeRate": "0.0001",\ "gasLess": false,\ "gasToken": "ETH",\ "minFee": "2",\ "rpcUrl": "https://rpc.edgex.exchange/RMZZpeTnB6hjfcm8xNNyo6cKa9Zn4qgB/arbitrum-sepolia",\ "webTxUrl": "https://sepolia.arbiscan.io/tx/",\ "withdrawGasFeeLess": false,\ "tokenList": [\ {\ "tokenAddress": "0x608babb39bb03C038b8DABc3D4bF4e0D02d455Cd",\ "decimals": "18",\ "iconUrl": "https://static.edgex.exchange/icons/coin/USDT.svg",\ "token": "USDT",\ "pullOff": false,\ "withdrawEnable": true,\ "useFixedRate": false,\ "fixedRate": ""\ }\ ],\ "txConfirm": "10",\ "blockTime": "3",\ "allowAaDeposit": true,\ "allowAaWithdraw": true,\ "appRpcUrl": "https://rpc.edgex.exchange/GujYf2XWDvzXDpQdXno92DGRhfy7HuLK/arbitrum-sepolia"\ }\ ] } }, "msg": null, "errorParam": null, "requestTime": "1734595526342", "responseTime": "1734595526343", "traceId": "1ee9b62c30925f0df6bd6c8604f32df4" } --- # Quote API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#quotepublicapi) QuotePublicApi --------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-get-quote-summary) GET Get Quote Summary GET /api/v1/public/quote/getTicketSummary #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters) Request Parameters Name Location Type Required Description period query string No Summary period > Response Example > 200 Response Copy { "code": "SUCCESS", "data": { "tickerSummary": { "period": "LAST_DAY_1", "trades": "31450", "value": "201048203.7979", "openInterest": "13.565" } }, "msg": null, "errorParam": null, "requestTime": "1734596957000", "responseTime": "1734596957003", "traceId": "574a8b43497ebd0bca55d0b257d034fa" } #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#gettickersummarymodel) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-24-hour-quotes) GET Query 24-Hour Quotes GET /api/v1/public/quote/getTicker #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters-1) Request Parameters Name Location Type Required Description contractId query string No Contract ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-1) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistticker) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-multi-contract-quantitative-k-line) GET Query Multi-Contract Quantitative K-Line GET /api/v1/public/quote/getMultiContractKline #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters-2) Request Parameters Name Location Type Required Description contractIdList query string No Collection of Contract IDs priceType query string No Price type klineType query string No K-line type size query string No Number to retrieve. Must be greater than 0 and less than or equal to 200 filterBeginKlineTimeInclusive query string No Query start time (if 0, means from current time). Returns in descending order by time filterEndKlineTimeExclusive query string No Query end time > Request Example > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-2) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistcontractkline) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-data-structure) Response Data Structure ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-k-line) GET Query K-Line GET /api/v1/public/quote/getKline #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters-3) Request Parameters Name Location Type Required Description contractId query string No Contract ID priceType query string No Price type klineType query string No K-line type size query string No Number to retrieve. Must be greater than 0 and less than or equal to 1000 offsetData query string No Pagination offset. If empty, get the first page filterBeginKlineTimeInclusive query string No Query start time (if 0, means from current time). Returns in descending order by time filterEndKlineTimeExclusive query string No Query end time > Request Example > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-3) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultpagedatakline) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-get-exchange-long-short-ratio) GET Get Exchange Long Short Ratio GET /api/v1/public/quote/getExchangeLongShortRatio #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters-4) Request Parameters Name Location Type Required Description range query string No If empty, return data with the smallest range filterContractIdList query string No If empty, return data for all contracts filterExchangeList query string No If empty, return data for all exchanges > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-4) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#gettickersummarymodel) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-order-book-depth) GET Query Order Book Depth GET /api/v1/public/quote/getDepth #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#request-parameters-5) Request Parameters Name Location Type Required Description contractId query string No Contract ID level query string No Depth level. Currently 15 and 200 levels available > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-5) Response Status Code Status Code Meaning Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistdepth) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#response-data-structure-1) Response Data Structure [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#data-models) Data Models --------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistdepth) schemaresultlistdepth Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[Depth](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemadepth)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemadepth) schemadepth Name Type Required Constraints Chinese Name Description startVersion string(int64) false none Start order book version number endVersion string(int64) false none End order book version number level integer(int32) false none Depth level contractId string(int64) false none Contract ID contractName string false none Contract name asks \[[BookOrder](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemabookorder)\ \] false none Ask list bids \[[BookOrder](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemabookorder)\ \] false none Bid list depthType string false none Depth type **Enum Values** Property Value depthType UNKNOWN\_DEPTH\_TYPE depthType SNAPSHOT depthType CHANGED depthType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemabookorder) schemabookorder Name Type Required Constraints Chinese Name Description price string(decimal) false none Price size string(decimal) false none Quantity #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultpagedatakline) schemaresultpagedatakline Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data [PageDataKline](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemapagedatakline) false none Generic paginated response errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemapagedatakline) schemapagedatakline Name Type Required Constraints Chinese Name Description dataList \[[Kline](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemakline)\ \] false none Data list nextPageOffsetData string false none Offset for the next page. If there is no next page, it's an empty string #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemakline) schemakline Name Type Required Constraints Chinese Name Description klineId string(int64) false none K-Line ID contractId string(int64) false none Perpetual contract ID contractName string false none Perpetual contract name klineType string false none K-Line type klineTime string(int64) false none K-Line time priceType string false none Price type of the K-line trades string(int64) false none Number of trades size string(decimal) false none Volume value string(decimal) false none Value high string(decimal) false none High price low string(decimal) false none Low price open string(decimal) false none Opening price close string(decimal) false none Closing price makerBuySize string(decimal) false none Maker buy volume makerBuyValue string(decimal) false none Maker buy value **Enum Values** Property Value klineType UNKNOWN\_KLINE\_TYPE klineType MINUTE\_1 klineType MINUTE\_5 klineType MINUTE\_15 klineType MINUTE\_30 klineType HOUR\_1 klineType HOUR\_2 klineType HOUR\_4 klineType HOUR\_6 klineType HOUR\_8 klineType HOUR\_12 klineType DAY\_1 klineType WEEK\_1 klineType MONTH\_1 klineType UNRECOGNIZED priceType UNKNOWN\_PRICE\_TYPE priceType ORACLE\_PRICE priceType INDEX\_PRICE priceType LAST\_PRICE priceType ASK1\_PRICE priceType BID1\_PRICE priceType OPEN\_INTEREST priceType UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistcontractkline) schemaresultlistcontractkline Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[ContractMultiKline](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemacontractmultikline)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemacontractmultikline) schemacontractmultikline Name Type Required Constraints Chinese Name Description contractId string(int64) false none Perpetual contract ID klineList \[[Kline](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemakline)\ \] false none Collection of kline data #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemaresultlistticker) schemaresultlistticker Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data \[[Ticker](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schematicker)\ \] false none Correct response data errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schematicker) schematicker Name Type Required Constraints Chinese Name Description contractId string(int64) false none Contract ID contractName string false none Contract Name priceChange string(decimal) false none Price change priceChangePercent string(decimal) false none Price change percentage trades string(int64) false none 24-hour number of trades size string(decimal) false none 24-hour trading volume value string(decimal) false none 24-hour trading value high string(decimal) false none 24-hour high price low string(decimal) false none 24-hour low price open string(decimal) false none 24-hour opening price close string(decimal) false none 24-hour closing price highTime string(int64) false none 24-hour high price time lowTime string(int64) false none 24-hour low price time startTime string(int64) false none 24-hour quote start time endTime string(int64) false none 24-hour quote end time lastPrice string(decimal) false none Latest trade price indexPrice string(decimal) false none Current index price oraclePrice string(decimal) false none Current oracle price openInterest string(decimal) false none Open Interest fundingRate string false none Current already settled funding rate fundingTime string(int64) false none Funding rate settlement time nextFundingTime string(int64) false none Next funding rate settlement time #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#gettickersummarymodel) gettickersummarymodel Name Type Required Constraints Chinese Name Description code string false none Status code. "SUCCESS" for success, others for failures data [GetTickerSummary](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemagettickersummary) false none Get quote summary response errorParam object false none Parameter information in error messages requestTime string(timestamp) false none Server request reception time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schemagettickersummary) schemagettickersummary Name Type Required Constraints Chinese Name Description tickerSummary [TickerSummary](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schematickersummary) false none Quote summary #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#schematickersummary) schematickersummary Name Type Required Constraints Chinese Name Description period string false none Summary period trades string false none Total exchange number of trades value string false none Total traded value openInterest string false none Current total open interest **Enum Values** Property Value period UNKNOWN\_PERIOD period LAST\_DAY\_1 period LAST\_DAY\_7 period LAST\_DAY\_30 period UNRECOGNIZED [PreviousMeta Data APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/metadata-api) [NextFunding APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/funding-api) Last updated 1 year ago * [QuotePublicApi](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#quotepublicapi) * [GET Get Quote Summary](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-get-quote-summary) * [GET Query 24-Hour Quotes](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-24-hour-quotes) * [GET Query Multi-Contract Quantitative K-Line](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-multi-contract-quantitative-k-line) * [GET Query K-Line](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-k-line) * [GET Get Exchange Long Short Ratio](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-get-exchange-long-short-ratio) * [GET Query Order Book Depth](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#get-query-order-book-depth) * [Data Models](https://edgex-1.gitbook.io/edgeX-documentation/api/public-api/quote-api#data-models) Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "priceChange": "-2270.5",\ "priceChangePercent": "-0.021849",\ "trades": "79372",\ "size": "499.487",\ "value": "50821443.7464",\ "high": "105331.5",\ "low": "98755.0",\ "open": "103913.2",\ "close": "101642.7",\ "highTime": "1734524115631",\ "lowTime": "1734575388228",\ "startTime": "1734510600000",\ "endTime": "1734597000000",\ "lastPrice": "101642.7",\ "indexPrice": "101676.380723500",\ "oraclePrice": "101636.3750002346932888031005859375",\ "openInterest": "0.105",\ "fundingRate": "-0.00012236",\ "fundingTime": "1734595200000",\ "nextFundingTime": "1734609600000"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734597508246", "responseTime": "1734597508250", "traceId": "a49014b0ad76a121193d4717294f85fc" } Copy https://pro.edgex.exchange/api/v1/public/quote/getMultiContractKline?contractIdList=10000001&klineType=HOUR_1&filterBeginKlineTimeInclusive=1733416860000&filterEndKlineTimeExclusive=1734601200000&priceType=LAST_PRICE Copy { "code": "SUCCESS", "data": [\ {\ "contractId": "10000001",\ "klineList": [\ {\ "klineId": "687194849731486048",\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "klineType": "HOUR_1",\ "klineTime": "1734595200000",\ "priceType": "LAST_PRICE",\ "trades": "3123",\ "size": "7.947",\ "value": "807240.1268",\ "high": "101798.4",\ "low": "101326.3",\ "open": "101603.8",\ "close": "101605.6",\ "makerBuySize": "5.222",\ "makerBuyValue": "530431.6634"\ }\ ]\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734601896988", "responseTime": "1734601897009", "traceId": "7edd9609a0c5976c1cb58bdee3d08088" } Copy https://pro.edgex.exchange/api/v1/public/quote/getKline?contractId=10000002&klineType=HOUR_1&filterBeginKlineTimeInclusive=1733416860000&filterEndKlineTimeExclusive=1734601200000&priceType=LAST_PRICE Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "klineId": "687194918450962784",\ "contractId": "10000002",\ "contractName": "ETHUSDT",\ "klineType": "HOUR_1",\ "klineTime": "1734595200000",\ "priceType": "LAST_PRICE",\ "trades": "3142",\ "size": "111.96",\ "value": "412199.6286",\ "high": "3694.59",\ "low": "3667.42",\ "open": "3694.57",\ "close": "3670.42",\ "makerBuySize": "52.21",\ "makerBuyValue": "192147.4907"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734601267556", "responseTime": "1734601267581", "traceId": "72cfd2eeb27fc602aa64990ad84cd8dd" } Copy { "code": "SUCCESS", "data": { "exchangeLongShortRatioList": [\ {\ "range": "30m",\ "contractId": "10000001",\ "exchange": "_total_",\ "buyRatio": "50.9900",\ "sellRatio": "49.0100",\ "buyVolUsd": "567855766.2701",\ "sellVolUsd": "545892952.7900",\ "createdTime": "1734597018839",\ "updatedTime": "1734597018839"\ }\ ], "allRangeList": [\ "30m",\ "1h",\ "4h",\ "12h",\ "24h"\ ] }, "msg": null, "errorParam": null, "requestTime": "1734597836994", "responseTime": "1734597837001", "traceId": "60af97ec1357f9d00da50bada9e4364c" } Copy { "code": "SUCCESS", "data": [\ {\ "startVersion": "201223746",\ "endVersion": "201223747",\ "level": 15,\ "contractId": "10000001",\ "contractName": "BTCUSDT",\ "asks": [\ {\ "price": "101695.9",\ "size": "0.579"\ },\ {\ "price": "101696.0",\ "size": "0.923"\ },\ {\ "price": "101703.0",\ "size": "0.129"\ }\ ],\ "bids": [\ {\ "price": "101695.5",\ "size": "1.710"\ },\ {\ "price": "101694.1",\ "size": "0.189"\ },\ {\ "price": "101692.9",\ "size": "0.223"\ }\ ],\ "depthType": "SNAPSHOT"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734598036434", "responseTime": "1734598036435", "traceId": "99b69f04bac0df6e37961f249b9545e4" } --- # Withdraw API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawprivateapi) WithdrawPrivateApi --------------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-withdraw-id) GET Get Withdrawals By Withdraw ID GET /api/v1/private/withdraw/getWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-parameters) Request Parameters Name Location Type Required Description accountId query string Yes Account ID withdrawIdList query string Yes List of withdraw IDs to retrieve. Used to batch fetch withdraw records by their IDs > Response Example > 200 Response Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawlist) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-client-withdraw-id) GET Get Withdrawals By Client Withdraw ID GET /api/v1/private/withdraw/getWithdrawByClientWithdrawId #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-parameters-1) Request Parameters Name Location Type Required Description accountId query string Yes Account ID clientWithdrawIdList query string Yes List of client-defined withdraw IDs. Used to batch fetch withdraw records by client-specified IDs > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawlist) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-active-withdrawals-with-pagination) GET Get Active Withdrawals with Pagination GET /api/v1/private/withdraw/getActiveWithdraw #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-parameters-2) Request Parameters Name Location Type Required Description accountId query string Yes Account ID size query string No Number of items to retrieve. Must be greater than 0 and less than or equal to 100. Default: 100 offsetData query string No Pagination offset. If empty or not provided, the first page is retrieved filterCoinIdList query string No Filter withdrawals by specified coin IDs. If not provided, all coin withdrawals are retrieved filterStatusList query string No Filter withdrawals by specified statuses. If not provided, all status withdrawals are retrieved filterStartCreatedTimeInclusive query string No Filter withdrawals created after or at the specified start time (inclusive). If not provided or 0, retrieves records from the earliest time filterEndCreatedTimeExclusive query string No Filter withdrawals created before the specified end time (exclusive). If not provided or 0, retrieves records up to the latest time > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#pagedatawithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdraw-available-amount) GET Get Withdraw Available Amount GET /api/v1/private/withdraw/getWithdrawAvailableAmount #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string Yes Account ID coinId query string Yes Coin ID to check available withdrawal amount > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#getwithdrawavailableamount) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#post-create-withdraw) POST Create Withdraw POST /api/v1/private/withdraw/createWithdraw #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-parameters-4) Request Parameters Name Location Type Required Description accountId body string Yes Account ID coinId body string Yes Currency ID amount body string Yes Withdraw amount (decimal format) ethAddress body string Yes Ethereum address for the withdrawal erc20Address body string Yes ERC20 token contract address clientWithdrawId body string Yes Client-defined ID for idempotency verification riskSignature body string Yes Risk control signature (128 characters fixed length) l2Nonce body string Yes L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime body string Yes L2 signature expiration time in milliseconds. For signature generation/verification, use hours: l2\_expire\_time / 3600000 l2Signature body string Yes L2 signature submitted (128 characters fixed length) extraType body string Yes Additional type for upper-layer business use extraDataJson body string No Extra data in JSON format, defaults to empty string #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#request-body-schema) Request Body Schema > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#createwithdraw) [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#data-models) Data Models ------------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawlist) WithdrawList Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [WithdrawModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawmodel) \[\] false none Withdraw List Array of withdraw records errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#pagedatawithdraw) PageDataWithdraw Name Type Required Constraints Description Notes dataList [WithdrawModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawmodel) \[\] false none Data List Array of withdraw records nextPageOffsetData string false none Next Page Offset Offset for retrieving the next page. If no next page data, empty string. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawmodel) WithdrawModel Name Type Required Constraints Description Notes id string(int64) false none Withdraw ID Unique identifier for the withdraw record userId string(int64) false none User ID ID of the owning user accountId string(int64) false none Account ID ID of the owning account coinId string(int64) false none Coin ID ID of the collateral coin amount string false none Withdraw Amount Amount of the withdrawal ethAddress string false none Ethereum Address Ethereum address for the withdrawal erc20Address string false none ERC20 Contract Address Contract address of the withdrawn token clientWithdrawId string false none Client Withdraw ID Client-defined ID for idempotency verification riskSignature [L2SignatureModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#l2signaturemodel) false none Risk Signature Risk control signature l2Nonce string(int64) false none L2 Nonce L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 Expire Time L2 signature expiration time in milliseconds l2Signature [L2SignatureModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#l2signaturemodel) false none L2 Signature L2 signature submitted extraType string false none Extra Type Additional type for upper-layer business use extraDataJson string false none Extra Data JSON Extra data in JSON format status string false none Withdraw Status Current status of the withdrawal collateralTransactionId string(int64) false none Collateral Transaction ID Associated collateral transaction ID when status is SUCCESS\_XXX/FAILED\_L2\_REJECT/FAILED\_L2\_REJECT\_APPROVED censorTxId string(int64) false none Censor Transaction ID Censorship processing sequence number when status is SUCCESS\_XXX/FAILED\_XXX censorTime string(int64) false none Censor Time Censorship processing time when status is SUCCESS\_XXX/FAILED\_XXX censorFailCode string false none Censor Fail Code Censorship failure code censorFailReason string false none Censor Fail Reason Censorship failure reason l2TxId string(int64) false none L2 Transaction ID Layer 2 transaction ID l2RejectTime string(int64) false none L2 Reject Time Layer 2 rejection time l2RejectCode string false none L2 Reject Code Layer 2 rejection code l2RejectReason string false none L2 Reject Reason Layer 2 rejection reason l2ApprovedTime string(int64) false none L2 Approved Time Layer 2 approval time createdTime string(int64) false none Created Time Record creation time updatedTime string(int64) false none Updated Time Record last update time #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#l2signaturemodel) L2SignatureModel Name Type Required Constraints Description Notes r string false none Signature R Component Bigint represented as hex string s string false none Signature S Component Bigint represented as hex string v string false none Signature V Component Bigint represented as hex string #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#getwithdrawavailableamount) GetWithdrawAvailableAmount Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [GetWithdrawAvailableAmountModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#getwithdrawavailableamountmodel) false none Available Amount Response Response data for available withdrawal amount errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#getwithdrawavailableamountmodel) GetWithdrawAvailableAmountModel Name Type Required Constraints Description Notes availableAmount string false none Available Amount Available amount for withdrawal (decimal format) #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#createwithdraw) CreateWithdraw Name Type Required Constraints Description Notes code string false none Status Code Returns "SUCCESS" on success; otherwise, it indicates failure. data [CreateWithdrawModel](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#createwithdrawmodel) false none Create Withdraw Response Response data for withdraw creation errorParam object false none Error Parameters Error message parameter information requestTime string(timestamp) false none Server Request Time Time at which the server received the request responseTime string(timestamp) false none Server Response Time Time at which the server sent the response traceId string false none Trace ID Invocation trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#createwithdrawmodel) CreateWithdrawModel Name Type Required Constraints Description Notes withdrawId string(int64) false none Withdraw ID ID of the created withdraw record [PreviousTransfer APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/transfer-api) [NextWebsocket APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/websocket-api) Last updated 2 months ago * [WithdrawPrivateApi](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#withdrawprivateapi) * [GET Get Withdrawals By Withdraw ID](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-withdraw-id) * [GET Get Withdrawals By Client Withdraw ID](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdrawals-by-client-withdraw-id) * [GET Get Active Withdrawals with Pagination](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-active-withdrawals-with-pagination) * [GET Get Withdraw Available Amount](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#get-get-withdraw-available-amount) * [POST Create Withdraw](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#post-create-withdraw) * [Data Models](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/withdraw-api#data-models) Copy { "code": "SUCCESS", "data": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "id": "563516408235819790",\ "userId": "543429922866069763",\ "accountId": "543429922991899150",\ "coinId": "1000",\ "amount": "10.000000",\ "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "erc20Address": "0x...",\ "clientWithdrawId": "client_withdraw_123",\ "riskSignature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "l2Nonce": "123456789",\ "l2ExpireTime": "1734352781355",\ "l2Signature": {\ "r": "0x...",\ "s": "0x...",\ "v": "0x..."\ },\ "extraType": "",\ "extraDataJson": "",\ "status": "SUCCESS_L2_APPROVED",\ "collateralTransactionId": "563516408265179918",\ "censorTxId": "830852",\ "censorTime": "1734352781355",\ "censorFailCode": "",\ "censorFailReason": "",\ "l2TxId": "1022403",\ "l2RejectTime": "0",\ "l2RejectCode": "",\ "l2RejectReason": "",\ "l2ApprovedTime": "1734353551654",\ "createdTime": "1734352781355",\ "updatedTime": "1734353551715"\ }\ ], "nextPageOffsetData": "" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "code": "SUCCESS", "data": { "availableAmount": "100.000000" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } Copy { "accountId": "543429922991899150", "coinId": "1000", "amount": "10.000000", "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A", "erc20Address": "0x...", "clientWithdrawId": "client_withdraw_123", "riskSignature": "0x...", "l2Nonce": "123456789", "l2ExpireTime": "1734352781355", "l2Signature": "0x...", "extraType": "", "extraDataJson": "" } Copy { "code": "SUCCESS", "data": { "withdrawId": "563516408235819790" }, "msg": null, "errorParam": null, "requestTime": "1734664486740", "responseTime": "1734664486761", "traceId": "b3086f53c2d4503f6a4790b80f0e534b" } --- # Asset API | edgeX Docs [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#assetsprivateapi) AssetsPrivateApi -------------------------------------------------------------------------------------------------------------------------- ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#post-create-normal-withdrawal-order) POST Create Normal Withdrawal Order POST /api/v1/private/assets/createNormalWithdraw > Body Request Parameters Copy { "accountId": "551109015904453258", "coinId": "1000", "amount": "1.000000", "ethAddress": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A", "clientWithdrawId": "745410645654877", "expireTime": "1735887600000", "l2Signature": "007bf80407c6a7bb14f5ca3b848a5d908627993f23b073c902e359a6fa4a6a92040cea4c98e25e35ad1d8cc4e18758c463c45bf451299ce55aa49abbdb916d03" } #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters) Request Parameters Name Location Type Required Description body body [CreateNormalWithdrawParam](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatenormalwithdrawparam) No None > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#createnormalwithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#post-create-cross-chain-withdrawal-order) POST Create Cross-Chain Withdrawal Order POST /api/v1/private/assets/createCrossWithdraw > Body Request Parameters #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-1) Request Parameters Name Location Type Required Description body body [CreateCrossWithdrawParam](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatecrosswithdrawparam) No None > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-1) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultcreatecrosswithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-users-normal-withdrawable-amount) GET User's Normal Withdrawable Amount GET /api/v1/private/assets/getNormalWithdrawableAmount #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-2) Request Parameters Name Location Type Required Description address query string Yes User address > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-2) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultgetnormalwithdrawableamount) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-normal-withdrawal-orders-by-account-id-and-withdrawal-id) GET Get Normal Withdrawal Orders by Account ID and Withdrawal ID GET /api/v1/private/assets/getNormalWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-3) Request Parameters Name Location Type Required Description accountId query string No Account ID normalWithdrawIdList query string No Withdrawal ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-3) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultlistnormalwithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-information-required-for-cross-chain-withdrawal-signature) GET Get Information Required for Cross-Chain Withdrawal Signature GET /api/v1/private/assets/getCrossWithdrawSignInfo #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-4) Request Parameters Name Location Type Required Description chainId query string No Chain ID amount query string No Withdrawal amount > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-4) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultgetcrosswithdrawsigninfo) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-cross-chain-withdrawal-orders-by-account-id-and-withdrawal-id) GET Get Cross-Chain Withdrawal Orders by Account ID and Withdrawal ID GET /api/v1/private/assets/getCrossWithdrawById #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-5) Request Parameters Name Location Type Required Description accountId query string No Account ID crossWithdrawIdList query string No Withdrawal ID > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-5) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultlistcrosswithdraw) ### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-aggregate-query-of-all-deposit-and-withdrawal-order-records) GET Aggregate Query of All Deposit and Withdrawal Order Records GET /api/v1/private/assets/getAllOrdersPage #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#request-parameters-6) Request Parameters Name Location Type Required Description accountId query string No Account ID startTime query string No Start time, Unix time in seconds endTime query string No End time, Unix time in seconds chainId query string No Chain ID typeList query string No Order type list size query string No Number of items per page. Must be > 0 and <= 100. offsetData query string No Offset for page retrieval. If not provided, returns first page > Response Example > 200 Response #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#response-6) Response Status Code Status Code Description Description Data Model 200 [OKarrow-up-right](https://tools.ietf.org/html/rfc7231#section-6.3.1) Default response [Result](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultpagedatassetorder) [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#data-models) Data Models ---------------------------------------------------------------------------------------------------------------- #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultpagedatassetorder) schemaresultpagedatassetorder Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [PageDataAssetOrder](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemapagedataassetorder) false none Generic paginated return errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemapagedataassetorder) schemapagedataassetorder Name Type Required Constraints Description Notes dataList \[[AssetOrder](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaassetorder)\ \] false none List of data nextPageOffsetData string false none Offset for next page Empty string when there are no further pages. #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaassetorder) schemaassetorder Name Type Required Constraints Description Notes orderId string(int64) false none Order ID time string(int64) false none Order creation time type string false none Order type status integer(int32) false none Order status amount string false none Order amount fee string false none Order fee txId string false none Chain tx\_id chain string false none Chain address string false none Address coin string false none Coin chainId string false none Chain ID transferSenderAccountId string false none Transfer out account ID transferReceiverAccountId string false none Transfer in account ID **Enum Values** Property Value type UNKNOWN\_ORDER\_TYPE type ORDER\_TYPE\_NORMAL\_DEPOSIT type ORDER\_TYPE\_CROSS\_DEPOSIT type ORDER\_TYPE\_NORMAL\_WITHDRAW type ORDER\_TYPE\_CROSS\_WITHDRAW type ORDER\_TYPE\_FAST\_WITHDRAW type ORDER\_TYPE\_TRANSFER\_IN type ORDER\_TYPE\_TRANSFER\_OUT type UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultlistcrosswithdraw) schemaresultlistcrosswithdraw Name Type Required Constraints Description Notes code string false none Status code data \[[CrossWithdraw](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacrosswithdraw)\ \] false none Correct response data requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacrosswithdraw) schemacrosswithdraw Name Type Required Constraints Description Notes id string(int64) false none Withdrawal order ID userId string(int64) false none User ID accountId string(int64) false none Account ID coinId string(int64) false none Collateral coin ID amount string false none Withdrawal amount ethAddress string false none ETH address for withdrawal, may differ from the account's ETH address. erc20Address string false none L1 ERC20 contract address for the withdrawn asset lpAccountId string(int64) false none LP account ID for L2 receiving user transfers lpAccountL2Key string(int64) false none L2 key for the receiving account clientCrossWithdrawId string false none Client-defined ID for idempotent checks fee string false none Transaction fee chainId string false none Chain ID for withdrawal l2Nonce string(int64) false none L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 signature expiration time. Unix time in hours, must be at least 24 hours after order creation. l2Signature [L2Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information extraType string false none Additional type for upper-layer business usage extraDataJson string false none Extra data, JSON format, defaults to empty string. status string false none Normal withdrawal order status collateralTransactionId string false none Related collateral detail ID. Exists when status=SUCCESS\_XXX/FAILED\_L2\_REJECTED censorTxId string(int64) false none Censorship processing sequence number. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED censorTime string(int64) false none Censorship processing time. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED censorFailCode string false none Censorship failure error code. Exists when status=FAILED\_CENSOR\_FAILURE censorFailReason string false none Censorship failure reason. Exists when status=FAILED\_CENSOR\_FAILURE l2TxId string(int64) false none L2 transaction ID. Exists when status=SUCCESS\_XXX/FAILED\_CENSOR\_FAILURE/FAILED\_L2\_REJECTED l2HandleTime string(int64) false none L2 processing time. Exists when status=SUCCESS\_L1\_CONFIRMING/SUCCESS\_L1\_WITHDRAWING/SUCCESS\_L1\_COMPLETED/FAILED\_L2\_REJECTED l2RejectCode string false none L2 reject error code. Exists when status=FAILED\_L2\_REJECTED l2RejectReason string false none L2 reject reason. Exists when status=FAILED\_L2\_REJECTED l1ConfirmedTx [L1Tx](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1ConfirmedTime string(int64) false none L1 transaction confirmation time l1CompletedTx [L1Tx](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1CompletedEthAddress string false none L1 withdrawal completion ETH address l1CompletedTime string(int64) false none L1 withdrawal completion time l1RejectedReasonCode string false none L1 rejection reason code l1RejectedReasonMsg string false none L1 rejection reason message riskSignature [L2Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information transferOutId string(int64) false none Transfer out order ID createdTime string(int64) false none Creation time updatedTime string(int64) false none Update time **Enum Values** Property Value status CROSS\_WITHDRAW\_UNKNOWN status CROSS\_WITHDRAW\_PENDING\_RISK\_CHECKING status CROSS\_WITHDRAW\_PENDING\_CHECKING status CROSS\_WITHDRAW\_SUCCESS\_SUBMIT\_CENSOR status CROSS\_WITHDRAW\_PENDING\_CENSOR\_CHECKING\_ACCOUNT status CROSS\_WITHDRAW\_PENDING\_CENSORING status CROSS\_WITHDRAW\_PENDING\_L2\_APPROVING status CROSS\_WITHDRAW\_PENDING\_L1\_SUBMIT status CROSS\_WITHDRAW\_PENDING\_L1\_CONFIRMING status CROSS\_WITHDRAW\_SUCCESS status CROSS\_WITHDRAW\_FAILED\_RISK\_CHECK\_FAILURE status CROSS\_WITHDRAW\_FAILED\_TRANSFER\_REJECTED status CROSS\_WITHDRAW\_FAILED\_CENSOR\_CHECKING\_ACCOUNT\_REJECTED status CROSS\_WITHDRAW\_FAILED\_CENSORING status CROSS\_WITHDRAW\_FAILED\_L2\_REJECTED status CROSS\_WITHDRAW\_FAILED\_L1\_SUBMIT\_REJECTED status CROSS\_WITHDRAW\_FAILED\_L1\_REJECTED status CROSS\_WITHDRAW\_FAILED\_USER\_BALANCE\_NOT\_ENOUGH status UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal1tx) schemal1tx Name Type Required Constraints Description Notes hash string false none Transaction hash index integer(int32) false none Index of the tx hash time string(int64) false none Tx chain timestamp, in milliseconds blockHeight string(int64) false none Block height of the tx #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal2signature) schemal2signature Name Type Required Constraints Description Notes r string false none Bigint for hex string s string false none Bigint for hex string v string false none Bigint for hex string #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultgetcrosswithdrawsigninfo) schemaresultgetcrosswithdrawsigninfo Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [GetCrossWithdrawSignInfo](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemagetcrosswithdrawsigninfo) false none Get information required for cross-chain withdrawal signature - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemagetcrosswithdrawsigninfo) schemagetcrosswithdrawsigninfo Name Type Required Constraints Description Notes lpAccountId string false none LP account ID for L2 receiving user transfers crossWithdrawL2Key string false none L2 key for fast withdrawal account crossWithdrawMaxAmount string false none Maximum amount for fast cross-chain withdrawal fee string false none Transaction fee #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultlistnormalwithdraw) schemaresultlistnormalwithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data \[[NormalWithdraw](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemanormalwithdraw)\ \] false none Correct response data errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemanormalwithdraw) schemanormalwithdraw Name Type Required Constraints Description Notes id string(int64) false none Withdrawal order ID userId string(int64) false none User ID accountId string(int64) false none Account ID coinId string(int64) false none Collateral coin ID amount string false none Withdrawal amount ethAddress string false none ETH address for withdrawal, may differ from the account's ETH address. clientWithdrawId string false none Client-defined ID for idempotent checks l2Nonce string(int64) false none L2 signature nonce. First 32 bits of sha256(client\_withdraw\_id) l2ExpireTime string(int64) false none L2 signature expiration time. Unix time in hours, must be at least 24 hours after order creation. l2Signature [L2Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information status string false none Normal withdrawal order status tradeWithdrawId string(int64) false none Corresponding trading service withdraw order ID riskSignature [L2Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal2signature) false none L2 signature information l1ConfirmedTx [L1Tx](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemal1tx) false none L1 transaction information l1ConfirmedTime string(int64) false none L1 transaction confirmation time l1CompletedTime string(int64) false none L1 withdrawal completion time createdTime string(int64) false none Creation time updatedTime string(int64) false none Update time **Enum Values** Property Value status NORMAL\_WITHDRAW\_UNKNOWN status NORMAL\_WITHDRAW\_PENDING\_RISK\_CHECKING status NORMAL\_WITHDRAW\_PENDING\_TRADE\_PROCESSING status NORMAL\_WITHDRAW\_PENDING\_L2\_APPROVING status NORMAL\_WITHDRAW\_PENDING\_L1\_CONFIRMING status NORMAL\_WITHDRAW\_PENDING\_L1\_WITHDRAWING status NORMAL\_WITHDRAW\_SUCCESS\_L1\_COMPLETED status NORMAL\_WITHDRAW\_FAILED\_RISK\_CHECK\_FAILURE status NORMAL\_WITHDRAW\_FAILED\_CENSOR\_FAILURE status NORMAL\_WITHDRAW\_FAILED\_L2\_REJECTED status UNRECOGNIZED #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultgetnormalwithdrawableamount) schemaresultgetnormalwithdrawableamount | Name | Type Okay, continuing the translated documentation: Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [GetNormalWithdrawableAmount](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemagetnormalwithdrawableamount) false none Query normal withdrawable claim amount by user address - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemagetnormalwithdrawableamount) schemagetnormalwithdrawableamount Name Type Required Constraints Description Notes amount string false none Withdrawable amount #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemaresultcreatecrosswithdraw) schemaresultcreatecrosswithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [CreateCrossWithdraw](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatecrosswithdraw) false none Create cross-chain withdrawal order - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatecrosswithdraw) schemacreatecrosswithdraw Name Type Required Constraints Description Notes crossWithdrawId string(int64) false none Cross-chain withdrawal order ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatecrosswithdrawparam) schemacreatecrosswithdrawparam Name Type Required Constraints Description Notes accountId string(int64) false none Account ID coinId string(int64) false none Coin ID amount string false none Withdrawal amount ethAddress string false none Withdrawal address. If empty, withdraw to the corresponding address of the current account. erc20Address string false none L1 ERC20 contract address for the withdrawn asset lpAccountId string false none LP account ID for L2 receiving user transfers clientCrossWithdrawId string false none Client-defined ID, used for signature & idempotent check. Must be filled. expireTime string(int64) false none Expiration time l2Signature string false none L2 signature fee string false none Gas + fee obtained from front-end chainId string false none Chain ID for withdrawal mpcAddress string false none Which mpc address initiated the withdraw mpcSignature string false none Signature of the mpc address to the withdraw field mpcSignTime string false none mpc signature timestamp,unix timestamp in seconds #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#createnormalwithdraw) createnormalwithdraw Name Type Required Constraints Description Notes code string false none Status code Returns "SUCCESS" for success, otherwise it's a failure. data [CreateNormalWithdraw](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatenormalwithdraw) false none Create normal withdrawal order - Response errorParam object false none Error parameter information requestTime string(timestamp) false none Server request receive time responseTime string(timestamp) false none Server response return time traceId string false none Call trace ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatenormalwithdraw) schemacreatenormalwithdraw Name Type Required Constraints Description Notes withdrawId string(int64) false none Withdrawal order ID #### [hashtag](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#schemacreatenormalwithdrawparam) schemacreatenormalwithdrawparam Name Type Required Constraints Description Notes accountId string(int64) false none Account ID coinId string(int64) false none Coin ID amount string false none Withdrawal amount ethAddress string false none Withdrawal address. If empty, withdraw to the corresponding address of the current account. clientWithdrawId string false none Client-defined ID, used for signature & idempotent check. Must be filled. expireTime string(int64) false none Expiration time l2Signature string false none L2 signature [PreviousAccount APIchevron-left](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/account-api) [NextOrder APIchevron-right](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/order-api) Last updated 1 year ago * [AssetsPrivateApi](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#assetsprivateapi) * [POST Create Normal Withdrawal Order](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#post-create-normal-withdrawal-order) * [POST Create Cross-Chain Withdrawal Order](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#post-create-cross-chain-withdrawal-order) * [GET User's Normal Withdrawable Amount](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-users-normal-withdrawable-amount) * [GET Get Normal Withdrawal Orders by Account ID and Withdrawal ID](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-normal-withdrawal-orders-by-account-id-and-withdrawal-id) * [GET Get Information Required for Cross-Chain Withdrawal Signature](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-information-required-for-cross-chain-withdrawal-signature) * [GET Get Cross-Chain Withdrawal Orders by Account ID and Withdrawal ID](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-get-cross-chain-withdrawal-orders-by-account-id-and-withdrawal-id) * [GET Aggregate Query of All Deposit and Withdrawal Order Records](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#get-aggregate-query-of-all-deposit-and-withdrawal-order-records) * [Data Models](https://edgex-1.gitbook.io/edgeX-documentation/api/private-api/asset-api#data-models) Copy { "code": "SUCCESS", "data": { "withdrawId": "1054639949233524736" }, "msg": null, "errorParam": null, "requestTime": "1734674558154", "responseTime": "1734674558171", "traceId": "9e3bfe2b9e1ef82583cb96f36e43e537" } Copy { "accountId": "string", "coinId": "string", "amount": "string", "ethAddress": "string", "erc20Address": "string", "lpAccountId": "string", "clientCrossWithdrawId": "string", "expireTime": "string", "l2Signature": "string", "fee": "string", "chainId": "string", "mpcAddress": "string", "mpcSignature": "string", "mpcSignTime": "string" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "amount": "0" }, "msg": null, "errorParam": null, "requestTime": "1734674463329", "responseTime": "1734674464181", "traceId": "6e8a3b8326f00683cf73f701f3edcfb6" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "lpAccountId": "542076087396467085", "crossWithdrawL2Key": "0x03bf794b4433e0a8b353da361bb7284c670914d27ed04698e6abed0bf1198028", "crossWithdrawMaxAmount": "48799.686154", "fee": "2" }, "msg": null, "errorParam": null, "requestTime": "1734674557578", "responseTime": "1734674557997", "traceId": "3aa3d5c94c7bc9aef69f590e188058ef" } Copy { "code": "string", "msg": "string", "requestTime": "string", "responseTime": "string" } Copy { "code": "SUCCESS", "data": { "dataList": [\ {\ "orderId": "1054639949233524736",\ "time": "1734674558",\ "type": "ORDER_TYPE_NORMAL_WITHDRAW",\ "status": 3,\ "amount": "1",\ "fee": "",\ "txId": "",\ "chain": "Sepolia - Testnet",\ "address": "0x1fB51aa234287C3CA1F957eA9AD0E148Bb814b7A",\ "coin": "USDT",\ "chainId": "11155111",\ "transferSenderAccountId": "0",\ "transferReceiverAccountId": "0"\ }\ ], "nextPageOffsetData": "b3fa59aa-8b42-49a3-9729-d7e89d8d9c8d" }, "msg": null, "errorParam": null, "requestTime": "1734675194541", "responseTime": "1734675194553", "traceId": "d6f1fe9e521e306a49f30158257a07a2" } ---