API examples illustrated using the Postman Collection

GET endpoints

Get Jurisdictions

Example 1. endpoint
`GET` {{baseUrl}}/api/v1/server/get_jurisdictions
Example 2. response (200 OK)
[
    {
        "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

Example 3. endpoint
`GET` {{baseUrl}}/api/v1/server/get_verified_trust_anchors
Example 4. response (200 OK)
[
    {
        "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

Example 5. endpoint
`GET` {{baseUrl}}/api/v1/server/verify_trust_anchor/{{trust_anchor_address}}
Example 6. variables
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
Example 7. response (200 OK)
{
    "address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60",
    "verified": true
}

Get Trust Anchors Details

Example 8. endpoint
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_details/{{trust_anchor_address}}
Example 9. variables
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
Example 10. response (200 OK)
[
    {
        "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

Example 11. endpoint
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_api_url
?ta_address={{trust_anchor_address}}
Example 12. params
"ta_address": {{trust_anchor_address}}
Example 13. variables
"trust_anchor_address": "0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
Example 14. response (200 OK)
{
    "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

Example 15. endpoint
`GET` {{baseUrl}}/api/v1/server/get_trust_anchor_accounts
Example 16. response (200 OK)
{
    "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

Example 17. endpoint
`GET` {{baseUrl}}/api/v1/server/get_attestations
?page={{startPage}}
&perPage={{resultsPerPage}}
&searchTerm={{attestationSearchTerm}}
Example 18. params
"startPage": "1"
"perPage": "10"
"searchTerm": {{attestationSearchTerm}}
// use trust anchor account, user account, attestation hash or wallet address
Example 19. variables
"attestationSearchTerm": "0x5481fabc980af705c556517426c81a963af5657d"
// i.e. wallet address
Example 20. response (200 OK)
{
    "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.
Example 21. endpoint
`GET` {{baseUrl}}/api/v1/server/refresh_event_sync?startBlock=0
Example 22. response (200 OK)
n/a

Get Trust Anchor Key Value Pairs

Example 23. endpoint
`GET` {{baseUrl}}/api/v1/server/get_ta_key_value_pairs

TODO

Get KYC Templates

Example 24. endpoint
`GET` {{baseUrl}}/api/v1/server/get_kyc_templates
?page={{startPage}}
&perPage={{resultsPerPage}}
&searchTerm={{kycTemplateSearchTerm}}
Example 25. params
"startPage": {{startPage}}
"perPage": {{resultsPerPage}}
"searchTerm": {{kycTemplateSearchTerm}}
// use trust anchor account, user account, attestation hash or wallet address
Example 26. variables
"startPage": "1"
"resultsPerPage": "10"
"kycTemplateSearchTerm": "0xfad4deb39b71171e0ce68e019d0c3b73873aa9a25220a018334b91e705e2ae76"
// i.e. attestation hash
Example 27. response (200 OK)
{
    "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

Example 28. endpoint
`POST` {{baseUrl}}/api/v1/server/recover_signature
Example 29. params
{
    "type": "BeneficiaryTA",
    "template": {
        "BeneficiaryTAAddress": "0xE55BA3A6735F5817753666e91e18E1B0384EEc84",
        "BeneficiaryTAPublicKey": "02ecfb8809c2582918872dbf1d37541448dd77695e37f7419445de0b7d42649a5bcaf571b15544170f64a047fdca3caeb4ee73cbbbd538813de553caa20e61d8",
        "BeneficiaryTASignatureHash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
        "BeneficiaryTASignature": {
            "r": "0x3a89ccf7a47c96967d67eb8f0aadb68a9f969b12332088ed15bab7bee3bddee3",
            "s": "0x14608240108b02acefd475080ee22b510252881114039b01259b65af45a2fa77",
            "v": "0x25"
        }
    }
}
Example 30. response (200 OK)
{
    "beneficiaryTAPublicKey": "found match",
    "beneficiaryTAAddress": "found match"
}

Recover Originator TA Signature

Example 31. endpoint
`POST` {{baseUrl}}/api/v1/server/recover_signature
Example 32. params
{
    "type": "SenderTA",
    "template": {
        "SenderTAAddress": "0x3b27a09a41D2a1523d6590d7973A5859e5247ACc",
        "SenderTAPublicKey": "21b61c10d3e2c84b2ec17deafdc7b8038e9f0ae76106cd4cbd3b21c2536bde0488386fbffcc30051aa56912aac32b6631cddab1adfb9bb40a87c807bb8a20c53",
        "SenderTASignatureHash": "0x0b709dd4809f36a22fe48250b24a5e41e8aea491bace26627f5c68ea9b4fad3f",
        "SenderTASignature": {
            "r": "0x61e5c94f72f5c93c1e4803ee607c5700c6bea84d39336d0c28751b4686324097",
            "s": "0x7ef0cd720a32962a23661c8aae892e0304c21007189bc377e59e672ff89c5c78",
            "v": "0x26"
        }
    }
}
Example 33. response (200 OK)
{
    "senderTAPublicKey": "found match",
    "senderTAAddress": "found match"
}

Recover Beneficiary User Signature

Example 34. endpoint
`POST` {{baseUrl}}/api/v1/server/recover_signature
Example 35. params
{
    "type": "BeneficiaryUser",
    "template": {
        "BeneficiaryUserAddress": "0x817900c5ad3ba76161e91755e3585aafe9133e23",
        "BeneficiaryUserPublicKey": "128df58c27e089fb39db1af46c804bbb5f67450a537577c99f100e3aad7afcfe42e18043ceb3c0381ed66ca94baee475d0a0dc7d76897ab0519f3d5d102c65e9",
        "BeneficiaryUserSignatureHash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
        "BeneficiaryUserSignature": {
            "r": "0xeab331afedb30910a2c1a7568517824965ca8c3cf12d2fba21875fa1151dcc46",
            "s": "0x1d03cf0becda27fdff579f53358f9c81911b34419c4e3a9d372acd8a6ea6cde3",
            "v": "0x26"
        }
    }
}
Example 36. response (200 OK)
{
    "beneficiaryUserPublicKey": "found match",
    "beneficiaryUserAddress": "found match"
}

Recover Originator User Signature

Example 37. endpoint
`POST` {{baseUrl}}/api/v1/server/recover_signature
Example 38. params
{
    "type": "SenderUser",
    "template": {
        "SenderUserAddress": "0xc1b4fe305348531a167e52d18ecc21c53c5f387e",
        "SenderUserPublicKey": "81ca8cd69d8c68edaa45867d7c84cdb7761b69275330709956686d04aa84c4bec6460e2e3272f7bfef54ad8edbe319256303790c7667c80ea28e39eaf9fa4d69",
        "SenderUserSignatureHash": "0x7ec005c40fadb64f4180dcc14d9f5927f649096a08478a4a5a112a3aa77ca549",
        "SenderUserSignature": {
            "r": "0xbdc267eb938bc4a0ec0265564f6eab93126644c2e6fec5989df90d56c103e9bd",
            "s": "0x6ce31a78a0b8ac2e420371de47d209e212eba99908844557ff0e9844dc078e45",
            "v": "0x26"
        }
    }
}
Example 39. response (200 OK)
{
    "senderUserPublicKey": "found match",
    "senderUserAddress": "found match"
}

Get Blockchain Analytics Providers

Example 40. endpoint
`GET` {{baseUrl}}/api/v1/server/get-blockchain-analytics-providers
Example 41. response (200 OK)
[
    {
        "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

Example 42. endpoint
`GET` {{baseUrl}}/api/v1/server/get-blockchain-analytics-providers-available-networks/{{providerId}}
Example 43. variables
"providerId":"1"
// from get-blockchain-analytics-providers
Example 44. response (200 OK)
[
    {
        "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
    }
]

POST endpoints

Create Shyft User

Example 45. endpoint
`POST` {{baseUrl}}/api/v1/server/create_shyft_user
Example 46. response (200 OK)
{
    "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

Example 47. endpoint
`POST` {{baseUrl}}/api/v1/server/set_v3_attestation
Example 48. params
"ta_account":"0xF937c412e7172c2c8978cEdD850DDD08e0D95e60"
"user_account":"0x96ee3769a2422215626b8a32594e8fbd5dd1b61a"
"jurisdiction":"196"
"coin_blockchain":"ETH"
"coin_token":"POOL"
"coin_address":"0x5481fabc980af705c556517426c81a963af5657d"
"coin_memo":"end-to-end walkthrough"
  • user_account is the originator/sender user account_address from Create Shyft User

  • jurisdiction is the originator/sender VASP jurisdiction id from Get Jurisdictions

Set Trust Anchor Key Value Pair

Example 49. endpoint
`POST` {{baseUrl}}/api/v1/server/set_ta_key_value_pair

TODO

Validate Crypto Proof

Example 50. endpoint
`GET` {{baseUrl}}/api/v1/server/validate_crypto_proof
Example 51. params
"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"}
Example 52. response (200 Response)
{
    "ok"
}

If an invalid proof or params are supplied, the response will be

Example 53. response (400 Bad Response)
{
    "error": {
        "coin_address_crypto_proof": [
            "The crypto proof supplied does not appear to be a valid."
        ]
    }
}

Create KYC Template

Example 54. endpoint
`POST` {{baseUrl}}/api/v1/server/create_kyc_template
Example 55. params
"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)
Example 56. response (200 OK)
{
    "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

Example 57. endpoint
`GET` {{baseUrl}}/api/v1/server/retry_kyc_template
Example 58. params
"attestation_hash": "0xcbc6c36db378cce99028a5417b6c8a36ecc67c686692685f2decb3365dfc0f34"
Example 59. response (200 OK)
{
  "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":""
}
Example 60. response (400 Bad Request)
{
  "error": { "field_name": ["Your error message goes here"] }
}

Encrypt IVMS

Example 61. endpoint
`POST` {{baseUrl}}/api/v1/server/encrypt_ivms
Example 62. params
"public_key": "0x0409e8d4a705e9dff75c5d082b601a8326b77c61b763df76ec242f24b85abd070fcada35335033ec0bfe8308dfcf0ea551b0193836219bbb535f059ade08140772"
"ivms_json": "{"originator":"test kyc data 0x96ee37"}"
The ivms_json above is simplified for demonstration & testing purposes.
Example 63. response (200 OK)
{
    "data": "BOf+rqYkDQvdq+ssmF1aoVVde5yX9vuLQuz9zG0CChOdLD+UgtvqqtiHXatj7wSoRqlqVEC1Wratv8+3JF565tCzDtpGSb7dV2fKGDg6hcTeeut4HSXl1BrWCtHOkb/fP69wrvRYYztLfevmQIn2WVLkCOhPiI4QUdzauiW+pbcK6/yHiUPg65AKZ5mHXivURI5waNVrJuE="
}

Decrypt IVMS

Example 64. endpoint
`POST` {{baseUrl}}/api/v1/server/decrypt_ivms
Example 65. params
"private_key": "0x9ad45912d4f7d60f1dbb263bffdc0ea8532e8b71fe60d36578bcdd1fe1480ed0"
"kyc_data": "BOf+rqYkDQvdq+ssmF1aoVVde5yX9vuLQuz9zG0CChOdLD+UgtvqqtiHXatj7wSoRqlqVEC1Wratv8+3JF565tCzDtpGSb7dV2fKGDg6hcTeeut4HSXl1BrWCtHOkb/fP69wrvRYYztLfevmQIn2WVLkCOhPiI4QUdzauiW+pbcK6/yHiUPg65AKZ5mHXivURI5waNVrJuE="
private_key must begin with 0x
Example 66. response (200 OK)
"{\"originator\":\"test kyc data 0x96ee37\"}"

Generate Blockchain Analytics Report

Example 67. endpoint
`GET` {{baseUrl}}/api/v1/server/generate-blockchain-analytics-report
?providerId={{providerId}}
&network={{network}}
&address={{address}}
Example 68. params
"providerId":{{providerId}}
"network":{{network}}
"address":{{address}}
Example 69. variables
"providerId":"4"
"network":"eth"
"address":"0xFBb1b73C4f0BDa4f67dcA266ce6Ef42f520fBB98"
Example 70. response (200 OK)
{
    "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
}