# Fireblocks

> Fireblocks: 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 Fireblocks workspace’s vault accounts, asset balances and transactions, so treasury and reconciliation agents can check custody against the books. It is read-only, and it is built to refuse a key that can move funds. It reads in place, in your deployment; only ids, hashes and counts reach LightHouse.

## At a glance

| Collector                   | Fireblocks, version `1.0.0`                                                                                                                                  |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Reads                       | Fireblocks: Fireblocks API (vault accounts, balances, transactions) ([the vendor's documentation](https://developers.fireblocks.com/reference/api-overview)) |
| Family                      | Finance                                                                                                                                                      |
| Kind                        | Custody                                                                                                                                                      |
| Ways to connect             | Key pair                                                                                                                                                     |
| Scopes                      | - Read: `Viewer`                                                                                                                                             |
| Read only                   | Yes                                                                                                                                                          |
| Vendor's API can move money | Yes                                                                                                                                                          |
| Personal data               | Financial                                                                                                                                                    |
| Hosts it may contact        | `api.fireblocks.io`, `eu-api.fireblocks.io`, `eu2-api.fireblocks.io`, `sandbox-api.fireblocks.io`, `{host}`                                                  |
| Vendor API versions         | REST API v1                                                                                                                                                  |
| Lowest engine version       | `0.46.0`                                                                                                                                                     |

## What it reads

- **Vault accounts and their asset balances:** for each vault and asset, the total, available, pending, frozen and locked amounts, each with its asset code. Balances are a snapshot: one record per vault and asset, rewritten only when it changes and removed when the asset disappears.
- **Transactions:** read by `lastUpdated`, oldest first, so a transaction whose status changes after it was read is read again and its record rewritten. Each carries its operation, status and sub-status, amounts (requested, net, amount), network fee, source and destination type and name, hash and dates.
- The first read goes back `history_days` (default 90, at most 3,650).

It does not read addresses’ private material, policies, users, or webhooks.

## How to connect

1. In Fireblocks, make an API user with the **Viewer** role and upload the CSR of an RSA key pair you made yourself.
2. In LightHouse, open **Setup and admin, Connectors**, choose **Fireblocks** and give the region (`us`, `eu`, `eu2` or `sandbox`).
3. Paste the API key and the RSA private key, and confirm the role is Viewer. Your browser seals it to your deployment; LightHouse never sees it.
4. Pin the API user to your deployment’s egress addresses in Fireblocks.

The credential is JSON in the variable the source names (`AAL_FIREBLOCKS` by default): `api_key`, `private_key`, `region`, 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. The checks below run first on every pull and in the health check; nothing is read with a key that fails.

- **Refused by the code:** an API user that may list API users (`GET /v1/management/api_users`), which Fireblocks allows only to the **Admin** and **Non-Signing Admin** roles. The error is `Fireblocks: refused: the credential can administer the workspace (Admin or Non-Signing Admin role); make a view-only one`.
- **Not detectable by the code:** Fireblocks gives an API key no way to read its own role, so a key that is *not* an administrator is not shown to be a Viewer. An **Editor**, **Signer** or **Approver** key (which can create transactions or sign) would pass the check above. The collector therefore reads only once you have confirmed the role is Viewer (`view_only_confirmed`); without it the error is `Fireblocks does not state this key's permissions; confirm the key is view-only (view_only_confirmed) before it is read`. Make the key a Viewer in Fireblocks: that, not this code, is what stops a key from moving funds.
- **Signing:** each request carries a JWT signed here with your private key (RS256; `uri`, `nonce`, `iat`, `exp` 25 seconds on, `sub` the key, `bodyHash` the SHA-256 of the body). The private key never leaves your store.
- **Hosts:** only Fireblocks’ own region hosts. A next-page link to any other host is refused (`a next page on another host`), a redirect is never followed, and plain `http` is refused.

## Limits

- API v1. Vaults are read 200 a page and transactions 200 a page, following Fireblocks’ `next-page` header.
- Requests are paced (0.1 s apart) and retried on 429 and 5xx with back-off.
- Amounts are exact decimals; a number that arrives as a float is refused.
- `region` must be one of `us`, `eu`, `eu2`, `sandbox`.
- Fireblocks is the system of record: an amount here is as of the last read.

## Data handling

- Records hold financial data: balances, transaction amounts and the names of vaults and counterparties’ account types. 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: a provider’s error can echo a key, an account or a balance.
- 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                                             |
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------ |
| `Fireblocks: refused: the credential can administer the workspace (Admin or Non-Signing Admin role); make a view-only one` | The API user is an administrator                       | Make a Viewer API user and reconnect                   |
| `Fireblocks does not state this key's permissions; confirm the key is view-only (view_only_confirmed) before it is read`   | The role cannot be read, and you have not confirmed it | Confirm the role is Viewer                             |
| `region is one of us, eu, eu2, sandbox`                                                                                    | The region is not one of those                         | Correct the region                                     |
| `Fireblocks answered HTTP 401`                                                                                             | The API key or the signature is wrong                  | Check the key and that the private key matches the CSR |
| `Fireblocks answered HTTP 429`                                                                                             | Rate limit                                             | Nothing; the collector backs off and continues         |
| `Fireblocks: refusing a request to a host that is not the provider's`                                                      | A request named another host                           | Report it; nothing was sent there                      |

## 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` | 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/fireblocks/
