Whitepaper
Architecture
Onchain Settlements

Settlements

Syndr uses smart contracts deployed on our custom EVM rollup for settlements. Syndr v1 will ship with an EVM-based optimistic rollup deployed on top of the Arbitrum mainnet using the Arbitrum-based Orbit Layer 3 framework. Our testnet layer 3 is the first layer 3 settling on top of Arbitrum currently.

Syndr Testnet

The Syndr Testnet is an Arbitrum Orbit L3 rollup running on top of Arbitrum Nitro mainnet.

Chain ID: 412346

RPC: https://syndr-nitro-testnet.calderachain.xyz/http

WS_RPC: wss://syndr-nitro-testnet.calderachain.xyz/ws

Deposits

Users must onboard themselves to the Syndr exchange before depositing any assets into the exchange. This process primarily involves registering a new randomly generated ethereum account i.e. a signing key that can be used to sign all orders from the web trading interface.

We generate this signing key on the user's device, then have the user sign it with their main account. This EIP712 signature is called mainAccount and then we cross-sign the mainAccount address using the previously generated signing key to generate a signingKeySig.

Both of these are combined to register a user's account in our onchain Layer-3 smart contracts.

To register, 2 signatures are required - mainAccountSig and signingKeySig. We do

struct RegisterSigningKey {
    address key;
    uint256 expiresAt;
}

struct SignKey {
    address account;
}

Assets transferred this way directly translate into deposits into Syndr's exchange contracts on Layer 3 contract.

Withdrawals

Users can request withdrawals by signing a EIP712 message on Arbitrum via their wallet. This withdrawal request is processed by the risk engine depending on the current account state(available equity & withdrawable assets).

This signature is then sent and verified onchain via our smart contracts in order to finalize withdrawals.

struct Withdraw {
    address collateral;
    uint256 amount;
    address to;
    uint256 nonce;
}