LogoLogo
  • Overview
    • Introduction
    • Table of Contents
  • Token Information
    • Symmio Foundation
  • Protocol Architecture
    • Protocol Introduction
    • Technical Documentation
      • Building an Application with SYMM
        • Introduction and Diamond Explainer
        • Querying Info from the SYMM Diamond
        • MultiAccount
        • Creating an Account and Depositing Funds
        • Sending a Quote
        • Closing a Quote
        • Instant Trading
          • Instant Login (EOA)
          • Instant Login (Account Abstraction)
          • Sending a Quote (Instant Open)
          • Sending a Quote (Instant Close)
        • Frequently Used Queries
      • Solver Docs
        • Solver Docs (github)
        • Solver Implementation Guide (High Level Overview)
        • Building a Solver on SYMMIO
          • 1. Intent Creation
          • 2. Seeing the Intent
          • 3. Hedging Off-Chain
          • 4. Opening/Closing a Position On-Chain
          • Creating the APIs
            • GET Contract Symbols
            • GET Open Interest
            • GET Notional Cap
            • GET Price Range
            • GET Error Codes
            • GET Get Locked Params
            • GET Get Funding Info
            • POST Position State
          • Solver Flow Summary Example
          • Recommended Architecture for Solvers
          • Glossary
        • Conditional Orders Handler
        • Rasa Solver TP/SL Implementation
        • Instant Trading
          • Instant Trading (Solvers)
          • Rasa Instant Trading Implementation
          • Instant Trading Condition Checks
        • Fetching Gas Prices Script
        • How to Add a Market as a Solver
        • Verifying Account Abstracted Instant Actions (ERC-4337)
      • Frontend Docs
        • Setting up a Frontend with SYMMIO
        • Frontend SDK Setup Guide
        • MultiAccount Deployment Guide
        • Instant Trading (Frontends)
          • Account Abstracted Instant Actions (Frontends)
        • Implement a Trading Bot on Symmio (OLD)
          • Setup
          • Creating a Sub-Account
          • Minting Collateral Tokens (Optional)
          • Depositing and Allocating Tokens
          • Obtaining Muon Signatures
          • Sending a Quote
          • Monitoring Price for Execution
      • Contract Docs
        • SYMMIO CORE v0.82
        • Contracts Documentation 0.8.2
          • Main Flow
          • The SYMM Diamond
          • Facets
            • Account Facet
            • Control Facet
            • Funding Rate Facet
            • PartyA Facet
            • PartyB Facet
            • Liquidation Facet
            • View Facet
          • MultiAccount
            • PartyA
            • PartyB
          • SYMM App (Muon)
            • LibMuon
            • MuonStorage
        • Contracts Documentation 0.8.3
          • Facets
            • Control Facet
            • Account Facet
            • PartyA Facet
            • PartyB Facet
            • View Facet
            • Bridge Facet
            • Liquidation Facet (Implementation)
          • Modified Events
          • New Events
          • MuonStorage
        • Contracts Documentation 0.8.4
          • Main Flow (0.8.4)
          • The SYMM Diamond (0.8.4)
          • Facets
            • Account Facet (0.8.4)
            • Bridge Facet (0.8.4)
            • Control Facet (0.8.4)
            • Force Actions Facet (0.8.4)
            • Funding Rate Facet (0.8.4)
            • Liquidations Facet (0.8.4)
            • PartyA Facet (0.8.4)
            • PartyB Group Actions Facet (0.8.4)
            • PartyB Quote Actions Facet (0.8.4)
            • PartyB Position Actions Facet (0.8.4)
            • Settlement Facet (0.8.4)
            • View Facet (0.8.4)
          • MultiAccount (0.8.4)
            • SymmioPartyA
            • SymmioPartyB
          • SYMM App (Muon)
            • LibMuon (0.8.4)
            • MuonStorage (0.8.4)
      • Contract Addresses / Solver Endpoints
        • Mantle
        • Mode
        • IOTA
        • Base
        • BSC
        • Arbitrum
        • Polygon
        • Berachain
        • Solver Endpoints and Addresses
          • Perps Hub
          • Rasa Capital
          • Rasa Capital (Zero Spread)
          • Zenith
      • How to Query our Contracts
      • Muon API Queries
      • Solver Error Codes
      • Interacting with SYMMIO Contracts
    • Protocol higher level architecture
      • 12-Hour Fraud Proof Window
      • PartyB
      • Solver Settings
      • Max Leverage
      • Maintenance Margin (CVA) Calculations
    • Symmio Whitepaper
  • Building on Symmio
    • Builders introduction
    • Solving for Symmio
      • Solver documentation
      • Solver - Example Flow
    • Trading Fees
      • Perps - Settlement Costs
      • Pair Trading - Settlement costs
    • Exchanges (Frontends)
      • Frontend Introduction
      • SDK - SYMM client
      • Trade on Symmio
  • Legal & Brand & Security
    • Security (Audits / Bugbounty)
      • Bug bounty / Coverage
        • How to contact ?
      • Audits
        • SYMM - V0.8 - 0.81
          • Sherlock Audit - Jun 15, 2023
          • Smart State - Jul 2, 2023
        • SYMM - 0.82
          • Sherlock Audit -Aug 30, 2023
        • SYMM - 0.83
          • Sherlock Audit - Jun 17, 2024
        • SYMM - 0.84
          • Sherlock Audit - Oct 3, 2024
        • Vaults
          • Sherlock Audit - Jan 2, 2024
    • Terms of Service & Licensing
      • TRADEMARK & COPYRIGHT NOTICE
      • CONTACT US
      • TERMS OF SERVICE
      • FRONTEND LICENSE
        • Frontend Modifications
        • Frontend Use Grants
      • CONTRACT LICENSE
        • Contract Use Grants
        • Contract Modifications
    • Brand - Assets Logos
Powered by GitBook
LogoLogo

All rights to the people (c) 2023 Symmetry Labs A.G.

On this page
  • Useful Query Functions
  • allocatedBalanceOfPartyA()
  • balanceInfoOfPartyA()
  • deallocateCooldown()
  • getpartyAOpenPositions()
  • getQuote()
  • getSymbol()
  • partyAPositionsCount()
  • withdrawCooldownOf()
  • Data Structures
  • Structs
  • LockedValues
  • Quote
  • Symbol
  • Enums
  • PositionType
  • OrderType
  • QuoteStatus
  1. Protocol Architecture
  2. Technical Documentation
  3. Building an Application with SYMM

Frequently Used Queries

PreviousSending a Quote (Instant Close)NextSolver Docs

Last updated 2 months ago

Useful Query Functions

The following functions allow you to retrieve essential information from the SYMM system. These functions are designed to help frontend applications display account data. All functions are to be called on the Diamond contract, which will delegate the call to the appropriate facets. You can use a diamond inspection tool like to interact with the contracts in a more user-friendly way.

allocatedBalanceOfPartyA()

Returns the allocated balance for a given sub‑account. This balance represents the collateral that is “free”—i.e., not locked in open positions. Full documentation .

balanceInfoOfPartyA()

Provides detailed balance information for Party A. This includes allocated balances, locked balances, pending locked funds, and other relevant metrics. Full documentation .

deallocateCooldown()

Retrieves the cooldown period required before funds can be withdrawn following a deallocation. This period is typically set to 12 hours.

getpartyAOpenPositions()

Returns an array of all open positions held by Party A. Full documentation .

getQuote()

Fetches detailed information about a specific quote. Use this function to review all parameters of a quote submitted by a user. Full documentation .

getSymbol()

partyAPositionsCount()

withdrawCooldownOf()

Data Structures

These data structures form the backbone of SYMM’s trading engine. They define the various states and parameters associated with quotes and positions. When querying the Diamond, functions like getQuote() return these structures to provide a complete picture of a trade’s configuration and status.

Structs

LockedValues

This structure holds the risk and margin parameters for a quote.

struct LockedValues {
    uint256 cva;       // Credit Value Adjustment
    uint256 lf;        // Liquidator Fee
    uint256 partyAmm;  // Party A Maintenance Margin
    uint256 partyBmm;  // Party B Maintenance Margin
}

Quote

The Quote struct contains comprehensive information about a trade request, including pricing, quantities, and state.

struct Quote {
	uint256 id;
	address[] partyBsWhiteList;
	uint256 symbolId;
	PositionType positionType;
	OrderType orderType;
	// Price of quote which PartyB opened in 18 decimals
	uint256 openedPrice;
	uint256 initialOpenedPrice;
	// Price of quote which PartyA requested in 18 decimals
	uint256 requestedOpenPrice;
	uint256 marketPrice;
	// Quantity of quote which PartyA requested in 18 decimals
	uint256 quantity;
	// Quantity of quote which PartyB has closed until now in 18 decimals
	uint256 closedAmount;
	LockedValues initialLockedValues;
	LockedValues lockedValues;
	uint256 maxFundingRate;
	address partyA;
	address partyB;
	QuoteStatus quoteStatus;
	uint256 avgClosedPrice;
	uint256 requestedClosePrice;
	uint256 quantityToClose;
	// handle partially open position
	uint256 parentId;
	uint256 createTimestamp;
	uint256 statusModifyTimestamp;
	uint256 lastFundingPaymentTimestamp;
	uint256 deadline;
	uint256 tradingFee;
	address affiliate;
}

Field Explanations

  • id: Unique identifier for the quote.

  • partyBsWhiteList: Array of addresses representing the Party B (hedger/solver) candidates eligible to accept the quote.

  • symbolId: Identifier for the trading symbol associated with the quote.

  • openedPrice: The price at which Party B opened the position .

  • initialOpenedPrice: The initial opened price when the position was first executed.

  • requestedOpenPrice: The price that Party A requested for opening the position (in 18 decimals).

  • marketPrice: The current market price as provided by the Muon signature (in 18 decimals).

  • quantity: The total quantity requested by Party A (expressed in 18 decimals).

  • closedAmount: The amount of the position that has been closed so far (in 18 decimals).

  • maxFundingRate: The maximum funding rate that Party A requested for the quote (in 18 decimals).

  • partyA: Party A (the trader).

  • partyB: Party B (the hedger/solver), if assigned.

  • avgClosedPrice: The average price at which parts of the quote have been closed.

  • requestedClosePrice: The price at which Party A requests the position to be closed.

  • quantityToClose: The amount of the position that Party A intends to close.

  • parentId: The identifier of a parent quote, used when the quote is partially filled.

  • createTimestamp: The timestamp when the quote was created.

  • statusModifyTimestamp: The timestamp of the last update to the quote’s status.

  • lastFundingPaymentTimestamp: The time at which the last funding payment was charged on this quote.

  • deadline: The deadline by which the quote must be executed or closed.

  • tradingFee: The fee associated with trading, deducted from the quote (this is only charged on open)

  • affiliate: The affiliate address associated with the quote, linking the quote to a frontend.

Symbol

The Symbol struct contains data related to each symbol.

struct Symbol {
	uint256 symbolId; //id
	string name;
	bool isValid; //Valid if the symbol is listed
	uint256 minAcceptableQuoteValue; //Smallest acceptable notional value
	uint256 minAcceptablePortionLF; //Minimum acceptable fee to be rewarded to the liquidator
	uint256 tradingFee; //Trading fee, this is only charged on open
	uint256 maxLeverage; //Max Leverage
	uint256 fundingRateEpochDuration; //How long each funding rate epoch is
	uint256 fundingRateWindowTime; //The window of time in which funding can be charged per epoch
}

Enums

PositionType

enum PositionType {
	LONG, //0
	SHORT //1
}

OrderType

enum OrderType {
	LIMIT, //0
	MARKET //1
}

QuoteStatus

enum QuoteStatus {
	PENDING, //0
	LOCKED, //1
	CANCEL_PENDING, //2
	CANCELED, //3
	OPENED, //4
	CLOSE_PENDING, //5
	CANCEL_CLOSE_PENDING, //6
	CLOSED, //7
	LIQUIDATED, //8
	EXPIRED, //9
	LIQUIDATED_PENDING //10
}

Returns details about a trading symbol, including its name, trading fee, and other configuration parameters. Full documentation .

Provides the total number of open positions held by Party A. This is useful for quickly assessing account exposure. Full documentation .

Retrieves the withdrawal cooldown timestamp for a sub‑account, indicating when funds will next be available for withdrawal. Full documentation .

: Indicates whether the position is LONG or SHORT.

: Specifies the order type: LIMIT or MARKET. (See Enums)

: The original locked values as set by Party A.

: The current locked risk parameters. In partial fill scenarios, this reflects the remaining locked values after part of the quote has been executed.

: The current state of the quote (e.g., PENDING, OPENED, CLOSED).

positionType
orderType
initialLockedValues
lockedValues
quoteStatus
Louper
here
here
here
here
here
here
here