Skip to main content
Prove your provider handles identity, ordering and evidence correctly before a single real account depends on it. A public provider is the code that lets trdrs reach a market someone else runs, written against the published provider contract. Provider conformance runs fourteen rules against it and tells you, rule by rule, what held and what didn’t. A venue can register its manifest and save a private connection from its Providers list. Publishing a directory profile and qualifying execution are separate steps. See Publish a provider integration for discovery and review. Use this page if you’re building a provider. It’s a different check from the integration conformance, which measures software that calls the trdrs API; this one measures software that trdrs calls. By the end you have an evidence file listing a result for every rule. You can run it before you have a vendor account, a certificate or a network connection. The reference provider in the @trdrs/reference-provider package follows the contract exactly and passes every rule, so running the suite against your own provider shows you the differences, and those are your work list. For a real exchange’s test environment, trdrs also runs a testnet provider for the exchanges Run a testnet provider names, and that page shows how to qualify it.

What it checks

Each rule exists because getting it wrong loses or duplicates someone’s trade. The reason comes back with every result, because a provider that only learns what failed tends to make the check pass rather than make the behavior right.

Run it

Call runProviderConformance with a function that sends each of the suite’s requests to your provider and returns what came back, plus the identities to test with:
tradableAccountId and order let the suite place one order to test the command rules, and otherAccountId lets it test that one account can’t read another. Leave them out and the rules that need them are skipped, not passed.

Read the evidence

runProviderConformance returns the evidence directly; write it to a file and keep it. It never contains your authorizationRef.
Each rule has one of three outcomes: passed is true only when every rule passed. A skipped rule doesn’t count, because approving a provider for behavior nobody saw is worse than reporting nothing. The suite runs every rule even when the first one fails, and a provider it can’t reach at all comes back as failures rather than a crash. One run gives you the whole list.

What it proves

It proves your provider follows the contract’s rules on identity, ordering and evidence: the part that, when it’s wrong, loses money without anyone noticing. Test how your market fills under load, with its own order book, slippage and latency, in your own environment.

Next steps

Run a testnet provider

Qualify a real exchange’s test environment behind the contract.

Run a venue

See how a venue plugs a provider into its routes.

Data-only readiness

A feed that cannot execute orders must not claim it passed the complete execution suite. Use runProviderMarketConformance from @trdrs/reference-provider for evidence explicitly named provider-market-data-v1. It verifies a market-data-only manifest, authenticated readiness, scoped and repeatable acquisition, connection isolation, fresh bid/ask quotes in increasing sequence, reacquisition and fencing. It sends no command and always reports executionQualified: false. Supply a dedicated test connection, its environment, private authorization reference, an allocated positive generation and authorized instruments. The driver returns parsed market messages in stream for a bounded /market/events read. Empty or stale feeds fail; they are not silently passed. Keep credentials and authorization references out of evidence files. This check does not prove process-restart durability or vendor recovery after an uncertain order. Retain separate restart/resubscription evidence for data feeds and the full vendor conformance evidence before claiming execution.