How it works
From news event to tradable basket.You keep the licence, money, and customers.
Cascade builds news-driven baskets and related compute. You choose which modules we run; the rest stays on your stack.
Introduction
A customer who wants exposure to a news theme (for example rising oil prices) can take a single contract on a basket of related stocks, long some names and short others.
Cascade handles the steps from that order intent through to a booked, hedged position, for as many of those steps as you buy.
We never hold your customers' money. In any configuration.
Broker and Venue
Cascade uses two roles throughout the product:
You are the Broker. Your customers stay with you. The Venue is where the hedge is placed.
Broker
The licensed firm that faces retail customers, books contracts, holds money in trust, and transmits hedges.
Venue
Where the hedge is executed: an exchange, liquidity provider, or cover counterparty. The Broker holds the account there.
The five modules
Five separate products, not five phases of one product. A module never reaches inside another. That is why you can buy three and build two yourself.
01 Basket intelligence
LiveMaps a news theme to a basket of constituents with direction and weight.
- Consumes
- News / themes
- Produces
- A basket: constituents, direction, weight, disclosure
- If you turn it off
- You write your own baskets
02 Index and marks
LivePublishes an index level and live marks for each basket.
- Consumes
- A basket + licensed market-data feed
- Produces
- A mark: basket, index level, timestamp
- If you turn it off
- You calculate your own index and license your own data feed
- The index is a level, not a price. It starts at 1,000.
- It is spread-free. Cascade publishes the raw index; you apply your own spread.
03 Exposure and netting
LiveNets customer order intent into hedge deltas across the book.
- Consumes
- Basket, mark, order intent
- Produces
- Net exposure, hedge delta
- If you turn it off
- You do your own netting and hedge sizing
04 Risk compute
Not builtComputes valuation and advisory risk signals from marks and positions.
- Consumes
- Marks, positions
- Produces
- Valuation and advisory risk signals
- If you turn it off
- You do your own margin and loss-cut maths
- Signals are advisory. Cascade computes; the Broker acts.
- Not available on the live landing path today.
05 Ledger of record
Not on saleCascade holds the contract (full-service tier).
- Consumes
- Order intent, risk signals
- Produces
- Contract state
- If you turn it off
- You keep your own customer ledger (the normal case)
- Not available in Japan. Do not treat as the default path.
Pick your configuration
The more licensed and built-out you are, the fewer modules you need.
If you hold the licence and run your own platform, take modules 1 to 3 (or 1 to 4) and keep your customer relationship entirely. If you have an app and no dealer platform, take all five, where the jurisdiction allows.
| # | You are | You take | We do | You do |
|---|---|---|---|---|
| 1 | A media company, or a Broker who just wants ideas | M1 | Baskets | Everything else |
| 2 | A Broker who wants a branded index to quote against | M1–M2 | Baskets + index | Spread, ledger, margin, netting, hedging |
| 3 | A licensed Broker with your own platform | M1–M3 | Baskets, index, netting, hedge deltas | Ledger, margin, loss-cut, order transmission |
| 4 | A Broker with a ledger but no derivatives risk maths | M1–M4 | The above + advisory risk signals | Ledger, and you still enforce |
| 5 | An app with no dealer platform | M1–M5 | Everything up to the contract itself | The app, and the licence |
How money and risk flow
The customer relationship never leaves the Broker. Cascade computes; the Broker books and transmits.
01
Customer
Taps Invest on a published basket in your app.
02
Broker
Quotes an indicative index, books the contract in your ledger, holds margin in your trust account.
03
Broker
Reports the order intent to Cascade.
04
Cascade
Decomposes into signed legs, nets across customers, emits hedge deltas.
05
Broker
Transmits cover orders to the Venue from your own OMS.
06
Broker → Cascade
Reports fills; Cascade updates cover held and streams fresh marks.
Getting started
- 01
Choose Broker or Venue
Create an organisation. Brokers launch indices; Venues route cover flow.
- 02
Complete due diligence
Licence checks and profile assignment decide which modules are enabled for your jurisdiction.
- 03
Connect and go live
Issue API keys, wire webhooks and SSE marks, connect your Venue, then publish your first basket.
API integration
Wire Cascade into your product from your Broker backend. Call Business with an API key; Business proxies allowlisted Engine routes and serves live SSE. Full request/response schemas live in Swagger.
Start here
OpenAPI · Swagger UI
Broker Server OpenAPI is served on your Business host at /docs/tenant. Use your sandbox Business URL when exploring the API.
/docs/tenant
Auth
Authorization: Bearer csk_…
Keys: csk_test_ / csk_live_. Issue keys in the Broker console under API keys.
Bases
- /v1/engine/*REST: catalog, index, trading, positions
- /v1/stream/*SSE: live marks and event fan-out
How to integrate into your product
- 01
Authenticate
Call Business with your API key. Unknown /v1/engine/* paths return 404; only the allowlisted surface is open.
Authorization: Bearer csk_test_xxxxxxxx Content-Type: application/json
- 02
Load catalog into your product
List published events and templates, then show constituents to customers.
GET /v1/engine/events GET /v1/engine/events/{eventId} GET /v1/engine/catalog/templates - 03
Quote against the live index
Read the current level (starts at 1,000) and subscribe to SSE marks. Apply your own spread in your app. Cascade is spread-free.
GET /v1/engine/baskets/{basketId}/index GET /v1/stream/marks - 04
Record suitability, then trade
A first buy is refused without a passing suitability row. Preview writes nothing; reserve holds capacity; commit opens the contract.
PUT /v1/engine/traders/{traderId}/suitability POST /v1/engine/buy/preview POST /v1/engine/buy/reserve POST /v1/engine/buy/commit - 05
Show positions and closes
Read the book your customers hold, preview a close, then queue the sell.
GET /v1/engine/positions GET /v1/engine/portfolio POST /v1/engine/sell/preview POST /v1/engine/sell
- 06
Listen for hedge and lifecycle events
Subscribe to the event stream for hedge-delta and trade lifecycle fan-out from Business.
GET /v1/stream/events
API reference by job
Allowlisted Broker Server routes, the same surface documented in Swagger. Scope hints must be present on your API key.
Catalog & events
Populate your market list and basket detail screens.
| Method | Path | Summary | Scope |
|---|---|---|---|
| GET | /v1/engine/events | List events | baskets:read |
| GET | /v1/engine/events/{eventId} | Get event | baskets:read |
| POST | /v1/engine/events/details | Batch event details | baskets:read |
| GET | /v1/engine/catalog/templates | List catalog templates | baskets:read |
| GET | /v1/engine/catalog/templates/{templateId} | Get catalog template | baskets:read |
Index & live marks
Drive customer quotes and P&L from the published index level.
| Method | Path | Summary | Scope |
|---|---|---|---|
| GET | /v1/engine/baskets/{basketId}/index | Current basket index | index:read |
| GET | /v1/engine/baskets/{basketId}/index/history | Index history | index:read |
| GET | /v1/stream/marks | Live marks (SSE) | index:read |
Trading lifecycle
Wire invest / close in your app. Preview is free; reserve then commit after you debit margin.
| Method | Path | Summary | Scope |
|---|---|---|---|
| PUT | /v1/engine/traders/{traderId}/suitability | Record suitability | trade |
| POST | /v1/engine/buy/preview | Preview a buy | trade |
| POST | /v1/engine/buy/reserve | Reserve a buy | trade |
| POST | /v1/engine/buy/commit | Commit a buy | trade |
| POST | /v1/engine/pending-orders/{pendingOrderId}/cancel | Cancel a queued buy | trade |
| POST | /v1/engine/sell/preview | Preview a sell | trade |
| POST | /v1/engine/sell | Queue a sell | trade |
Positions & book
Read what customers hold and listen for hedge / lifecycle events.
| Method | Path | Summary | Scope |
|---|---|---|---|
| GET | /v1/engine/positions | List positions | read |
| GET | /v1/engine/portfolio | Portfolio summary | read |
| GET | /v1/engine/trades | List trades | read |
| GET | /v1/engine/trades/{tradeId}/status | Trade status | read |
| GET | /v1/stream/events | Lifecycle / hedge events (SSE) | API key |
Conventions
- Money fields are decimal strings, never JSON numbers.
- customerRef / traderId are opaque. Cascade holds no customer identity.
- Index values are levels starting at 1,000, not currency prices.
- Buy preview always returns indicative: true and never a firm entry price.
- POST /quotes is not on the Broker Server allowlist. You own the pricing layer.

