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
  • API Endpoint
  • Base URL:
  • Parameter Descriptions
  • Top-Level Fields
  • Orders Array Fields
  • How to Generate the signature Field
  • Insert the Signature:
  1. Protocol Architecture
  2. Technical Documentation
  3. Solver Docs

Rasa Solver TP/SL Implementation

The TPSL (Take Profit Stop Loss) feature provided by rasa capital enables users to efficiently manage their trades by automating take profit and stop loss orders.

In the latest version, we have integrated support for Account Abstraction (ERC-4337), enabling interaction with smart wallets for enhanced functionality and flexibility.

This document provides an overview of the functionality, request structure, and details regarding the integration of account abstraction using ERC-4337.

API Endpoint

Base URL:

https://base-hedger82.rasa.capital/conditional-order

Request Body Format: The API expects the following JSON payload structure:

{
  "quote_id": "string",
  "sign_type": "v1",
  "timestamp": 1698419193,
  "orders": [
    {
      "quantity": "string",
      "price": "string",
      "conditional_price": "string",
      "order_type": 1,
      "conditional_order_type": "take_profit"
    }
  ],
  "signature": "signatureHash"
}

Parameter Descriptions

Top-Level Fields

  • quote_id (string):

    • A unique identifier for the trade quote associated with the order.

  • sign_type ("v1" | "v2"):

    • Defines the signature validation mechanism:

      • v1: Basic EOA signing.

      • v2: ERC-1271-compliant on-chain validation for smart wallets.

  • timestamp (number):

    • A UNIX timestamp representing the moment the request body was created.

  • signature (string):

    • A cryptographic hash used to authenticate the request. It varies based on the sign_type:

  • For v1, it is a typical ECDSA signature.

  • For v2, this is a smart wallet signature sent for validation via the ERC-1271 mechanism.

Orders Array Fields

Each object in the orders array includes the following fields:

● quantity (string): The amount of order will be closed when reach to the takeProfit or stopLoss.

● price (string): The price at which the order will execute.

● conditional_price (string): A threshold price for triggering the conditional order.

● order_type (number): Represents the type of order:

  • 1: Market Order

  • 2: Limit Order

● conditional_order_type("take_profit" | "stop_loss"): Specifies whether the order is a take profit or stop loss.

How to Generate the signature Field

The signaturefield is a cryptographic hash that authenticates the request. Here's a step-by-step guide on how to generate and include this value in your request:

Prepare the Request Body:

○ Create a JSON object containing all the required fields in the request body.

○ Leave the signaturefield empty at this stage but populate all other fields (e.g.,quote_id, sign_type, timestamp, and orders).

{
  "quote_id": "12345-ABCDE",
  "sign_type": "v1",
  "timestamp": 1698419193,
  "orders": [
    {
      "quantity": "1.5",
      "price": "45000",
      "conditional_price": "47000",
      "order_type": 2,
      "conditional_order_type": "take_profit"
    }
  ],
  "signature": ""
}

Sign the Json:

● Use the appropriate signing method based on the sign_type:

  • v1: Sign the hash using an ECDSA private key (off-chain signature).

  • v2: Use a smart wallet library to sign the hash, which adheres to the ERC-1271 standard.

Insert the Signature:

● Place the generated signature into the previously empty signature field of the JSON request body.

{
  "quote_id": "12345-ABCDE",
  "sign_type": "v1",
  "timestamp": 1698419193,
  "orders": [
    {
      "quantity": "1.5",
      "price": "45000",
      "conditional_price": "47000",
      "order_type": 2,
      "conditional_order_type": "take_profit"
    }
  ],
  "signature": "0xabc123signature"
}

Send the Request:

● The final JSON object, now containing the valid signature, should be sent to the API endpoint.

PreviousConditional Orders HandlerNextInstant Trading

Last updated 5 months ago