# Coinbase Prime

> Coinbase Prime: what the collector reads, how to connect it, its permissions, its certification by Atlantic Agentic Labs and its security posture.

Built, not certified Built and tested against recorded and synthetic responses (version 1.0.0, 10 November 2026). Not yet run against the vendor's sandbox or a client environment.

Reads a Coinbase Prime entity’s portfolios, balances, orders, fills and transactions, so reconciliation and reporting agents can check them against the books. It is read-only. It reads in place, in your deployment; only ids, hashes and counts reach LightHouse.

## At a glance

| Collector                   | Coinbase Prime, version `1.0.0`                                                                                    |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Reads                       | Coinbase: Coinbase Prime REST API ([the vendor's documentation](https://docs.cdp.coinbase.com/prime/docs/welcome)) |
| Family                      | Finance                                                                                                            |
| Kind                        | Exchange                                                                                                           |
| Ways to connect             | Access token                                                                                                       |
| Scopes                      | - Read: `Read`                                                                                                     |
| Read only                   | Yes                                                                                                                |
| Vendor's API can move money | Yes                                                                                                                |
| Personal data               | Financial                                                                                                          |
| Hosts it may contact        | `api.prime.coinbase.com`, `{host}`                                                                                 |
| Vendor API versions         | Prime REST API v1                                                                                                  |
| Lowest engine version       | `0.46.0`                                                                                                           |

## What it reads

- **Portfolios** the key can see (or only those named in `portfolios`), and each portfolio’s **balances**: amount, holds, withdrawable amount and fiat value, per asset. Balances are a snapshot: one record per portfolio and asset, rewritten only when it changes and removed when the asset disappears.
- **Orders, fills and transactions** per portfolio, oldest first from the last cursor: product, side, status, price, quantity, value, commission, venue; for transactions the type, status, amount, fees, wallet and completion time.
- The first read goes back `history_days` (default 90, at most 3,650).

## How to connect

1. In Coinbase Prime, make an API key with the **Read** permission only, and pin it to your deployment’s egress addresses.
2. In LightHouse, open **Setup and admin, Connectors**, choose **Coinbase Prime** (optionally name the portfolios).
3. Paste the access key, passphrase and signing key, and confirm the key was made with Read only. Your browser seals it to your deployment; LightHouse never sees it.

The credential is JSON in the variable the source names (`AAL_COINBASE_PRIME` by default): `access_key`, `passphrase`, `signing_key` and `view_only_confirmed` (`yes`).

## Permissions

This collector is **read-only**: it sends `GET` requests only, and its read-only test proves it on every change.

- **Refused by the code:** nothing, by permission. Coinbase Prime’s REST API has no call that answers an API key’s own permissions (the users endpoints describe people, not keys), so this collector cannot see whether a key can trade or withdraw. A key with the Trade or Transfer permission would not be detected.
- **What stops it:** the collector reads only once you have confirmed the key was made with **Read** only (`view_only_confirmed`). Without it, every pull fails with `Coinbase Prime does not state this key's permissions; confirm the key is view-only (view_only_confirmed) before it is read`, and the health check says the same. Make the key Read-only in Prime: that, not this code, is what stops a key from moving funds.
- **Signing:** each request carries an HMAC-SHA256 of timestamp, method and path under the signing key, base64, in `X-CB-ACCESS-SIGNATURE`. The signing key never leaves your store.
- **Hosts:** only `api.prime.coinbase.com`, over https; redirects are never followed.

## Limits

- Prime REST API v1; pages of 100 by cursor, oldest first.
- The signature covers the timestamp, method and path, not the query string. Coinbase’s reference is ambiguous on that point; it is the first thing to confirm against Prime’s sandbox before a certified run.
- Requests are paced (0.2 s apart) and retried on 429 and 5xx with back-off.
- Amounts are exact decimals; a number that arrives as a float is refused.

## Data handling

- Records hold financial data: balances, orders, fills and transaction amounts. Documents carry the `label` you give the source (default `confidential`).
- Content is read in place, in your deployment. LightHouse receives ids, hashes and counts, never the records, and never opens the credential.
- Errors carry a status and fixed text, never a provider’s body.
- The data is audit-ready for your own agents; nothing here certifies anyone against any regulation.

## Troubleshooting

| What you see                                                                                                                 | What it means                               | What to do                                                |
| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | --------------------------------------------------------- |
| `Coinbase Prime does not state this key's permissions; confirm the key is view-only (view_only_confirmed) before it is read` | You have not confirmed the key is Read only | Confirm it, after checking the key in Prime               |
| `Coinbase Prime answered HTTP 401`                                                                                           | The key, passphrase or signature is wrong   | Check all three credential parts                          |
| `Coinbase Prime answered HTTP 403`                                                                                           | The key lacks access to the portfolio       | Give the key Read on that portfolio                       |
| `Coinbase Prime answered HTTP 429`                                                                                           | Rate limit                                  | Nothing; the collector backs off and continues            |
| `Coinbase Prime could not be reached`                                                                                        | A network failure after retries             | Check the deployment’s egress to `api.prime.coinbase.com` |

## Certification

Each entry is a run by Atlantic Agentic Labs, newest first. Only a run against the vendor’s sandbox or a client environment certifies a collector; a certification lasts six months, or less if the vendor publishes an API version the collector does not list. See [How collectors are certified](/collectors/certification/).

| Date             | Collector | Engine   | Vendor API        | Method                              | Expires        |
| ---------------- | --------- | -------- | ----------------- | ----------------------------------- | -------------- |
| 10 November 2026 | `1.0.0`   | `0.46.0` | Prime REST API v1 | Fixtures only: built, not certified | Not applicable |

## Security posture

From the collector’s last scan on the default branch. What each line means, and what blocks a release: [Security posture](/collectors/security/).

| Last scanned               | 10 November 2026                                                                                                                                                                                                      |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Critical findings          | 0                                                                                                                                                                                                                     |
| High findings              | 0                                                                                                                                                                                                                     |
| Medium findings            | 0                                                                                                                                                                                                                     |
| Low findings               | 0                                                                                                                                                                                                                     |
| Info findings              | 0                                                                                                                                                                                                                     |
| Release blocked            | No                                                                                                                                                                                                                    |
| Network allow-list check   | Pass                                                                                                                                                                                                                  |
| Read-only behavioural test | Pass                                                                                                                                                                                                                  |
| SBOM (CycloneDX)           | Produced                                                                                                                                                                                                              |
| Dependency licences        | Pass                                                                                                                                                                                                                  |
| Scanners                   | bandit 1.9.4, semgrep 1.181.1, pip-audit 2.10.1, osv-scanner 2.7.0, cyclonedx-py 7.5.0, pip-licenses 5.5.5, gitleaks repository job aal-secrets, hosts_check tools/hosts_check.py, read-only test pytest -m read_only |

Source: https://docs.atlanticagenticlabs.com/collectors/catalogue/coinbase-prime/
