🏨High level architecture

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

Brine Key

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


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


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.


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

Brine 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 Brine (Brine at no point has access to the keys of the users). All transactions before being submitted are signed by the user's Brine 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 Brine Contract in L1, which will be accepted only if the verifier finds the proof valid.

User Journey

Brine has 2 components.

  1. User deposits funds by interacting with the contract: https://goerli.etherscan.io/address/0x87eB0b1B5958c7fD034966925Ea026ad8Bf3d6dD

  2. Once there are enough confirmation, funds are transferred to the Brine wallet.

  3. Whenever user creates an order, the user signs the order with his Brine Key* with all the necessary parameters.

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

  5. 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.

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

Last updated