Skip to content
Drazill logoStagingTesting mode — staging environment. No real money: balances, trades, and accounts are for testing only and may be reset at any time.DEMODemo mode: simulated data, for showcase only
Market making

Reference market maker

Drazill may operate one house market-making account. This is what it is for, exactly how it quotes, the limits enforced on it, and how it is switched off.

This account is not running.

The reference market maker is switched off in every environment and no such account has been created. This page is published in advance, with the code that would run it, so the policy can be read and challenged before a single order is placed. Every number below is a configured limit, not a measurement — nothing has been measured, because nothing has run.

What it is

Every Drazill market is seeded by a house-funded automated market maker (AMM) whose maximum subsidy is bounded by b·ln(N). The AMM always quotes, but it cannot quote tighter than its cost curve allows, and widening it costs the house more. The reference market maker is a separate house account that posts ordinary limit orders on the public order book, which can tighten the spread without enlarging the AMM's bound at all.

It exists for two reasons: tighter books than the AMM alone can offer, and to prove our public API can support a market maker. It trades through exactly the endpoints any customer integrates against, with an ordinary API key limited to reading markets and reading and writing its own orders.

It is not a profit centre, not a price-setting mechanism, and not a way to hit a volume target. It has no revenue goal, its profit and loss is not treated as a measure of success, and if it loses money inside its limits that is simply the cost of the spread it posted.

The conflict of interest

This account is the house. It trades with house money, for the house's own account, in markets the house operates. That is a real conflict and we state it before anything else.

What it does not have is an advantage over you. It reads the same public API, the same public order book and the same published prices that you do. It receives no early resolution data, no preview of anyone's orders, and no private endpoint. It pays the ordinary published fees with no discount, and the same rules that stop a market's creator or resolver from trading that market apply to it.

What contains the conflict is that the account is bounded by the platform itself rather than by its own good behaviour, and that everything it does is visible to the same surveillance that watches every other account.

How it quotes

The rule is fixed and published. It does not react to who is on the other side, and it has no discretion.

  • It quotes around the price implied by the automated market maker — the same price the rest of the platform displays. It never quotes around the last traded price or the midpoint of the book, because both of those can be moved cheaply by anyone; moving the AMM price means buying or selling into the cost curve and paying for it.
  • Its half-spread is half the reward-band width, and never tighter than one cent.
  • It quotes the two most liquid outcomes in a market. Because outcomes are mutually exclusive and their prices add to one, bidding both of them is a two-sided quote. It offers back only what it actually holds — the platform has no short selling, so it cannot offer shares it does not own.
  • Each quote is at most 50 shares, and smaller when it is close to a limit. When it has no room left it posts nothing at all rather than a token order, and it leans against its own position: the more of an outcome it holds, the less it bids for more.
  • It refreshes about once a minute. It is deliberately slow and does not compete on speed.

The limits it trades under

These limits are applied by the platform when an order is placed, not by the account itself.

  • In any single market it may hold at most 25% of that market's bounded house subsidy, b·ln(N).
  • Across every market combined it may hold at most $5,000 CAD.
  • The check runs on our servers at the moment an order is placed, using the account's real positions and resting orders. A limit that lived only in the trading program would be a preference, not a control: if that program were mistaken, out of date, or its key stolen, the platform is what stops it. If the check cannot be completed for any reason, the order is rejected.
  • Selling is never blocked by these limits. Selling can only reduce what the account holds, and a limit that blocked the way out would trap the position rather than contain it.

Surveillance and eligibility

This account is watched, and it earns nothing from the programs meant for you.

  • The same manipulation detectors that run over customer accounts run over it. No detector was changed, relaxed, or given an exception for it.
  • It cannot trade with itself. The account type it uses does not permit the setting that would allow a self-trade, so this is a property of the platform rather than a promise about its behaviour.
  • It earns no maker rewards and is excluded from every published volume and activity figure, so it cannot flatter our own numbers or consume a rewards pool intended for real market makers.
  • It holds no market-maker agreement and receives no fee rebate or preferential rate of any kind.

One honest limitation: our wash-trading check does not raise an alert when both sides of a trade are internal platform accounts. In production every customer is an external account, so a trade between this account and a customer is always checked. On our internal test environment, where the other side may also be ours, it may not be — which is why test-environment results are not evidence about production.

How it stops

Its failure state is holding nothing. If anything at all goes wrong it cancels its orders and waits rather than leaving them out unattended.

  • A single switch turns it off. It cancels every order it has and stops placing new ones, with no code change or deployment required.
  • Any error — a failed request, an error response, or a run of server errors — triggers the same response: cancel everything and stop.
  • If the platform starts rejecting its orders for exceeding a limit, it stops placing them. Repeated rejections mean the program's view of its own position is wrong, and the platform's view is the correct one.
  • It never gives up on cancelling. If a cancellation fails it keeps trying and places nothing in the meantime, so what it holds can only shrink.

Changes to this policy

If this account is ever switched on, our liquidity disclosure names it and links here automatically — the disclosure is generated from the same switch that runs the account, so the two cannot fall out of step. If the limits or the quoting rule change, this page changes with them.

Related documents

Transparency report

How many legal demands for customer data we have received, by year.

How Drazill works

The order book, the automated market maker, and how a price is formed.

Fees

What a trade costs, published in full.

Markets
Portfolio