Skip to main content
If a venue is not in the supported list, you can add it yourself. It is one file, and nothing else in the package needs editing — if you find yourself changing anything else, that is a bug in SORY, not a gap in the template.

Generate the adapter

Writes a single file with the class, the capability declaration and the one hook most venues need.

Declare what it can do

Declare what you have proven, not what the venue’s own API metadata claims. It is wrong in both directions often enough to be useless — that is why time_in_force starts at GTC only and why spot_margin_short starts False.

Translate anything unusual

Most venues need nothing here. When one does, it is a parameter name:
This is the only hook most adapters ever use. Everything else — sessions, book maintenance, rate limiting, rounding, error translation — comes from the base class.

Prove it works

Loads markets, subscribes to the book, and checks the things that quietly break routing: prices are Decimal, bids descend and asks ascend, the book is not crossed, rounding never rounds an amount up, and quantities are in base units rather than contracts.Add --private to include a real resting order, fetch, and cancel round trip, plus IOC and FOK if you declared them.

Register it

From here it behaves like any other venue: it appears in the book, it gets routed to, and it is excluded with a reason when it goes quiet.

The contract

An adapter provides these. ExchangeAdapter implements all of them, so a subclass usually overrides none.
amount_to_precision must never round up. Rounding an amount up sends more than was allocated — an over-fill nobody asked for. The conformance suite checks this explicitly.

Running the checks yourself

The conformance suite ships inside the package, so it works from an installed copy:

Regenerating the reference page

If a venue quotes order quantities in contracts rather than base units, it cannot be added safely without extra work — its numbers do not mean the same thing as the rest of the book, and an order could be sized orders of magnitude wrong. The conformance suite detects this and fails.

Or just ask

New venues are added on almost every release. Register your interest.