Skip to content

Kraken

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 Kraken account’s spot balances, ledger entries and trade history, so reconciliation and reporting agents can check them against the books. It is read-only, and it is built to refuse a key that can withdraw or trade. It reads in place, in your deployment; only ids, hashes and counts reach LightHouse.

CollectorKraken, version 1.0.0
ReadsKraken: Kraken Spot REST API (the vendor's documentation)
FamilyFinance
KindExchange
Ways to connectAccess token
Scopes
  • Read: Query Funds, Query Ledger Entries, Query Closed Orders & Trades
Read onlyYes, except: [object Object]; [object Object]; [object Object]; [object Object]
Vendor's API can move moneyYes
Personal dataFinancial
Hosts it may contactapi.kraken.com, {host}
Vendor API versionsSpot REST API (/0/private)
Lowest engine version0.46.0
  • Spot balances: one record per asset, rewritten only when it changes and removed when the asset disappears.
  • Ledger entries: amount, fee and balance after, with the reference, type, sub-type and asset class.
  • Trade history: pair, side, order type, price, volume, cost and fee in the quote currency.
  • Ledgers and trades are read oldest first from the last cursor, paged by offset. The first read goes back history_days (default 90, at most 3,650).

It does not read futures, open orders, staking or funding addresses.

  1. In Kraken, make an API key with only Query Funds, Query Ledger Entries and Query Closed Orders & Trades, and an IP allowlist of your deployment’s egress addresses.
  2. In LightHouse, open Setup and admin, Connectors and choose Kraken.
  3. Paste the API key and the private key. Your browser seals it to your deployment; LightHouse never sees it.

The credential is JSON in the variable the source names (AAL_KRAKEN by default): api_key and api_secret.

This collector is read-only in what it does. Kraken’s private endpoints accept only POST, so every request is a signed POST, but the collector makes exactly four calls, all of which read: GetApiKeyInfo, Balance, Ledgers and TradesHistory (the manifest lists them under read_operations; the read-only test fails on any other call). Nothing is placed, cancelled or withdrawn.

  • Refused by the code: Kraken states a key’s permissions (POST /0/private/GetApiKeyInfo, which needs no permission). Before every read, and in the health check, a key whose permissions include any of these six names is refused, naming it: withdraw-funds, modify-trades, close-trades, earn-funds, add-withdraw-address, update-withdraw-address. The error is Kraken: refused: the credential can \<permissions>; make a view-only one.
  • Not refused by the code: every other permission name, because the code refuses only those six. A permission that moves funds or trades under a name not on that list would pass. Make the key with only the three query permissions above.
  • IP allowlist: the check reports whether the key has one; a key without one is told to pin it to your egress addresses (it is not refused).
  • Signing: each request carries HMAC-SHA512 of the path and the SHA-256 of nonce and body, under the base64-decoded secret; the nonce always increases. The secret never leaves your store.
  • Hosts: only api.kraken.com, over https; redirects are never followed.
  • Spot only.
  • Requests are paced one second apart and retried on 429 and 5xx with back-off.
  • Amounts are exact decimals; a number that arrives as a float is refused.
  • Each record is keyed by Kraken’s own id, so one read twice is still one record.
  • Records hold financial data: balances, ledger amounts and trades. 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.
What you see What it means What to do
Kraken: refused: the credential can withdraw-funds; make a view-only one The key holds a fund-moving permission (the one named) Make a key with only the three query permissions
Kraken answered HTTP 401 (the key or signature was refused) EAPI:Invalid key or a bad signature Check the key and the private key
Kraken answered HTTP 403 (permission denied) The key lacks a query permission Add Query Funds, Query Ledger Entries or Query Closed Orders & Trades
Kraken refused Balance: EService:Unavailable Kraken reported an error (its code is shown) Try again later
Kraken answered HTTP 429 Rate limit Nothing; the collector backs off and continues

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.

DateCollectorEngineVendor APIMethodExpires
10 November 20261.0.00.46.0Spot REST API (/0/private)Fixtures only: built, not certifiedNot applicable

From the collector’s last scan on the default branch. What each line means, and what blocks a release: Security posture.

Last scanned10 November 2026
Critical findings0
High findings0
Medium findings0
Low findings0
Info findings0
Release blockedNo
Network allow-list checkPass
Read-only behavioural testPass
SBOM (CycloneDX)Produced
Dependency licencesPass
Scannersbandit 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