tanX Docupaper
AboutTrade
  • ABOUT
    • πŸ“’tanX Docupaper
  • TECH
    • πŸ‘©β€πŸ’»Tech Docupaper
      • 🏨High level architecture
      • πŸ€”Starkware logic
      • 🌊Transactional flow
        • Off-chain accounts
        • The deposit flow
        • The withdrawal flow
        • The trade flow
        • The transfer flow
        • Full withdrawal
    • πŸ”ŒAPI Documentation
      • πŸ˜‹Getting started
        • Test connectivity
      • πŸ“ˆMarket
        • 24hr Tickers Price
        • K-line/Candlestick data
        • Orderbook
        • Recent trades
      • ↔️Trading
        • Create order
        • Get order
        • List orders
        • Cancel order
        • Bulk Cancel
        • List trades
      • πŸ”Account
        • Generating L2 Key Pairs
        • Login
        • Deposit
        • Withdrawal
        • Profile Information
        • Balance details
        • Profit and loss details
      • 🌏Web-socket stream
        • πŸ—οΈPrivate web-socket connection
        • πŸ‘₯Public websocket connection
      • ✨Internal Transfer
        • Create Internal Transfer
        • Get Internal Transfer
        • Check User Existence
        • List Internal Transfers
      • πŸ§ͺSDK Reference
        • NodeJS SDK
        • Python SDK
  • LEGAL
    • ‼️tanX Disclaimer
Powered by GitBook
On this page

Was this helpful?

  1. TECH
  2. Tech Docupaper

High level architecture

Tech Docupaper ( Part I ): Covers an overview of high level architecture of tanX.

PreviousTech DocupaperNextStarkware logic

Last updated 11 months ago

Was this helpful?

tanX Key

A public and private key that is generated via a static signature of the user’s ethereum address.

Cairo

Cairo is A STARK-based Turing-complete language for writing provable programs on blockchain.

SHARP

A shared proving service for Cairo programs. It receives proof requests from different applications and outputs proofs to attest to the validity of Cairo executions. The output proof can be shared among multiple proof requests.

STARK VERIFIER

An on-chain component that receives a state update validity proof and verifies that the proof is valid.

tanX has 2 components.

1. Off-Chain

a) Stores wallet based data b) Stores current state of orders & trades c) Creates batches for transactions d) Sends state updates to the L2 scalability engines

2. On-Chain

a) Holds the state commitments and the system assets b) Management of accounts on-chain (All balance instructions arrive as L1 transactions) c) Responsible for enforcing the validity of state transitions

  • All the transactions including deposits/orders/trades/withdrawals/transfers/stake requests are aggregated and stored on an off-chain state system managed by tanX (tanX at no point has access to the keys of the users). All transactions before being submitted are signed by the user's tanX private key. The transactions are matched via our internal engine and is sent to a Cairo based batching service which sends the batches to SHARP*.

*SHARP on programmed intervals sends the STARK proof to the STARK VERIFIER for verification. The service then sends an on-chain state update transaction to the tanX Contract in L1, which will be accepted only if the verifier finds the proof valid.

User Journey

tanX has 2 components.

  1. Once there are enough confirmation, funds are transferred to the tanX wallet.

  2. Whenever user creates an order, the user signs the order with his tanX Key with all the necessary parameters.

  3. tanX upon finding a suitable matching order, matches the order and the same is then sent to the batching processor.

  4. As explained above the batch processor sends the batches to SHARP which then sends it to the STARK verifier for verification and is finally pushed to L1 as a state update updating the balances of contract wallets.

  5. Withdrawal can be made by a user directly via the smart contract or by sending a request to tanX which allows the user to withdraw the funds with reduced gas fee.

User deposits funds by interacting with the contract:

πŸ‘©β€πŸ’»
🏨
0x1390f521a79babe99b69b37154d63d431da27a07
A visual representaion of high level architecture of tanX