Skip to main content
Notabene screens your incoming and outgoing transactions for Travel Rule compliance, and exchanges originator and beneficiary data with the counterparty VASP. For outgoing transactions, you validate the Travel Rule data through the Fireblocks API, encrypt it with the Notabene PII SDK, and attach it to the transaction. Fireblocks doesn’t store Travel Rule data permanently, and doesn’t hold the decryption keys. Notabene is a premium add-on. Fireblocks Support enables it on your workspace, and you connect it in the Console. It’s available on Developer Sandbox, Testnet, and Mainnet workspaces. See Travel Rule Overview for how Travel Rule fits into screening.

What you can do through the API

Before you start

You need a Notabene account. By default, your Notabene production environment connects to your Fireblocks production workspace, and your Notabene sandbox to your Fireblocks sandbox workspace. For any other pairing, contact Fireblocks Support.
  1. Get your VASP DID. Your VASP’s Decentralized Identifier (DID) identifies you in the Notabene network. Retrieve it with Get VASP details, and use it when you connect Notabene in the Console.
  2. Create a PII encryption key. Create an Ed25519 DID key with the Notabene CLI. Other VASPs use its public key to encrypt PII sent to you. See Notabene’s Fireblocks integration docs.
  3. Register the key on your VASP. Add the key to your VASP details with Add jsonDidKey to VASP details (PUT /screening/travel_rule/vasp/update).
  4. Assign your VASP DID to receiving vault accounts with Assign VASP to vault. Incoming transactions to a vault account without an assigned DID can’t be screened.
  5. Connect Notabene in the Console with your Notabene API key, secret, and VASP DID. You receive an email once the connection is approved. Default Trigger (Screening Policy) and Outcome (Post-Screening Policy) rules apply until you create your own.
In your Notabene dashboard, define which Notabene status a transaction must reach before Fireblocks treats screening as complete. To switch to new API keys, submit a ticket to Fireblocks Support with the new API key, secret, and VASP DID.

Send an outgoing Travel Rule transaction

Step 1: Validate the Travel Rule data

Call POST /screening/travel_rule/transaction/validate/full with the transaction details and the originator and beneficiary data you have. The response tells you whether the transaction is above the Travel Rule threshold for the jurisdictions involved, whether the beneficiary VASP was identified, and which data is missing. Set the notation query parameter explicitly. It defaults to notabene, and the default will change to fireblocks, which translates asset tickers and amounts automatically.
Use the full validation endpoint. The basic Validate Travel Rule Transaction endpoint is being deprecated. If type is BELOW_THRESHOLD, you don’t need to collect Travel Rule data.

Step 2: Identify the beneficiary VASP

If the beneficiary VASP wasn’t identified automatically, search Notabene’s directory with GET /screening/travel_rule/vasp, for example ?search=Fireblocks, and pass the VASP’s DID as beneficiaryVASPdid.

Step 3: Collect the missing data

Collect the fields listed in warnings, either with Notabene’s widget or through Notabene’s API. Then validate again until isValid is true. See Notabene’s validation documentation.

Step 4: Encrypt the PII

Encrypt the originator and beneficiary PII using the Notabene PII SDK before sending. You can use end-to-end encryption, which only the counterparty VASP can decrypt, or hybrid encryption, which Notabene can decrypt as well.

Step 5: Create the transaction

Pass the encrypted Travel Rule message as travelRuleMessage in POST /transactions:
An outgoing transaction without a travelRuleMessage bypasses Travel Rule screening.

Receive an incoming transaction

For an incoming transaction, screening runs after the transaction receives its first blockchain confirmation. Checking earlier can mean Notabene doesn’t yet recognize the transaction. Fireblocks sends Notabene the destination address, the amount, and the beneficiary VASP DID assigned to the receiving vault account. Notabene returns a Travel Rule verdict synchronously, as part of screening, and the Outcome (Post-Screening Policy) applies the action. Results arrive on the transaction.status.updated webhook event, and in the tr field of GET /screening/transaction/{txId}. If no Travel Rule message is attached to an incoming transaction, Fireblocks creates a blank one, so the transaction can still be screened. You don’t need to create, wait for, or resolve anything: unlike Sumsub and GTR, Notabene doesn’t use Travel Rule messages (TRMs) that you manage through the API.

Screening statuses

Notabene returns a status, and your Outcome (Post-Screening Policy) applies an action based on it: If you operate several legal entities, connect them as a Gateway VASP with subsidiary VASPs beneath it, so each vault account maps to the right entity:
  1. Create the entities in Notabene.
  2. Ask Notabene to establish the Gateway and subsidiary relationship.
  3. Generate a shared encryption key.
  4. Map each vault account to its VASP with Assign VASP to vault.
Each vault account maps to exactly one VASP; each VASP can cover many vault accounts.

Supported assets

Notabene supports most assets listed on CoinGecko; Fireblocks supports a subset of those. On Testnet, BTC_TEST, ETH_TEST4, and XRP_TEST are supported. To request more assets, contact Fireblocks Support. Incoming transfers from Fireblocks P2P Network connections default to an “Unsupported Asset” status.

Manage VASP details

To read your Travel Rule Trigger (Screening Policy) and Outcome (Post-Screening Policy) rules, or update outage and delay behavior, see Compliance Policies.

Testing

Use Notabene’s test VASPs (RoboVASPs) to verify your integration before you rely on it in production. Notabene also provides a test environment and a Postman collection for the Fireblocks integration. See Testing transactions and the Fireblocks–Notabene Postman collection. Some Notabene documentation is password-protected. If you need access, contact your Customer Success Manager.

Limitations

These routes are never sent to Notabene:
  • Gas Station to vault account
  • Vault account to exchange
  • Vault account to vault account
  • Non-custodial wallet to non-custodial wallet within the same workspace
For exchanges and on/off-ramps, see the Exchanges and On/Off-Ramps guides.

On the Help Center

To connect Notabene or build Travel Rule rules in the Console, see Notabene.