# DpExchangeCore v0.3.120 - 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.Options](DpExchange.Core.Options.md): Refuses a facade option the call does not read. - [DpExchange.Core.OrderRoundTripCheck](DpExchange.Core.OrderRoundTripCheck.md): Asks a venue's fake whether it accepts the order ids its own order-minting calls just returned. - [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.SourceSafetyCheck](DpExchange.Core.SourceSafetyCheck.md): Finds, in a package's own source, the four ways a venue's text or a consumer's environment reaches somewhere it must not: an atom built from text, an unsafe `binary_to_term`, a `compile_env` read, and an environment read outside `config/runtime.exs`. - [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.**