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.- 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.
- 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.
- 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). - 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.
- 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.
Send an outgoing Travel Rule transaction
Step 1: Validate the Travel Rule data
CallPOST /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 withGET /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 inwarnings, 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 astravelRuleMessage in POST /transactions:
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 thetransaction.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:Multiple legal entities
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:- Create the entities in Notabene.
- Ask Notabene to establish the Gateway and subsidiary relationship.
- Generate a shared encryption key.
- Map each vault account to its VASP with Assign VASP to vault.
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