Context

Spot trading on decentralized exchanges (DEXs) in crypto today is often hindered by low performance and poor UX due to the limitations of their underlying blockchains. This makes centralized exchanges (CEXs) like Binance the dominant global liquidity hub for spot assets.

CEXs operate traditional central limit order books on scalable cloud servers, which enables a trading experience comparable to what retailers and market makers are used to in TradFi.

But this off-chain, black box design sacrifices crypto’s decentralized ethos: trading on CEXs is not transparent, verifiable, permissionless, self-custodial, or censorship-resistant.

pulse is a DEX designed from first principles centered around leveraging the UX and technological advantages of CEXs with the decentralized properties of DEXs. It’s:

<aside> 💡

(1) High-performance: the matching engine is an optimized Rust server running in scalable offchain compute that processes 150k orders/sec in real-time

(2) CEX-like UX: streamlined interface for traders (no gas, block times, signing transactions, etc.) and familiar exchange infra for market makers (API/WS interface, market data feeds, etc.)

(3) Decentralized: all server processing is transparent and verifiable through zero-knowledge proofs using zkVMs and compatible with underlying consensus mechanisms (custom L1, rollup, etc.) for permissionlessness and censorship-resistance

</aside>

TLDR: we built a novel decentralized spot exchange that pairs high-performance offchain compute (CEXs) with verifiable blockchain properties (DEXs).

Benchmarks

Our benchmarking pipeline simulates a realistic exchange state and trading activity:

This results in an approximate 98-2 ratio of canceled and filled quotes, representing common market-making dynamics. Below are the results:

Screenshot 2025-03-16 at 10.29.17 PM.png

Screenshot 2025-03-16 at 10.29.49 PM.png

Screenshot 2025-03-16 at 10.30.53 PM.png

Event Type Average latency (microseconds)
Post order (making/taking) 6.75
Cancel order 7.81
Full loop (process request and send responses) 7.92

At an average of 7.92 microseconds per process loop, the exchange can handle 125,000 orders/sec. These benchmarks were collected locally on an M2 pro Mac with batched logging (per 1000 requests) for latency collection.

Architecture

The exchange is an off-chain rust service that functions very similarly to a traditional exchange. The design centers around the following core principles: