API examples illustrated using the Postman Collection
GET
endpoints
Get Jurisdictions
`GET` {{baseUrl}}/api/v1/server/get_jurisdictions
[
{
"id": 1,
"sortname": "AF",
"name": "Afghanistan",
"created_at": "2022-05-31T14:23:25.000000Z",
"updated_at": "2022-05-31T14:23:25.000000Z"
},
{
"id": 2,
"sortname": "AL",
"name": "Albania",
"created_at": "2022-05-31T14:23:25.000000Z",
"updated_at": "2022-05-31T14:23:25.000000Z"
},
...
...
...
{
"id": 246,
"sortname": "ZW",
"name": "Zimbabwe",
"created_at": "2022-06-14T03:17:39.000000Z",
"updated_at": "2022-06-14T03:17:39.000000Z"
}
]
Get Verified Trust Anchors
`GET` {{baseUrl}}/api/v1/server/get_verified_trust_anchors
[
{
"id": 20,
"account_address": "0x10a32419ABcfbaaae91D0e03bc8390c418E65680",
"created_at": "2022-06-14T05:57:40.000000Z",
"updated_at": "2022-06-14T05:57:40.000000Z"
},
{
"id": 60,
"account_address": "0x1358D8FF6bF65002d051c059b95E60f54007516e",
"created_at": "2022-06-16T15:58:11.000000Z",
"updated_at": "2022-06-16T15:58:11.000000Z"
},
...
...
...
{
"id": 32,
"account_address": "0xee98c82d995E65B96A570fA50213B0Ce558Cf7F9",
"created_at": "2022-06-14T05:57:41.000000Z",
"updated_at": "2022-06-14T05:57:41.000000Z"
}
]
Is Trust Anchor Verified
`GET` {{baseUrl}}/api/v1/server/verify_trust_anchor/{{trust_anchor_address}}
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
{
"address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"verified": true
}
Get Trust Anchors Details
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_details/{{trust_anchor_address}}
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
[
{
"id": 193,
"transaction_hash": "0xac1e42a54ba1581b6df502079a9454a5e8b1d6002edda89aefdbb3f254382250",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "API_URL",
"key_value_pair_value": "https://ks-node-3.veriscope.network/kyc-template",
"created_at": "2022-06-15T02:57:00.000000Z",
"updated_at": "2022-06-15T02:57:00.000000Z",
"block_number": 1532736
},
{
"id": 195,
"transaction_hash": "0x26c1264629b0c9c0fd59f6a8926ea8f56ede55ac801779b70bdcb0a13ebb9cd7",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "TECHNOLOGY_CONTACT",
"key_value_pair_value": "[email protected]",
"created_at": "2022-06-15T02:58:00.000000Z",
"updated_at": "2022-06-15T02:58:00.000000Z",
"block_number": 1532740
},
{
"id": 196,
"transaction_hash": "0x82a079f9b8a5a1823956fc5d302a5c5451a2a2d7ec7eeb7b5bd9c466afa6df5f",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "JURISDICTION",
"key_value_pair_value": "Singapore",
"created_at": "2022-06-15T02:58:16.000000Z",
"updated_at": "2022-06-15T02:58:16.000000Z",
"block_number": 1532741
},
{
"id": 197,
"transaction_hash": "0x521a4ff2f20217013e4c364f00634815b05eb4b176d84ea3e835d0154bd146d1",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "REGULATED",
"key_value_pair_value": "Yes",
"created_at": "2022-06-15T02:58:32.000000Z",
"updated_at": "2022-06-15T02:58:32.000000Z",
"block_number": 1532742
},
{
"id": 198,
"transaction_hash": "0xab769bfe2fa05ff3dc1aa5814722fb097507f93d790c468921d5762524687c39",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "INCORPORATED_DATE",
"key_value_pair_value": "2022-01-01",
"created_at": "2022-06-15T02:58:48.000000Z",
"updated_at": "2022-06-15T02:58:48.000000Z",
"block_number": 1532743
}
]
Get Trust Anchor API_URL
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_api_url
?ta_address={{trust_anchor_address}}
"ta_address": {{trust_anchor_address}}
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
{
"id": 193,
"transaction_hash": "0xac1e42a54ba1581b6df502079a9454a5e8b1d6002edda89aefdbb3f254382250",
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"key_value_pair_name": "API_URL",
"key_value_pair_value": "https://ks-node-3.veriscope.network/kyc-template",
"created_at": "2022-06-15T02:57:00.000000Z",
"updated_at": "2022-06-15T02:57:00.000000Z",
"block_number": 1532736
}
key_value_pair_name and key_value_pair_value should be set. Set them via the Veriscope Web-App if needs be.
|
Get Trust Anchor Accounts
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_accounts
{
"id": 1,
"ta_prefname": "veriscope@shyft-node3",
"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": "veriscope@shyft-node-3",
"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"
}
Get Attestations
`GET` {{baseUrl}}/api/v1/server/get_attestations
?page={{startPage}}
&perPage={{resultsPerPage}}
&searchTerm={{attestationSearchTerm}}
"startPage": "1"
"perPage": "10"
"searchTerm": {{attestationSearchTerm}}
// use trust anchor account, user account, attestation hash or wallet address
"attestationSearchTerm": "0x5481fabc980af705c556517426c81a963af5657d"
// i.e. wallet address
{
"serverParams": {
"page": 1,
"perPage": 10
},
"totalRecords": 1,
"rows": [
{
"id": 7299,
"ta_account": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"jurisdiction": "196",
"effective_time": "1624674592",
"expiry_time": "1687919392",
"public_data": "0x656e642d746f2d656e642077616c6b7468726f756768",
"documents_matrix_encrypted": "0x3738396338356431623939316333333031303034343064653239393161626235363137303366653238393436373961383134393666326433616338366336353931343064306338303435333531653665646265356637373735646465376562666434366635666561663765626632636665623231626261636264383937653561666262343265636239623834616336333336343935393233396131636232626133356539623236363336313939386334633238393439326364316664346332306664343039323531363730343233313930376133333330363633373237373165633563656233353033313261343663356138313831356133363235343863386135333731326137653565383938613533373132613465633561313538653565303535316438653161656531333930326335313039353833613036336164303334663130653031346661623032643061326133303331323066313332303735643631386538633035623434613138613263353433313931343031643534366165643061323236313561313538616163646431323636643638613263316236383136626130336339356532376362653762663366663830366532316335313739",
"availability_address_encrypted": "0x2020202020202020202020202020202020202020202020202020202020202020",
"is_managed": "1",
"attestation_hash": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76",
"transaction_hash": "0x42f61810f3f8b97dd28aaa8c5cdaae1161661d2175ab711be7f6720b07715074",
"user_account": "0x96Ee3769a2422215626b8A32594e8fBD5Dd1b61a",
"created_at": "2022-06-27T02:30:03.000000Z",
"updated_at": "2022-06-27T02:30:03.000000Z",
"public_data_decoded": "end-to-end walkthrough",
"documents_matrix_encrypted_decoded": "789c85d1b991c330100440de2991abb561703fe2894679a81496f2d3ac86c659140d0c8045351e6edbe5f7775dde7ebfd46f5feaf7ebf2cfeb21bbacbd897e5afbb42ecb9b84ac63364959239a1cb2ba35e9b266361998c4c289492cd1fd4c20fd4092516704231907a333066372771ec5ceb350312a46c5a81815a362548c8a53712a7e5e898a53712a4ec5a158e5e0551d8e1aee13902c5109583a063ad034f10e014fab02d0a2a303120f132075d618e8c05b44a18a2c543191401d546aed0a22615a158aacdd1266d68a2c1b6816ba03c95e27cbe7bf3ff806e21c5179",
"availability_address_encrypted_decoded": null,
"version_code": "3",
"coin_blockchain": "ETH",
"coin_token": "POOL",
"coin_address": "0x5481fabc980af705c556517426c81a963af5657d",
"coin_memo": "end-to-end walkthrough"
}
]
}
Get Events
This API endpoint allows VASPs to refresh event data from the genesis block (block number zero). Event data includes: attestations, verified trust anchors, and trust anchor data posted on the Shyft Network. |
`GET` {{baseUrl}}/api/v1/server/refresh_event_sync?startBlock=0
n/a
Get Trust Anchor Key Value Pairs
`GET` {{baseUrl}}/api/v1/server/get_ta_key_value_pairs
TODO
Get KYC Templates
`GET` {{baseUrl}}/api/v1/server/get_kyc_templates
?page={{startPage}}
&perPage={{resultsPerPage}}
&searchTerm={{kycTemplateSearchTerm}}
"startPage": {{startPage}}
"perPage": {{resultsPerPage}}
"searchTerm": {{kycTemplateSearchTerm}}
// use trust anchor account, user account, attestation hash or wallet address
"startPage": "1"
"resultsPerPage": "10"
"kycTemplateSearchTerm": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76"
// i.e. attestation hash
{
"serverParams": {
"page": 1,
"perPage": 10
},
"totalRecords": 1,
"rows": [
{
"id": 12,
"attestation_hash": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76",
"beneficiary_ta_address": "0x1358D8FF6bF65002d051c059b95E60f54007516e",
"beneficiary_ta_public_key": "0e67d158116a7c330953bde9d53dac5db35a7af64337f5b3de5246ab576d98e4d2f32cb96e0b291332573eed2884edb0a626e58525e7d89ce1ecb1dd50d9ee89",
"beneficiary_user_address": "0x279623a9378725fe271dccd8a390228f81c87a5e",
"beneficiary_user_public_key": "0x0409e8d4a705e9dff75c5d082b601a8326b77c61b763df76ec242f24b85abd070fcada35335033ec0bfe8308dfcf0ea551b0193836219bbb535f059ade08140772",
"beneficiary_ta_signature_hash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"beneficiary_ta_signature": "{\"r\":\"0x221ad084d6a3eaa93446508033ed746a831d5fd31748dfb5a8eb1c850555218e\",\"s\":\"0x0e731078734180087e61fcd7c9248e8172608c2a645a438c379fc08aedbbaa70\",\"v\":\"0x26\"}",
"crypto_address_type": null,
"crypto_address": null,
"crypto_public_key": null,
"crypto_signature_hash": null,
"crypto_signature": null,
"sender_ta_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
"sender_ta_public_key": null,
"sender_user_address": "0x96Ee3769a2422215626b8A32594e8fBD5Dd1b61a",
"sender_user_public_key": null,
"sender_ta_signature_hash": null,
"sender_ta_signature": null,
"payload": null,
"beneficiary_kyc": null,
"sender_kyc": null,
"created_at": "2022-06-27T02:51:37.000000Z",
"updated_at": "2022-06-27T02:51:38.000000Z",
"kyc_template_state_id": null,
"beneficiary_user_signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"beneficiary_user_signature": "{\"r\":\"0x8edb489caf90ea1ec47b185099825b763b0dbfee72cf0685c0662fe96b178dd5\",\"s\":\"0x3eb2f91b549512aeb8438fac961cca34c47873c11ce17f383f54c4346458b149\",\"v\":\"0x26\"}",
"sender_user_signature_hash": null,
"sender_user_signature": null,
"beneficiary_ta_url": "https://ks-node-4.veriscope.network/kyc-template",
"sender_ta_url": "https://ks-node-3.veriscope.network/kyc-template",
"beneficiary_kyc_decrypt": null,
"sender_kyc_decrypt": null,
"coin_blockchain": "ETH",
"coin_token": "POOL",
"coin_address": "0x5481fabc980af705c556517426c81a963af5657d",
"coin_memo": "end-to-end walkthrough",
"coin_transaction_hash": null,
"coin_transaction_value": null,
"status": "BE_TA_VERIFIED",
"webhook_status": "OR_DATA_REQ_RECEIVED",
"ivms_status": "START",
"beneficiary_user_crypto_proof":"",
"beneficiary_user_crypto_proof_status":""
}
]
}
Recover Beneficiary TA Signature
`POST` {{baseUrl}}/api/v1/server/recover_signature
{
"type": "BeneficiaryTA",
"template": {
"BeneficiaryTAAddress": "0xE55BA3A6735F5817753666e91e18E1B0384EEc84",
"BeneficiaryTAPublicKey": "02ecfb8809c2582918872dbf1d37541448dd77695e37f7419445de0b7d42649a5bcaf571b15544170f64a047fdca3caeb4ee73cbbbd538813de553caa20e61d8",
"BeneficiaryTASignatureHash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"BeneficiaryTASignature": {
"r": "0x3a89ccf7a47c96967d67eb8f0aadb68a9f969b12332088ed15bab7bee3bddee3",
"s": "0x14608240108b02acefd475080ee22b510252881114039b01259b65af45a2fa77",
"v": "0x25"
}
}
}
{
"beneficiaryTAPublicKey": "found match",
"beneficiaryTAAddress": "found match"
}
Recover Originator TA Signature
`POST` {{baseUrl}}/api/v1/server/recover_signature
{
"type": "SenderTA",
"template": {
"SenderTAAddress": "0x3b27a09a41D2a1523d6590d7973A5859e5247ACc",
"SenderTAPublicKey": "21b61c10d3e2c84b2ec17deafdc7b8038e9f0ae76106cd4cbd3b21c2536bde0488386fbffcc30051aa56912aac32b6631cddab1adfb9bb40a87c807bb8a20c53",
"SenderTASignatureHash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
"SenderTASignature": {
"r": "0x61e5c94f72f5c93c1e4803ee607c5700c6bea84d39336d0c28751b4686324097",
"s": "0x7ef0cd720a32962a23661c8aae892e0304c21007189bc377e59e672ff89c5c78",
"v": "0x26"
}
}
}
{
"senderTAPublicKey": "found match",
"senderTAAddress": "found match"
}
Recover Beneficiary User Signature
`POST` {{baseUrl}}/api/v1/server/recover_signature
{
"type": "BeneficiaryUser",
"template": {
"BeneficiaryUserAddress": "0x817900c5ad3ba76161e91755e3585aafe9133e23",
"BeneficiaryUserPublicKey": "128df58c27e089fb39db1af46c804bbb5f67450a537577c99f100e3aad7afcfe42e18043ceb3c0381ed66ca94baee475d0a0dc7d76897ab0519f3d5d102c65e9",
"BeneficiaryUserSignatureHash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"BeneficiaryUserSignature": {
"r": "0xeab331afedb30910a2c1a7568517824965ca8c3cf12d2fba21875fa1151dcc46",
"s": "0x1d03cf0becda27fdff579f53358f9c81911b34419c4e3a9d372acd8a6ea6cde3",
"v": "0x26"
}
}
}
{
"beneficiaryUserPublicKey": "found match",
"beneficiaryUserAddress": "found match"
}
Recover Originator User Signature
`POST` {{baseUrl}}/api/v1/server/recover_signature
{
"type": "SenderUser",
"template": {
"SenderUserAddress": "0xc1b4fe305348531a167e52d18ecc21c53c5f387e",
"SenderUserPublicKey": "81ca8cd69d8c68edaa45867d7c84cdb7761b69275330709956686d04aa84c4bec6460e2e3272f7bfef54ad8edbe319256303790c7667c80ea28e39eaf9fa4d69",
"SenderUserSignatureHash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"SenderUserSignature": {
"r": "0xbdc267eb938bc4a0ec0265564f6eab93126644c2e6fec5989df90d56c103e9bd",
"s": "0x6ce31a78a0b8ac2e420371de47d209e212eba99908844557ff0e9844dc078e45",
"v": "0x26"
}
}
}
{
"senderUserPublicKey": "found match",
"senderUserAddress": "found match"
}
Get Blockchain Analytics Providers
`GET` {{baseUrl}}/api/v1/server/get-blockchain-analytics-providers
[
{
"id": 1,
"name": "Crystal",
"description": "Crystal powers cryptocurrency transaction analysis and monitoring on the blockchain, bringing best-in-class anti-money laundering compliance and risk management solutions to exchanges, banks, and financial institutions.",
"key": "c503ea7c8dfc521131a38d8f090071665d796bc592636408329c3bac4385070f",
"enabled": "1",
"created_at": null,
"updated_at": "2022-06-07T01:20:51.000000Z"
},
{
"id": 2,
"name": "Merkle Science",
"description": "Merkle Science's Block Monitor is an enterprise-grade, real-time cryptocurrency transaction monitoring and wallet monitoring.",
"key": "EQUM5K3BDC9FDHGMUGS9420FCOROF87Q6ZHB1MLBPN",
"enabled": "1",
"created_at": null,
"updated_at": "2022-06-07T01:20:51.000000Z"
},
{
"id": 3,
"name": "Coinfirm",
"description": "Coinfirm leads the industry in compliance for cryptocurrency, using powerful analytics across the most comprehensive blockchain database.",
"key": "GI59PLHCoT99cPcyqVJBTMc2b56FJNWLQE9RVA0rTruw2MRvXpcNzC4qdoGgOjw2",
"enabled": "1",
"created_at": null,
"updated_at": "2022-06-07T01:20:51.000000Z"
},
{
"id": 4,
"name": "Chainalysis",
"description": "We create transparency for a global economy built on blockchains, enabling banks, business, and governments to have a common understanding of how people use cryptocurrency.",
"key": "Fyk7KObsH39EyRDlHx36fk4WGTJeUUtm",
"enabled": "1",
"created_at": null,
"updated_at": "2022-06-07T01:20:51.000000Z"
}
]
Get Blockchain Analytics Provider Available Networks
`GET` {{baseUrl}}/api/v1/server/get-blockchain-analytics-providers-available-networks/{{providerId}}
"providerId":"1"
// from get-blockchain-analytics-providers
[
{
"id": 1,
"blockchain_analytics_provider_id": 1,
"ticker": "btc",
"name": "Bitcoin",
"provider_network_id": null
},
{
"id": 2,
"blockchain_analytics_provider_id": 1,
"ticker": "bch",
"name": "Bitcoin Cash",
"provider_network_id": null
},
{
"id": 3,
"blockchain_analytics_provider_id": 1,
"ticker": "ltc",
"name": "Litecoin",
"provider_network_id": null
},
{
"id": 4,
"blockchain_analytics_provider_id": 1,
"ticker": "eth",
"name": "Ethereum",
"provider_network_id": null
},
{
"id": 5,
"blockchain_analytics_provider_id": 1,
"ticker": "etc",
"name": "Ethereum Classic",
"provider_network_id": null
},
{
"id": 6,
"blockchain_analytics_provider_id": 1,
"ticker": "xrp",
"name": "XRP",
"provider_network_id": null
},
{
"id": 7,
"blockchain_analytics_provider_id": 1,
"ticker": "bsv",
"name": "Bitcoin SV",
"provider_network_id": null
},
{
"id": 8,
"blockchain_analytics_provider_id": 1,
"ticker": "xlm",
"name": "Stellar",
"provider_network_id": null
},
{
"id": 9,
"blockchain_analytics_provider_id": 1,
"ticker": "doge",
"name": "Dogecoin",
"provider_network_id": null
},
{
"id": 10,
"blockchain_analytics_provider_id": 1,
"ticker": "dash",
"name": "Dash",
"provider_network_id": null
},
{
"id": 11,
"blockchain_analytics_provider_id": 1,
"ticker": "zec",
"name": "Zcash",
"provider_network_id": null
},
{
"id": 12,
"blockchain_analytics_provider_id": 1,
"ticker": "algo",
"name": "Algorand",
"provider_network_id": null
},
{
"id": 13,
"blockchain_analytics_provider_id": 1,
"ticker": "trx",
"name": "TRON",
"provider_network_id": null
},
{
"id": 14,
"blockchain_analytics_provider_id": 1,
"ticker": "eos",
"name": "EOS",
"provider_network_id": null
},
{
"id": 15,
"blockchain_analytics_provider_id": 1,
"ticker": "sol",
"name": "Solana",
"provider_network_id": null
},
{
"id": 16,
"blockchain_analytics_provider_id": 1,
"ticker": "matic",
"name": "Polygon",
"provider_network_id": null
},
{
"id": 17,
"blockchain_analytics_provider_id": 1,
"ticker": "ada",
"name": "Cardano",
"provider_network_id": null
}
]
Get Upload Addresses
To check addresses already uploaded, i.e. the existing state of the Bloom Filter.
`POST` {{baseUrl}}/api/v1/server/upload_addresses
n/a
The
Subsequent uploads appends addresses to the Bloom Filter. |
POST
endpoints
Create Shyft User
`POST` {{baseUrl}}/api/v1/server/create_shyft_user
{
"account_address": "0x96ee3769a2422215626b8a32594e8fbd5dd1b61a",
"private_key": "bc454d37a96647a26aafdf15fc6a0eb81b7874c510d1b8b201ad2b5d785978cf",
"public_key": "0x0423f6bd02dac58e22f493c63a347922fedfb521a4d9908836c0194e364c018552bc8e1b78e0868f1249c37d199690780a9ba635b49ecd295c086cab02270364fa",
"message": "VERISCOPE_USER",
"signature_hash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
"signature": {
"r": "0x27a0f86e6afdfb93e8f5e7c6bc48d55af0fb43f4a888676c86e61a7db808cca7",
"s": "0x2487c6da94c174831a4ce28256488288743d29e78eafa5d57c319a9badcb4bc8",
"v": "0x25"
}
}
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"
|
Set Trust Anchor Key Value Pair
`POST` {{baseUrl}}/api/v1/server/set_ta_key_value_pair
TODO
Validate Crypto Proof
`GET` {{baseUrl}}/api/v1/server/validate_crypto_proof
"trust_anchor_pubkey": "263b8a24b307537ba4c0c18046d634008bdd6ed17167115faf63ed27767e6c236385b8ed8659f7e827caed01b040a72f1051ce4c95cf1f7976257faa03a2bbd3"
"coin_address": "0x296a09c67e1a0a761c8c07edc666995f7e6e8d4e"
"coin_address_crypto_proof": {"chain": "ETH-mainnet", "asset": null, "address_type": "EOA","address":"0x296a09c67e1a0a761c8c07edc666995f7e6e8d4e", "trust_anchor_pubkey":"263b8a24b307537ba4c0c18046d634008bdd6ed17167115faf63ed27767e6c236385b8ed8659f7e827caed01b040a72f1051ce4c95cf1f7976257faa03a2bbd3", "signature":"40d9e46e1c24618b8f5398d70046bf0c8deba8b76c011db1ae4f4c084650a85c0e42448bab83a9c8488baeaeee2b9b5a1173d7d07d161d476bcd6b290844c26f1b"}
{
"ok"
}
If an invalid proof or params are supplied, the response will be
{
"error": {
"coin_address_crypto_proof": [
"The crypto proof supplied does not appear to be a valid."
]
}
}
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"] }
}
Encrypt IVMS
`POST` {{baseUrl}}/api/v1/server/encrypt_ivms
"public_key": "0x0409e8d4a705e9dff75c5d082b601a8326b77c61b763df76ec242f24b85abd070fcada35335033ec0bfe8308dfcf0ea551b0193836219bbb535f059ade08140772"
"ivms_json": "{"originator":"test kyc data 0x96ee37"}"
The ivms_json above is simplified for demonstration & testing purposes. |
{
"data": "BOf+rqYkDQvdq+ssmF1aoVVde5yX9vuLQuz9zG0CChOdLD+UgtvqqtiHXatj7wSoRqlqVEC1Wratv8+3JF565tCzDtpGSb7dV2fKGDg6hcTeeut4HSXl1BrWCtHOkb/fP69wrvRYYztLfevmQIn2WVLkCOhPiI4QUdzauiW+pbcK6/yHiUPg65AKZ5mHXivURI5waNVrJuE="
}
Decrypt IVMS
`POST` {{baseUrl}}/api/v1/server/decrypt_ivms
"private_key": "0x9ad45912d4f7d60f1dbb263bffdc0ea8532e8b71fe60d36578bcdd1fe1480ed0"
"kyc_data": "BOf+rqYkDQvdq+ssmF1aoVVde5yX9vuLQuz9zG0CChOdLD+UgtvqqtiHXatj7wSoRqlqVEC1Wratv8+3JF565tCzDtpGSb7dV2fKGDg6hcTeeut4HSXl1BrWCtHOkb/fP69wrvRYYztLfevmQIn2WVLkCOhPiI4QUdzauiW+pbcK6/yHiUPg65AKZ5mHXivURI5waNVrJuE="
private_key must begin with 0x
|
"{\"originator\":\"test kyc data 0x96ee37\"}"
Generate Blockchain Analytics Report
`GET` {{baseUrl}}/api/v1/server/generate-blockchain-analytics-report
?providerId={{providerId}}
&network={{network}}
&address={{address}}
"providerId":{{providerId}}
"network":{{network}}
"address":{{address}}
"providerId":"4"
"network":"eth"
"address":"0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98"
{
"blockchain_analytics_provider_id": 4,
"trust_anchor": "unknown",
"user_account": "unknown",
"blockchain": "eth",
"crypto_address": "0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98",
"custodian": "Bittrex.com",
"response": "{\"0\":{\"asset\":\"ETH\",\"address\":\"0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98\",\"cluster\":{\"name\":\"Bittrex.com\",\"category\":\"exchange\"},\"rating\":\"lowRisk\",\"customAddress\":null,\"chainalysisIdentification\":null},\"statusCode\":200}",
"response_status_code": 200,
"id": 13
}
Upload Addresses (Create Bloom Filter)
To create a Bloom Filter and limit NEW_ATTESTATION
events to attestations on addresses in the filter (i.e. relevant attestations).
`POST` {{baseUrl}}/api/v1/server/upload_addresses
n/a
The
Subsequent uploads appends addresses to the Bloom Filter. |
Rescan Attestations
To trigger a NEW_ATTESTATION
event for each relevant attestation after a Bloom Filter. has been created.
`POST` {{baseUrl}}/api/v1/server/rescan_attestations
n/a
Everything the rescan attestations endpoint is hit, a |