# DpExchangeCore v0.3.9 - Table of Contents

> EXPERIMENTAL — Shared contract for the DpExchange family of exchange adapters: behaviours, value types, canonical-pair normalisation and a conformance suite.

## Pages

- [DpExchangeCore](readme.md)
- [Changelog](changelog.md)

- Usage rules
  - [Using dp_exchange_core](usage-rules.md)
  - [Implementing a venue package](adapter.md)
  - [Authentication: what the host does, what the package does](auth.md)
  - [Running live and demo at the same time](environments.md)
  - [Money movement](money-movement.md)
  - [Symbols and the round-trip invariant](symbols.md)
  - [Feeds, subscriptions and notices](feeds.md)
  - [Testing, fakes and isolation](testing.md)

- Guides
  - [Building a venue package](building-an-exchange-package.md)

## Modules

- [DpExchange](DpExchange.md): The **DpExchange** family: one identical facade over every trading venue.
- [DpExchange.Core.AdapterContract](DpExchange.Core.AdapterContract.md): The conformance suite every venue package runs in its own CI.
- [DpExchange.Core.CanonicalPair](DpExchange.Core.CanonicalPair.md): The **generic, venue-agnostic** symbol normaliser.
- [DpExchange.Core.Capabilities](DpExchange.Core.Capabilities.md): A venue's capability declaration — the return of `c:DpExchange.Core.Venue.capabilities/0`,
and the thing a consumer branches on instead of on venue identity.
- [DpExchange.Core.Config](DpExchange.Core.Config.md): Resolves a configurable seam, per process rather than per node.
- [DpExchange.Core.CredentialRedactionCheck](DpExchange.Core.CredentialRedactionCheck.md): Finds a struct, defined in a package's own `lib/`, that holds a secret-named field in
cleartext under `inspect/1`.
- [DpExchange.Core.DefaultRateLimiter](DpExchange.Core.DefaultRateLimiter.md): An in-process rate limiter, and the default implementation of
`DpExchange.Core.RateLimitBehaviour`.
- [DpExchange.Core.FakeInjection](DpExchange.Core.FakeInjection.md): Deterministic failure injection and a credential-free wiring mode, for a venue's `Fake`
to consult at the entry of its own public functions.
- [DpExchange.Core.Fanout](DpExchange.Core.Fanout.md): Pushes a venue's events to its subscribers, and refuses to grow their mailboxes without
a bound.
- [DpExchange.Core.HttpClient](DpExchange.Core.HttpClient.md): The shared HTTP request pipeline: rate limiting, retry, logging, error shaping and
the generic authentication schemes.
- [DpExchange.Core.Instrument](DpExchange.Core.Instrument.md): One listing as the VENUE describes it: canonical symbol, base, quote,
instrument type and trading status.
- [DpExchange.Core.LinkSafetyCheck](DpExchange.Core.LinkSafetyCheck.md): Finds a long-lived process that links a child it starts itself and never traps exits.
- [DpExchange.Core.Notice](DpExchange.Core.Notice.md): What a venue package says about **itself** — distinct from what a venue says about the
market, and never carrying market data.
- [DpExchange.Core.PollingFeed](DpExchange.Core.PollingFeed.md): A feed built from repeated fetches, for a venue package to use INSIDE its own feed.
- [DpExchange.Core.RateLimitBehaviour](DpExchange.Core.RateLimitBehaviour.md): Behaviour for the rate-limit token-bucket implementation that every
exchange adapter calls before making an API request.
- [DpExchange.Core.SymbolNormalizer](DpExchange.Core.SymbolNormalizer.md): The **symbol-normalisation contract** every venue package must satisfy.
- [DpExchange.Core.Telemetry](DpExchange.Core.Telemetry.md): Standardised `:telemetry` event names, emitted through the functions below. A consumer
attaches to these names without coupling to any particular venue's implementation —
which is what makes one metrics dashboard work across the whole family.
- [DpExchange.Core.Timeframe](DpExchange.Core.Timeframe.md): The canonical timeframe vocabulary: a string label, its width in seconds, and
the boundary every real candle of that width sits on.
- [DpExchange.Core.Types.ApprovedAddress](DpExchange.Core.Types.ApprovedAddress.md): An address on a venue's withdrawal allow-list.
- [DpExchange.Core.Types.AuctionImbalance](DpExchange.Core.Types.AuctionImbalance.md): The order imbalance an exchange publishes ahead of an opening or closing auction.
- [DpExchange.Core.Types.Balance](DpExchange.Core.Types.Balance.md): Normalised balance entry, returned by every venue package.
- [DpExchange.Core.Types.Candle](DpExchange.Core.Types.Candle.md): One OHLC bar over an interval.
- [DpExchange.Core.Types.ContractStats](DpExchange.Core.Types.ContractStats.md): Risk statistics for a derivative contract.
- [DpExchange.Core.Types.Conversion](DpExchange.Core.Types.Conversion.md): A conversion between two assets — quoted first, committed second.
- [DpExchange.Core.Types.CorporateEvent](DpExchange.Core.Types.CorporateEvent.md): A dated event on an issuer — a dividend, an earnings release, a split.
- [DpExchange.Core.Types.DepositAddress](DpExchange.Core.Types.DepositAddress.md): An address to deposit an asset to, on a specific network.
- [DpExchange.Core.Types.Filing](DpExchange.Core.Types.Filing.md): A regulatory filing the venue points at.
- [DpExchange.Core.Types.Fill](DpExchange.Core.Types.Fill.md): Normalised order fill — a partial or complete execution of the caller's own order.
- [DpExchange.Core.Types.FinancialStatement](DpExchange.Core.Types.FinancialStatement.md): A financial statement as the venue publishes it.
- [DpExchange.Core.Types.Funding](DpExchange.Core.Types.Funding.md): A perpetual's funding: what was paid, what is projected, and when the next one lands.
- [DpExchange.Core.Types.FxRate](DpExchange.Core.Types.FxRate.md): A foreign-exchange reference rate a venue publishes for a past instant.
- [DpExchange.Core.Types.NewsItem](DpExchange.Core.Types.NewsItem.md): One news item, as the venue published it.
- [DpExchange.Core.Types.OptionChain](DpExchange.Core.Types.OptionChain.md): Every listed contract on one underlying, addressed the way traders address them.
- [DpExchange.Core.Types.OptionContract](DpExchange.Core.Types.OptionContract.md): One option contract — **what it is**, not what it is worth.
- [DpExchange.Core.Types.OptionGreeks](DpExchange.Core.Types.OptionGreeks.md): Risk sensitivities and implied volatility for one option contract.
- [DpExchange.Core.Types.Order](DpExchange.Core.Types.Order.md): Normalised order, returned by every venue package.
- [DpExchange.Core.Types.OrderBook](DpExchange.Core.Types.OrderBook.md): Normalised order book snapshot, returned by every venue package.
- [DpExchange.Core.Types.OrderBookDelta](DpExchange.Core.Types.OrderBookDelta.md): One incremental order book update, passed through **exactly as the venue sent it** — never
accumulated into a book.
- [DpExchange.Core.Types.OrderLeg](DpExchange.Core.Types.OrderLeg.md): One leg of a multi-leg order.
- [DpExchange.Core.Types.Portfolio](DpExchange.Core.Types.Portfolio.md): A named subdivision of an account that balances, orders and positions are addressed to.
- [DpExchange.Core.Types.Position](DpExchange.Core.Types.Position.md): An open position in a derivative — distinct from a balance, and not derivable from one.
- [DpExchange.Core.Types.Quote](DpExchange.Core.Types.Quote.md): Normalised **trade** data for a symbol: what it last traded at, how much has traded, and
when the venue says so.
- [DpExchange.Core.Types.ScreenerResult](DpExchange.Core.Types.ScreenerResult.md): One row from a venue's screener, mover list or ranking.
- [DpExchange.Core.Types.StakingBalance](DpExchange.Core.Types.StakingBalance.md): A staked position in one asset, with the three liquidity states kept apart.
- [DpExchange.Core.Types.StakingRate](DpExchange.Core.Types.StakingRate.md): What one provider pays for staking one asset.
- [DpExchange.Core.Types.StakingReward](DpExchange.Core.Types.StakingReward.md): Rewards accrued on a staked position over a period.
- [DpExchange.Core.Types.StakingTransaction](DpExchange.Core.Types.StakingTransaction.md): One movement in or out of a staked position — and, for a redemption, how far it has got.
- [DpExchange.Core.Types.TopOfBook](DpExchange.Core.Types.TopOfBook.md): Best bid and ask for a symbol — **the top of the order book, not a price**.
- [DpExchange.Core.Types.Trade](DpExchange.Core.Types.Trade.md): Normalised public trade — anyone's order match, from the venue's trade tape.
- [DpExchange.Core.Types.Validate](DpExchange.Core.Types.Validate.md): The validating constructor every `Types.*` struct builds `new/1` on.
- [DpExchange.Core.Types.VolumeProfile](DpExchange.Core.Types.VolumeProfile.md): Traded volume split by price and by side within one interval — a "footprint" bar.
- [DpExchange.Core.Types.Watchlist](DpExchange.Core.Types.Watchlist.md): A named list of instruments held **at the venue**.
- [DpExchange.Core.Types.Withdrawal](DpExchange.Core.Types.Withdrawal.md): A withdrawal of an asset to an external address.
- [DpExchange.Core.UnwiredCheck](DpExchange.Core.UnwiredCheck.md): Finds an internal function nothing in a package's own `lib/` ever calls.
- [DpExchange.Core.Venue](DpExchange.Core.Venue.md): **The facade. The single module a consumer touches, identical on every venue.**

