Multiple Trust Anchors
Support for multiple trust anchors hasn’t been released yet. These docs are a preview of what’s to come. |
Veriscope now supports multiple trust anchors (MTAs) thus enabling VASPs and Service Providers to deploy a single Veriscope instance and run multiple trust anchor accounts.
This is particularly useful for VASPs that operate multiple entities (e.g. Binance Australia vs Bahrain vs Cyprus etc.) and Service Providers who service 100s of individual VASP entities (e.g. Sygna).
Support for MTAs was introduced in Veriscope v3.6.0 and is backwards compatiable. To upgrade an earlier version of Veriscope, please follow the instructions in our Veriscope Change Log.
How MTAs are handled
MTAs are handled in the Veriscope Node .env
file:
cd ~/veriscope/veriscope_ta_node/.env
-
which includes three variables for trust anchor(s):
-
TRUST_ANCHOR_PREFNAME
-
TRUST_ANCHOR_ACCOUNT
-
TRUST_ANCHOR_PK
-
Multiple trust anchors can be added via a comma separated list, e.g.:
* `TRUST_ANCHOR_PREFNAME`="ta1", "ta2", "ta3", "ta4", "ta5"
* `TRUST_ANCHOR_ACCOUNT`=0x...15, 0x...25, 0x...35, etc.
* `TRUST_ANCHOR_PK`=aa...10, ab...20, ac...30, etc.
There is no upper limit to how many trust anchors can be added.
Sample Node .env
file
#DO NOT INCLUDE "0x" prefix in TRUST_ANCHOR_PK
TRUST_ANCHOR_PREFNAME="Singapore VASP", "ta1", "ta2"
TRUST_ANCHOR_ACCOUNT=0x...15, 0x...25, 0x...35
TRUST_ANCHOR_PK=aa...10, ab...20, ac...30
`WEBHOOK_CLIENT_SECRET`=abcdefg*
HTTP="http://localhost:8545"
WS="ws://localhost:8545"
WEBHOOK="http://localhost:8000/webhook"
HTTP_API_PORT=8080
TEMPLATE_HELPER_PORT=8090
CONTRACTS=/opt/veriscope/veriscope_ta_node/artifacts/
#veriscope testnet
TRUST_ANCHOR_MANAGER_CONTRACT_ADDRESS="0x........06"
TRUST_ANCHOR_STORAGE_CONTRACT_ADDRESS="0x........66"
TRUST_ANCHOR_EXTRA_DATA_GENERIC_CONTRACT_ADDRESS="0x.......4c"
TRUST_ANCHOR_EXTRA_DATA_UNIQUE_CONTRACT_ADDRESS="0x........a8"
#redis
REDIS_URI=redis://127.0.0.1:6379
LOG_LEVEL=info
SIGN_MESSAGE="VERISCOPE"
Do not include "0x" prefix in TRUST_ANCHOR_PK value(s).
|
Veriscope UI
The Veriscope UI, in particular, the VASP Profile (prev. Manage Your Organization) page where trust anchor data is viewed, IVMS data is added, and key-value pairs are set now supports multiple trust anchors. To view the latest UI, see the Get comfortable with the Veriscope Web Application page.
Veriscope API
The Veriscope API nows support multiple trust anchors. Trust anchor account address has been added as a variable to each of the following endpoints:
Get Trust Anchor Accounts
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_accounts
{
"id": 1,
"ta_prefname": "[email protected]",
"ta_jurisdiction": 0,
"user_id": 1,
"created_at": "2022-06-14T05:48:17.000000Z",
"updated_at": "2022-06-14T05:53:01.000000Z",
"account_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"public_key": "eb7a66b64a0c04362aa8384d28068106f0e41d24adf507afcc64e3d5b756aa2cd6dd33fdf1a5db36e63fffd37fa654a3d1cb6778bcf6de0352cc0e6e2f323209",
"signature_hash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"signature": "{\"r\":\"0x12fe4dc19292e0efef7119193e33e4a92f9e859fe5850c75b6a5dd64c7b9b383\",\"s\":\"0x549b32f75b25aa8233f633dfef51b3353db4c499e119f10d44e24d15e5cd054b\",\"v\":\"0x26\"}",
"legal_person_name": "[email protected]",
"legal_person_name_identifier_type": "LEGL",
"address_type": "BIZZ",
"street_name": "South Bridge",
"building_number": "1233",
"building_name": "ABCXYZ",
"postcode": "000003",
"town_name": "Hogwarts Place",
"country_sub_division": "Province",
"country": "HP"
}
Set V3 Attestation
`POST` {{baseUrl}}/api/v1/server/set_v3_attestation
"ta_account":"0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
"user_account":"0x96ee3769a2422215626b8a32594e8fbd5dd1b61a"
"jurisdiction":"196"
"coin_blockchain":"ETH"
"coin_token":"POOL"
"coin_address":"0x5481fabc980af705c556517426c81a963af5657d"
"coin_memo":"end-to-end walkthrough"
|
Create KYC Template
`POST` {{baseUrl}}/api/v1/server/create_kyc_template
"attestation_hash": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76"
"user_account": "0x279623a9378725fe271dccd8a390228f81c87a5e"
"user_public_key": "0x0409e8d4a705e9dff75c5d082b601a8326b77c61b763df76ec242f24b85abd070fcada35335033ec0bfe8308dfcf0ea551b0193836219bbb535f059ade08140772"
"user_signature": "{"r":"0x8edb489caf90ea1ec47b185099825b763b0dbfee72cf0685c0662fe96b178dd5","s":"0x3eb2f91b549512aeb8438fac961cca34c47873c11ce17f383f54c4346458b149","v":"0x26"}"
"user_signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549"
"ivms_encrypt": (optional)
"coin_transaction_hash": (optional)
"coin_transaction_value": (optional)
"ivms_state_code": (optional)
"coin_address_crypto_proof": (Optional)
{
"attestation_hash": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76",
"status": "BE_TA_VERIFIED",
"webhook_status": "START",
"ivms_status": "START",
"updated_at": "2022-06-27T02:51:36.000000Z",
"created_at": "2022-06-27T02:51:35.000000Z",
"id": 12,
"coin_blockchain": "ETH",
"coin_token": "POOL",
"coin_address": "0x5481fabc980af705c556517426c81a963af5657d",
"coin_memo": "end-to-end walkthrough",
"coin_transaction_hash": "",
"coin_transaction_value": "",
"sender_ta_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"sender_user_address": "0x96Ee3769a2422215626b8A32594e8fBD5Dd1b61a",
"beneficiary_ta_address": "0x1358D8FF6bF65002d051c059b95E60f54007516e",
"beneficiary_ta_public_key": "0e67d158116a7c330953bde9d53dac5db35a7af64337f5b3de5246ab576d98e4d2f32cb96e0b291332573eed2884edb0a626e58525e7d89ce1ecb1dd50d9ee89",
"beneficiary_ta_signature_hash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"beneficiary_ta_signature": "{\"r\":\"0x221ad084d6a3eaa93446508033ed746a831d5fd31748dfb5a8eb1c850555218e\",\"s\":\"0x0e731078734180087e61fcd7c9248e8172608c2a645a438c379fc08aedbbaa70\",\"v\":\"0x26\"}",
"beneficiary_user_address": "0x279623a9378725fe271dccd8a390228f81c87a5e",
"beneficiary_user_public_key": "0x0409e8d4a705e9dff75c5d082b601a8326b77c61b763df76ec242f24b85abd070fcada35335033ec0bfe8308dfcf0ea551b0193836219bbb535f059ade08140772",
"beneficiary_user_signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"beneficiary_user_signature": "{\"r\":\"0x8edb489caf90ea1ec47b185099825b763b0dbfee72cf0685c0662fe96b178dd5\",\"s\":\"0x3eb2f91b549512aeb8438fac961cca34c47873c11ce17f383f54c4346458b149\",\"v\":\"0x26\"}",
"sender_ta_url": "https://ks-node-3.veriscope.network/kyc-template",
"beneficiary_ta_url": "https://ks-node-4.veriscope.network/kyc-template",
"beneficiary_user_crypto_proof":"",
"beneficiary_user_crypto_proof_status":""
}
Retry KYC Template
`GET` {{baseUrl}}/api/v1/server/retry_kyc_template
"attestation_hash": "0xcbc6c36db378cce99028a5417b6c8a36ecc67c686692685f2decb3365dfc0f34"
{
"id": 139,
"attestation_hash": "0xcbc6c36db378cce99028a5417b6c8a36ecc67c686692685f2decb3365dfc0f34",
"beneficiary_ta_address": "0x4DA45d42921bc14015c469e2eecCC2793301Ef27",
"beneficiary_ta_public_key": "1fd1f70da541b4be0490637ad3ac033c7a69f12263a1fc4a093fae762f9edbbbd80181d6764737df00bad18bd7acbe146d03e49f2cccccdc9600197d8d6acc3c",
"beneficiary_user_address": "0xe96e217759e62a044040d5593b462855e74fca41",
"beneficiary_user_public_key": "0x0414bc390bb3f1124e727822164035971612059cb8b9af6880ae71ca88b42d732f79bef5dc2d6e31a5c49d98631b6d23f6ffbf033b15acca447995730df3aa69d2",
"beneficiary_ta_signature_hash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"beneficiary_ta_signature": "{\"r\":\"0x3f6a5f8e4a0b1398806dae4a99947a552d72afd740aca4653555d176f43f9a54\",\"s\":\"0x55bf1ec46e9cfbd157540a320a6fadc94259bcdc1699f78626e896413c30d840\",\"v\":\"0x25\"}",
"crypto_address_type": null,
"crypto_address": null,
"crypto_public_key": null,
"crypto_signature_hash": null,
"crypto_signature": null,
"sender_ta_address": "0x10a32419ABcfbaaae91D0e03bc8390c418E65680",
"sender_ta_public_key": "12eea3e1969efb01617b0b4d5ece86d9f6d885e84d2908d695d0940478e6d357ff939732e15fceb562893e48681fe0221724946ccba65e6c9953b2e3866b27f1",
"sender_user_address": "0xbf2b6e8d4bdd767ec236cc5652b80713ce19eadb",
"sender_user_public_key": "0x04d95277e0eda4eba445d8bb746f137872ed7f5302aec4e4655396fbad352fbb19a86696e527c155f9feb93b7ac2e86066a7a7e33e031fd93257b40cedffacbbe7",
"sender_ta_signature_hash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"sender_ta_signature": "{\"r\":\"0xa671ceaf2ff7ce84bf5137757ce8f39b792d97f751d192a7e67fa8d2f78cd7f4\",\"s\":\"0x221852ba79ac4744ba5a4bba9cb44dfe14c80c06b1000e42ec9109d3cbd38de3\",\"v\":\"0x26\"}",
"payload": null,
"beneficiary_kyc": null,
"sender_kyc": null,
"created_at": "2022-06-09T14:51:30.000000Z",
"updated_at": "2022-06-09T15:41:14.000000Z",
"kyc_template_state_id": null,
"beneficiary_user_signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"beneficiary_user_signature": "{\"r\":\"0x65424575fc10828b9b0f005d6a54dd86cc23d393c844d3a2cef33659b4391b8b\",\"s\":\"0x298e075645749d954ac90582b92ca877c1829e8037bf7f0a3803ae62291d8a81\",\"v\":\"0x26\"}",
"sender_user_signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"sender_user_signature": "{\"r\":\"0xfb20891f9f08bcf12d97930c1917137712057d491ffedc883e04a4990d7730d8\",\"s\":\"0x7e9235069c34a90d82e937dc5901c9f9e55c511ed35ccd940233862c77eaf23d\",\"v\":\"0x26\"}",
"beneficiary_ta_url": "https://beneficiary.veriscope.network/kyc-template",
"sender_ta_url": "https://originator.veriscope.network/kyc-template",
"beneficiary_kyc_decrypt": null,
"sender_kyc_decrypt": null,
"coin_blockchain": "ETH",
"coin_token": "ETH",
"coin_address": "0xa6ff79f3aca5e4bb9639852c042da1de62740322",
"coin_memo": null,
"coin_transaction_hash": "",
"coin_transaction_value": "",
"status": "OR_TA_VERIFIED",
"webhook_status": "OR_DATA_REQ_RECEIVED",
"ivms_status": "START",
"beneficiary_user_crypto_proof":"",
"beneficiary_user_crypto_proof_status":""
}
{
"error": { "field_name": ["Your error message goes here"] }
}
Postman Collection
The Veriscope Postman Collection has also be updated to support multiple trust anchors. Be sure to download and use the latest. See The Veriscope Postman Collection.