Register address in address book
In the Notabene dashboard, you can upload the current list of your operational wallet addresses in a CSV file. Notabene will then automatically compare the destination address of your incoming travel rule messages against it and confirm that the address belongs to you.

Upload a file with blockchain addresses manually
The content of this CSV file needs to be formatted like this:
asset | address | customerRef |
---|---|---|
ETH | 0x1c7013B6C7250E6A8d6F87f22aa19fa8DB89694f | Alice@SG987654321 |
BTC | 0xf92A864B7852DE1005ED4477cFFb8AAe5897B963 | Alice@SG987654321 |
USDT | 0x3b964fEc02c54395d5386B5AA2EDe3A91Ec7A28a | Alice@SG987654321 |
If the address in the incoming travel rule message is present in the list you have uploaded, the status of the travel rule message will change to "ACK" and the full travel rule details will be made available to you.
The name of the originator is then processed by your sanctions screening provider and the originating wallet address by your blockchain analytics provider (if the integration with them is enabled in our marketplace).
If these integrations are not enabled, you can use the details pushed by the webhook instead to do this internally.
If there are no hits on the originator person or the originating wallet address, the travel rule should automatically change status to "ACCEPTED" after being processed by your rules.
New addresses
This manual method works if your list of operational wallet addresses remains fairly static. If you frequently have new addresses, you can schedule an automated upload using API.
Uploading a list using API
To upload an address book using API, you must first request a short-lived AWS S3 bucket URL:
{{baseUrl}}/address/upload/:vaspDID
In the response you will get the URL:
{
"uploadUrl": "https://api.notabene.dev/upload?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NksifQ.eyJpYXQiOjE2NTUxMDcyNzAsImV4cCI6MTY1NTEwNzg3MCwiQGNvbnRleHQiOlsiaHR0cHM6Ly9hcGkubm90YWJlbmUuaWQvc2NoZW1hcy92MSJdLCJ0eXBlIjpbIlVwbG9hZFVybCJdLCJ1cGxvYWRNZXRhZGF0YSI6eyJrZXkiOiJkaWQ6ZXRocjoweGQ0YmQ5MDJlYzc4NTc4ZjMzYTIwZmY2MDE1MDRkMmFiMzI0Y2ZhYjkvYWRkcmVzcy8xNjU1MTA3MjcwNjM3IiwidXBsb2FkVHlwZSI6ImFkZHJlc3NMfgwergidXNlckRJRCI6ImRpZDpldGhyOjB4ZWZiYjE0YjczNDczY2NmZDYxMDU0M2FmNGIxYzhmZGEwMjdjNTdiZiIsImV4dHJhIjp7InZhc3BESUQiOiJkaWQ6ZXRocjoweGQ0YmQ5MDJlYzc4NTc4ZjMzYTIwZmY2MDE1MDRkMmFiMzI0Y2ZhYjkifX0sImlzcyI6ImRpZDpldGhyOjB4MTliNWZmODQ0MDAxOWI2MzVhODZiYmI2MzJkYjg1NGYyZWE4MDQyMyJ9.crPXp5VRT3wc6u6314ivu82eKu8xhkSksbS2ypkULkrT8DoXVkzzpobZIyQzJBw01Eu7r4l_FGFsnElMY-K2bQ"
}
Use the URL above in a POST request with a CSV file in the payload as form data:
formData: {
'': {
'value': fs.createReadStream('/C:/Users/cnils/Downloads/sample.csv'),
'options': {
'filename': '/C:/Users/cnils/Downloads/sample.csv',
'contentType': null
}
{
"text": "File uploaded!",
"uploadedFile": {
"locationURL": "s3://app-demo-s3/did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9/address/1680688383515",
"mimeType": "text/csv",
"name": "sample.csv",
"metadata": {
"key": "did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9/address/1680688383515",
"uploadType": "addressList",
"userDID": "did:ethr:0x1361d9d395ec01369042bcb7631fd80a4d564ac9",
"extra": {
"vaspDID": "did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9",
"counter": 0
}
}
}
}
Registering a single address using the API
It is also possible to add a single address ad-hoc by calling: https://api.notabene.dev/address/registerCustomer
{
"vaspDID": "{{vaspDID}}",
"asset": "ETH",
"address": "0x1c7013B6C7250E6A8d6F87f22aa19fa8DB89694f",
"customerRef": "Alice@SG987654321"
}
Is also possible to check the current list of registered addresses and delete all or part of them using this API endpoints.
Updated 4 months ago
Now that you are able to confirm that an address belongs to you, let's set up the process to make sure that all incoming blockchain deposits have a corresponding travel rule message: