# bourse v0.1.0 - Table of Contents

> Elixir client for ten provider-authored cryptocurrency exchange integrations.

## Pages

- [bourse](readme.md)
- [Changelog](changelog.md)
- [Contributing](contributing.md)

## Modules

- [Bourse.ADLRank](Bourse.ADLRank.md): Unified auto-deleveraging (ADL) rank data.
- [Bourse.Account](Bourse.Account.md): Unified exchange account data.
- [Bourse.Alpaca](Bourse.Alpaca.md): Alpaca exchange client (`alpaca`).
- [Bourse.Application](Bourse.Application.md): OTP Application for Bourse.
- [Bourse.Balance](Bourse.Balance.md): Unified account balance across currencies.
- [Bourse.Binance](Bourse.Binance.md): Binance exchange client (`binance`).
- [Bourse.Binancecoinm](Bourse.Binancecoinm.md): Binance COIN-M exchange client (`binancecoinm`).
- [Bourse.Binanceusdm](Bourse.Binanceusdm.md): Binance USDⓈ-M exchange client (`binanceusdm`).
- [Bourse.BorrowInterest](Bourse.BorrowInterest.md): Unified borrow interest data.
- [Bourse.BorrowRate](Bourse.BorrowRate.md): Unified borrow rate data.
- [Bourse.Bybit](Bourse.Bybit.md): Bybit exchange client (`bybit`).
- [Bourse.CircuitBreaker](Bourse.CircuitBreaker.md): Per-exchange circuit breakers using the `:fuse` Erlang library.
- [Bourse.Conversion](Bourse.Conversion.md): Unified currency conversion data.
- [Bourse.Currency](Bourse.Currency.md): Unified currency data.
- [Bourse.Defaults](Bourse.Defaults.md): Centralized default configuration values for bourse.
- [Bourse.DepositAddress](Bourse.DepositAddress.md): Unified deposit address data.
- [Bourse.DepositWithdrawFee](Bourse.DepositWithdrawFee.md): Unified deposit/withdraw fee data.
- [Bourse.Deribit](Bourse.Deribit.md): Deribit exchange client (`deribit`).
- [Bourse.Derive](Bourse.Derive.md): derive exchange client (`derive`).
- [Bourse.Emulation](Bourse.Emulation.md): Runtime emulation dispatch for Bourse unified methods.
- [Bourse.ExchangeAcceptanceFixtures](Bourse.ExchangeAcceptanceFixtures.md): Records and replays fixture-signed requests whose live equivalents exchanges accepted.
- [Bourse.Extract.EmulatedMethods](Bourse.Extract.EmulatedMethods.md): Reads explicit emulated-method declarations from the owned runtime specs.

- [Bourse.Extract.JsonLoader](Bourse.Extract.JsonLoader.md): Generates JSON loading boilerplate with `:persistent_term` caching.
- [Bourse.Fee](Bourse.Fee.md): Fee information attached to trades and orders.
- [Bourse.FundingHistory](Bourse.FundingHistory.md): Unified funding payment history data.
- [Bourse.FundingRate](Bourse.FundingRate.md): Unified funding rate data.
- [Bourse.FundingRateHistory](Bourse.FundingRateHistory.md): Unified funding rate history entry.
- [Bourse.Greeks](Bourse.Greeks.md): Unified options greeks data.
- [Bourse.HTTP.Errors](Bourse.HTTP.Errors.md): Classifies HTTP and body-level exchange responses into `Bourse.Error` structs.
- [Bourse.Hyperliquid](Bourse.Hyperliquid.md): Hyperliquid exchange client (`hyperliquid`).
- [Bourse.InstrumentGreeks](Bourse.InstrumentGreeks.md): Per-instrument Greeks joined to option identity with explicit conventions.
- [Bourse.JsonDocument](Bourse.JsonDocument.md): Strict JSON document decoding shared by compile-time loaders.
- [Bourse.LastPrice](Bourse.LastPrice.md): Unified last price data.
- [Bourse.LedgerEntry](Bourse.LedgerEntry.md): Unified ledger entry data.
- [Bourse.Leverage](Bourse.Leverage.md): Unified leverage settings data.
- [Bourse.LeverageTier](Bourse.LeverageTier.md): Unified leverage tier data.
- [Bourse.Lighter](Bourse.Lighter.md): Lighter exchange client (`lighter`).
- [Bourse.Liquidation](Bourse.Liquidation.md): Unified liquidation event data.
- [Bourse.LiveDrift](Bourse.LiveDrift.md): Scheduled, read-only verification of provider response contracts.
- [Bourse.LiveDrift.Bootstrap](Bourse.LiveDrift.Bootstrap.md): Starts the dependency applications and supervised processes used by live drift reads.
- [Bourse.LiveDrift.Comparator](Bourse.LiveDrift.Comparator.md): Compares live wire shapes with consumed paths from a committed recording.
- [Bourse.LiveDrift.Failure](Bourse.LiveDrift.Failure.md): Sanitized failure contract persisted by the live drift lane.
- [Bourse.LongShortRatio](Bourse.LongShortRatio.md): Unified long/short ratio data.
- [Bourse.MarginLoan](Bourse.MarginLoan.md): Unified margin loan data.
- [Bourse.MarginMode](Bourse.MarginMode.md): Unified margin mode data.
- [Bourse.MarginModification](Bourse.MarginModification.md): Unified margin modification data.
- [Bourse.Market](Bourse.Market.md): Unified market/instrument metadata.
- [Bourse.OHLCV](Bourse.OHLCV.md): Candlestick (OHLCV) bar data.
- [Bourse.Okx](Bourse.Okx.md): OKX exchange client (`okx`).
- [Bourse.OpenInterest](Bourse.OpenInterest.md): Unified open interest data.
- [Bourse.OptionData](Bourse.OptionData.md): Unified options contract data.
- [Bourse.OptionInstrument](Bourse.OptionInstrument.md): Discovered option market identity plus available quote fields.
- [Bourse.OptionProposal](Bourse.OptionProposal.md): Mechanical option-proposal preflight and spot/perp hedge sizing.
- [Bourse.OptionProposal.Hedge](Bourse.OptionProposal.Hedge.md): Pure spot/perp hedge quantity calculation for a caller-chosen target delta.
- [Bourse.OptionProposal.MarginImpact](Bourse.OptionProposal.MarginImpact.md): Venue-local margin evidence and supported candidate-plan comparison.
- [Bourse.OptionProposal.MarginImpact.Provider](Bourse.OptionProposal.MarginImpact.Provider.md): Venue-owned margin simulation adapters.
- [Bourse.OptionProposal.Optimizer](Bourse.OptionProposal.Optimizer.md): Exact bounded optimization for caller-approved option-risk instruments.
- [Bourse.OptionProposal.Projection](Bourse.OptionProposal.Projection.md): Pure post-trade exposure projection for caller-supplied option legs.
- [Bourse.OptionProposal.Result](Bourse.OptionProposal.Result.md): Non-mutating option-proposal preflight outcome.
- [Bourse.OptionReadiness](Bourse.OptionReadiness.md): Executable four-venue option readiness matrix (task 402).
- [Bourse.OptionReadiness.Baseline](Bourse.OptionReadiness.Baseline.md): Acceptance rules for option-readiness baseline reports.
- [Bourse.OptionReadiness.Cell](Bourse.OptionReadiness.Cell.md): One timestamped evidence cell in the option readiness matrix.
- [Bourse.OptionReadiness.Collector](Bourse.OptionReadiness.Collector.md): Mechanical, reproducible evidence collection for one option-readiness venue.
- [Bourse.OptionReadiness.Credentials](Bourse.OptionReadiness.Credentials.md): Credential and environment resolution for the four option readiness venues.
- [Bourse.OptionReadiness.Report](Bourse.OptionReadiness.Report.md): Durable option-readiness matrix report.
- [Bourse.OptionReadiness.VenueRow](Bourse.OptionReadiness.VenueRow.md): One venue's readiness row: environment, cells, derived status and judgment.
- [Bourse.OptionReadiness.Vocabulary](Bourse.OptionReadiness.Vocabulary.md): Compile-time vocabulary shared across the option-readiness modules.
- [Bourse.OptionSaga](Bourse.OptionSaga.md): Observable, caller-held execution saga for approved option plans.
- [Bourse.OptionSaga.Executor](Bourse.OptionSaga.Executor.md): Executes one saga command against caller-supplied exchange configurations.
- [Bourse.OptionSaga.Journal](Bourse.OptionSaga.Journal.md): Caller-held execution journal for one approved option plan.
- [Bourse.OracleLabel](Bourse.OracleLabel.md): Formats reality-oracle labels for recordings and accepted requests.
- [Bourse.OracleProvenance](Bourse.OracleProvenance.md): Derives and compares binary oracle provenance from committed reality evidence.

- [Bourse.OracleProvenance.Derivation](Bourse.OracleProvenance.Derivation.md): Derives binary oracle provenance from committed venue-reality evidence.
- [Bourse.Order](Bourse.Order.md): Unified order data.
- [Bourse.Order.Builder](Bourse.Order.Builder.md): Fluent builder for unified order creation.
- [Bourse.Order.Sanity](Bourse.Order.Sanity.md): Pre-submit order validation against market metadata.
- [Bourse.OrderBook](Bourse.OrderBook.md): Unified order book (market depth) data.
- [Bourse.PortfolioRisk](Bourse.PortfolioRisk.md): Builds point-in-time portfolio risk across venue/account domains.
- [Bourse.PortfolioRisk.Exposure](Bourse.PortfolioRisk.Exposure.md): Pure exposure math for portfolio-risk snapshots.
- [Bourse.PortfolioRisk.Snapshot](Bourse.PortfolioRisk.Snapshot.md): Point-in-time portfolio risk assembled across venue/account domains.
- [Bourse.Position](Bourse.Position.md): Unified derivatives position data.
- [Bourse.Precise](Bourse.Precise.md): Money-exact decimal string arithmetic for response normalization.
- [Bourse.PublicAcceptedRequests](Bourse.PublicAcceptedRequests.md): Records and replays provider-accepted public request branches.
- [Bourse.RateLimiter](Bourse.RateLimiter.md): Per-credential weighted rate limiter for exchange API requests.
- [Bourse.RateLimiter.Headers](Bourse.RateLimiter.Headers.md): Parses rate limit status headers from exchange API responses.
- [Bourse.RateLimiter.Info](Bourse.RateLimiter.Info.md): Rate limit status information parsed from exchange response headers.
- [Bourse.RateLimiter.Shaping](Bourse.RateLimiter.Shaping.md): Shapes endpoint rate-limit descriptors into `Bourse.RateLimiter` checks and
updates rate-limit state from response headers.
- [Bourse.RateLimiter.State](Bourse.RateLimiter.State.md): ETS-backed store for rate limit status across exchanges.
- [Bourse.RecordedResponseFixtures](Bourse.RecordedResponseFixtures.md): Capture support and replay-exchange construction for committed reality evidence.
- [Bourse.RecordedResponseFixtures.Capture](Bourse.RecordedResponseFixtures.Capture.md): Live capture profiles for the committed real-response corpus.
- [Bourse.RecordedResponseFixtures.LighterMarket](Bourse.RecordedResponseFixtures.LighterMarket.md): Shared Lighter market-id resolution for the recording and acceptance fixtures.
- [Bourse.RecordedResponseFixtures.ListBody](Bourse.RecordedResponseFixtures.ListBody.md): Evidence classification for list-returning private recorded fixtures.
- [Bourse.ResponseParser](Bourse.ResponseParser.md): Applies v4 normalization field maps to exchange responses.

- [Bourse.ResponseTransformer](Bourse.ResponseTransformer.md): Response shape normalization applied *before* field-mapping extraction.
- [Bourse.Safe](Bourse.Safe.md): Safe accessors and coercions used by response normalization.

- [Bourse.Signing](Bourse.Signing.md): Signing pattern library for exchange authentication.
- [Bourse.Signing.ApiKeySecretHeaders](Bourse.Signing.ApiKeySecretHeaders.md): API key and secret header authentication without an HMAC signature.

- [Bourse.Signing.Behaviour](Bourse.Signing.Behaviour.md): Behaviour for signing pattern implementations.
- [Bourse.Signing.Crypto](Bourse.Signing.Crypto.md): Shared low-level crypto primitives for the custom DEX signing modules
(`Bourse.Signing.Hyperliquid`, `Bourse.Signing.Derive`).
- [Bourse.Signing.Deribit](Bourse.Signing.Deribit.md): Deribit-style HMAC-SHA256 signing with custom Authorization header.
- [Bourse.Signing.Derive](Bourse.Signing.Derive.md): First-party signing for Derive (Lyra v2, on Optimism).
- [Bourse.Signing.EIP712](Bourse.Signing.EIP712.md): Minimal EIP-712 typed-data encoder for the custom DEX signing modules
(`Bourse.Signing.Hyperliquid`).
- [Bourse.Signing.HmacRecipe](Bourse.Signing.HmacRecipe.md): Generic HMAC signer driven by v4 `auth.sign_recipe` data.
- [Bourse.Signing.HmacSha256Headers](Bourse.Signing.HmacSha256Headers.md): HMAC-SHA256 headers signing pattern (Bybit-style).
- [Bourse.Signing.HmacSha256Iso](Bourse.Signing.HmacSha256Iso.md): HMAC-SHA256 with ISO timestamp and passphrase (OKX-style).
- [Bourse.Signing.HmacSha256Query](Bourse.Signing.HmacSha256Query.md): HMAC-SHA256 query string signing pattern (Binance-style).
- [Bourse.Signing.Hyperliquid](Bourse.Signing.Hyperliquid.md): First-party signing for Hyperliquid.
- [Bourse.Signing.Lighter](Bourse.Signing.Lighter.md): Lighter zk-Schnorr signing through an isolated official Go helper.
- [Bourse.Signing.Lighter.Protocol](Bourse.Signing.Lighter.Protocol.md): Versioned framed protocol for the isolated Lighter signing helper.
- [Bourse.Signing.Lighter.Supervisor](Bourse.Signing.Lighter.Supervisor.md): Supervises isolated, temporary Lighter signer owners.
- [Bourse.Signing.Request](Bourse.Signing.Request.md): The unsigned request handed to a signing pattern.
- [Bourse.Signing.SignedRequest](Bourse.Signing.SignedRequest.md): The signed, transport-ready request a signing pattern returns.
- [Bourse.Spec.Promotion](Bourse.Spec.Promotion.md): Builds and gates complete owned-spec candidates from pinned CCXT references.
- [Bourse.Spec.Promotion.Evidence](Bourse.Spec.Promotion.Evidence.md): Evidence-report contract for owned-spec promotion.
- [Bourse.Spec.Promotion.Gap](Bourse.Spec.Promotion.Gap.md): Promotion failure with a stable code and actionable context.
- [Bourse.Spec.Schema](Bourse.Spec.Schema.md): Validation contract for complete, hand-owned runtime specifications.
- [Bourse.Symbol.ParsedSymbol](Bourse.Symbol.ParsedSymbol.md): Typed components of a unified extended symbol from `Bourse.Symbol.parse_extended/1`.
- [Bourse.Telemetry](Bourse.Telemetry.md): Centralized telemetry contract for Bourse.
- [Bourse.Testnet](Bourse.Testnet.md): ETS-backed credential registry for integration testing.
- [Bourse.Ticker](Bourse.Ticker.md): Unified market ticker data.
- [Bourse.Timestamp](Bourse.Timestamp.md): Timestamp formatting helpers shared across request signing and response parsing.

- [Bourse.Trade](Bourse.Trade.md): Unified trade execution data.
- [Bourse.TradingFee](Bourse.TradingFee.md): Unified trading fee schedule data.
- [Bourse.Transaction](Bourse.Transaction.md): Unified deposit/withdrawal transaction data.
- [Bourse.TransferEntry](Bourse.TransferEntry.md): Unified internal transfer data.
- [Bourse.Unified.Descriptor](Bourse.Unified.Descriptor.md): Authored unified-method descriptors for Descripex `api()` hints.
- [Bourse.Unified.FieldMaps](Bourse.Unified.FieldMaps.md): Derives unified struct field sets from authored `normalization.field_maps`.
- [Bourse.Unified.GreeksConventions](Bourse.Unified.GreeksConventions.md): Reads authored per-venue option-Greek unit conventions.
- [Bourse.Unified.OptionQuantity](Bourse.Unified.OptionQuantity.md): Converts option quantities between unified base exposure and venue wire units.
- [Bourse.Unified.OptionSurface](Bourse.Unified.OptionSurface.md): Coherent option discovery and instrument-Greeks surface for option venues.
- [Bourse.VolatilityHistory](Bourse.VolatilityHistory.md): Unified historical volatility (DVOL) entry.
- [Bourse.WS](Bourse.WS.md): WebSocket entry point. Thin wrapper around `ZenWebsocket.Client` that binds
a `%Bourse.Exchange{}` to a connection so `subscribe/3` can pick the correct
exchange-native frame builder.
- [Bourse.WS.Adapter](Bourse.WS.Adapter.md): Layer-3 WebSocket adapter GenServer.
- [Bourse.WS.Auth](Bourse.WS.Auth.md): WebSocket authentication pattern dispatcher.
- [Bourse.WS.Auth.Behaviour](Bourse.WS.Auth.Behaviour.md): Behaviour for WebSocket authentication pattern implementations.
- [Bourse.WS.Auth.DirectHmacExpiry](Bourse.WS.Auth.DirectHmacExpiry.md): Direct HMAC Expiry auth pattern — bybit, bitmex, and htx/huobi families.
- [Bourse.WS.Auth.Expiry](Bourse.WS.Auth.Expiry.md): Pure helpers for computing auth session expiry timing.
- [Bourse.WS.Auth.InlineSubscribe](Bourse.WS.Auth.InlineSubscribe.md): Inline Subscribe auth pattern — coinbaseexchange.
- [Bourse.WS.Auth.IsoPassphrase](Bourse.WS.Auth.IsoPassphrase.md): ISO Passphrase auth pattern — okx family, kucoin family, bitget.
- [Bourse.WS.Auth.JsonrpcLinebreak](Bourse.WS.Auth.JsonrpcLinebreak.md): JSON-RPC Linebreak auth pattern — deribit.
- [Bourse.WS.Auth.ListenKey](Bourse.WS.Auth.ListenKey.md): Listen Key auth pattern — binance family, aster.
- [Bourse.WS.Auth.RestToken](Bourse.WS.Auth.RestToken.md): REST Token auth pattern — kraken.
- [Bourse.WS.Auth.Sha384Nonce](Bourse.WS.Auth.Sha384Nonce.md): SHA384 Nonce auth pattern — bitfinex.
- [Bourse.WS.Auth.Sha512Newline](Bourse.WS.Auth.Sha512Newline.md): SHA512 Newline auth pattern — gate, gateio.
- [Bourse.WS.Broadcast](Bourse.WS.Broadcast.md): Registry-backed fan-out for routed WS adapter messages.

- [Bourse.WS.Channels](Bourse.WS.Channels.md): Spec-driven WebSocket channel formatting from `websocket.subscribe.channels`.
- [Bourse.WS.Config](Bourse.WS.Config.md): Per-exchange WebSocket configuration.
- [Bourse.WS.Dispatch](Bourse.WS.Dispatch.md): Spec-driven channel → handler resolution from `websocket.dispatch.entries`.

- [Bourse.WS.Envelope](Bourse.WS.Envelope.md): Builds WS message envelope config for routing inbound frames.
- [Bourse.WS.Handle](Bourse.WS.Handle.md): Subscription handle returned by unified `watch_*` functions.
- [Bourse.WS.HandlerMappings](Bourse.WS.HandlerMappings.md): Maps Bourse Pro `handle*` method names to unified `watch_*` family atoms.
- [Bourse.WS.Helpers](Bourse.WS.Helpers.md): Pure helpers for WS URL resolution.
- [Bourse.WS.MessageRouter](Bourse.WS.MessageRouter.md): Routes decoded WS frames to payload families using envelope extraction.
- [Bourse.WS.Semantics.Ohlcv](Bourse.WS.Semantics.Ohlcv.md): OHLCV cache driven by `websocket.ohlcv_semantics`.

- [Bourse.WS.Semantics.Orderbook](Bourse.WS.Semantics.Orderbook.md): Orderbook snapshot/delta state driven by `websocket.orderbook_semantics`.

- [Bourse.WS.Semantics.Trades](Bourse.WS.Semantics.Trades.md): Trades cache driven by `websocket.trades_semantics`.

- [Bourse.WS.SpecConfig](Bourse.WS.SpecConfig.md): Merges v4.1.0 `websocket.*` spec slices with hand-maintained WS overrides.
- [Bourse.WS.Subscription](Bourse.WS.Subscription.md): WebSocket subscription pattern dispatcher.
- [Bourse.WS.Subscription.Behaviour](Bourse.WS.Subscription.Behaviour.md): Behaviour for WebSocket subscription pattern implementations.
- [Bourse.WS.Subscription.Custom](Bourse.WS.Subscription.Custom.md): Escape hatch for exchanges whose subscribe frames don't fit any named
pattern. The module dispatches on `config[:custom_type]`
- [Bourse.WS.Subscription.EventSubscribe](Bourse.WS.Subscription.EventSubscribe.md): Gate/Bitfinex/Bitget-style subscribe frame keyed on an `"event"` field.
- [Bourse.WS.Subscription.JsonRpc](Bourse.WS.Subscription.JsonRpc.md): Deribit-style JSON-RPC 2.0 subscribe frame.
- [Bourse.WS.Subscription.MethodParams](Bourse.WS.Subscription.MethodParams.md): Kraken v2 / Crypto.com / Derive-style subscribe frame.
- [Bourse.WS.Subscription.MethodSubscribe](Bourse.WS.Subscription.MethodSubscribe.md): Binance/XT/Aster-style subscribe frame.
- [Bourse.WS.Subscription.MethodSubscription](Bourse.WS.Subscription.MethodSubscription.md): Hyperliquid-style subscribe frame.
- [Bourse.WS.Subscription.OpSubscribe](Bourse.WS.Subscription.OpSubscribe.md): Bybit/Bitmex-style subscribe frame.
- [Bourse.WS.Subscription.OpSubscribeObjects](Bourse.WS.Subscription.OpSubscribeObjects.md): OKX-style subscribe frame with object-valued args.
- [Bourse.WS.Subscription.SubBased](Bourse.WS.Subscription.SubBased.md): HTX/Huobi-style subscribe frame.
- [Bourse.WS.Subscription.TypeSubscribe](Bourse.WS.Subscription.TypeSubscribe.md): KuCoin/Coinbase-style subscribe frame keyed on a `"type"` field.
- [Bourse.WS.URLRouting](Bourse.WS.URLRouting.md): Pure URL resolution for WebSocket endpoints.

- Core API
  - [Bourse](Bourse.md): Unified cryptocurrency exchange client library.
  - [Bourse.Credentials](Bourse.Credentials.md): API credentials for exchange authentication.
  - [Bourse.Dispatch](Bourse.Dispatch.md): Shared request dispatcher for generated exchange endpoint functions.
  - [Bourse.Error](Bourse.Error.md): Unified error types for exchange operations.
  - [Bourse.Exchange](Bourse.Exchange.md): Exchange configuration struct and constructor.
  - [Bourse.Exchanges](Bourse.Exchanges.md): Compile-time generator for every supported exchange module.
  - [Bourse.HTTP](Bourse.HTTP.md): HTTP client for exchange API requests.
  - [Bourse.MCP](Bourse.MCP.md): MCP tool definitions for the Bourse API.
  - [Bourse.Multi](Bourse.Multi.md): Parallel fetch operations across multiple exchanges.
  - [Bourse.Parser](Bourse.Parser.md): Public response parser facade.

  - [Bourse.Registry](Bourse.Registry.md): Compile-time exchange lookup registry.
  - [Bourse.Spec](Bourse.Spec.md): Compile-time JSON spec loader for exchange specifications.
  - [Bourse.Symbol](Bourse.Symbol.md): Bidirectional symbol normalization between unified and exchange-specific formats.
  - [Bourse.UnifiedMethod](Bourse.UnifiedMethod.md): Compile-time mapping of unified method names to endpoint configs.

- Exceptions
  - [Bourse.Symbol.Error](Bourse.Symbol.Error.md): Error raised when symbol conversion fails.

## Mix Tasks

- [mix ccxt.build_lighter_signer](Mix.Tasks.Ccxt.BuildLighterSigner.md): Builds the official Lighter Go C-shared library and its generated header,
then links the isolated Port helper for the current release target.

