Signalplus RFQ (Bullish vs Deribit)

Bullish RFQ API Migration Guide

The Bullish RFQ API is largely plug-compatible with Deribit’s RFQ API. We deliberately kept the same structures, authentication flow, and method shapes so migration work remains minimal.

Bottom line: it’s ~95% identical — only a few small tweaks:

  • Topic string structure

  • AON-only execution

  • Quick WebSocket auth call after connect


✅ What’s the Same

Protocol & Authentication

  • Uses the same JSON-RPC style.

  • HMAC signing with timestamp and nonce concepts identical to Deribit.

  • Your existing auth middleware is fully reusable.

Method Shapes

Core methods remain aligned in both naming and payload structure:

create_rfq
create_quote
edit_quote
cancel_quote
trade
get_trades
instrument discovery

RFQ & Quote Payloads

Concepts such as:

  • bids / asks

  • maker

  • price

  • expiresAt, lastUpdatedAt

…are identical between Bullish and Deribit.


⚙️ What’s Different (Migration Points)

1. WebSocket Subscription Keying

Platform
Topic Format
Example

Deribit

topic per currency

block_rfq.taker.btc

Bullish

topic per accountId

block_rfq.taker.{accountId}.any

🔧 Action: Update your topic builder logic from currency → accountId.


2. Execution Instruction Scope

  • Bullish supports AON (All-or-None) only.

  • Deribit supported APO (Any-Part-Of) as well.

🔧 Action: Replace any APO paths with AON.


3. WebSocket Authentication

  • After opening the WS connection, call private/auth once.

  • Signing inputs (key, timestamp, signature) are identical to REST auth.

🔧 Action: Add a one-time auth call immediately after connecting.


4. Heartbeat (Optional)

Bullish exposes a lightweight public/heartbeat endpoint.

🩺 Optional: Ping once per minute and wire into your health-checker logic.


5. MMP Controls

  • Deribit surfaces RFQ-specific MMP configs and events.

  • Bullish currently does not expose an equivalent.

⚠️ Action: Guard any Deribit-only MMP logic behind a feature flag.


🧭 One-Page Migration Checklist

Task
Action

WS Topics

Change from block_rfq.[role].{currency}block_rfq.[role].{accountId}.any

WS Auth

Add one-time private/auth after connect

Execution

Normalize executionInstruction to AON

Signing

Reuse existing auth/signing headers

Heartbeat

(Optional) Integrate public/heartbeat

MMP Logic

(Optional) Feature-flag Deribit-only logic

Last updated