DpExchangeCoinbase

⚠️ EXPERIMENTAL — read this before depending on it

This package has never run in production. It is published early and openly so it can be used and reported on, not because it is finished.

Report a divergence.

Coinbase for the DpExchange family: market data, trading and streaming behind the same facade every venue in the family exposes.

What this package covers

87 callbacks, of which 46 are declared :experimental and 41 :unsupported. None is :proven — that requires a consumer trading live, and this package has never run in production (D15).

Asset classes: crypto. Streamed kinds: quotes — everything else pulls only.

Of the 41 unsupported endpoints, 38 are the venue's own absence, not this package's backlog — see venue_does_not_serve/0 and docs/reference/coinbase/negative-claims.md, which records the source and date behind every one.

Installation

def deps do
[
{:dp_exchange_coinbase, "~> 0.1.0"}
]
end

Usage

# In your supervision tree. Nothing starts itself.
children = [{DpExchange.Coinbase, credentials: my_credentials()}]
{:ok, quote} = DpExchange.Coinbase.get_price("BTC-USD", [])
:ok = DpExchange.Coinbase.subscribe(["BTC-USD"], to: self())

DpExchange.Coinbase is the entire public API. Everything else — transport, signing, session handling, supervision — is internal, and the conformance suite asserts it.

See dp_exchange_core for the contract, and this package's usage-rules.md for what is specific to Coinbase.

License

MIT. See LICENSE.