VerifyVASP
  • Welcome
  • Change Log
  • Getting Started
    • Getting Started with VerifyVASP
    • Product Overview
    • Alliance Registration & API Key Creation
    • VASP API Functionality
    • Database
    • Enclave Installation & Execution
    • Security Guide
    • Robot VASP Utilization
    • Enclave Server API Utilization
    • Enclave Server Health Monitoring & Troubleshooting
  • Reference
    • Enclave API Reference
      • v1
        • VASP ID
        • VASP List
        • Screening API
          • Risk Assessment with Chainalysis Sanction API
          • Risk Assessment with Chainalysis KYT API
          • Risk Assessment with Refinitiv WCO API
        • User Account Verification
        • User Verification
        • Verification Result List
        • Verification Result by UUID
        • Transaction Result Report
        • Error Report
        • Transaction Status Query
    • VASP API Reference
      • User Account Verification
      • User Verification
      • Transaction Status Query
      • Callback API
      • Decrypting Database Encryption Key
    • IVMS101 Guide
      • About IVMS101 Standard
      • IVMS101 Message Format Guide
      • IVMS101 Personal Data Fields
    • Supplement
      • Network Field
      • Wallet address and transaction ID standards
    • Glossary
Powered by GitBook
On this page
  • User Scenario
  • User Withdrawal Request
  • How to Process Multiple Withdrawal Requests in a Single Transaction
  • Enclave Server API Reference
  1. Getting Started

Enclave Server API Utilization

A guide to the purpose of the Enclave Server API and the order of calls.

PreviousRobot VASP UtilizationNextEnclave Server Health Monitoring & Troubleshooting

Last updated 1 year ago

User Scenario

A guide to using the enclave server API when a user requests for withdrawal via a VASP.

User Withdrawal Request

A user requests withdrawal via a VASP. Above is a reference image to understand the purpose of API.

  • For example, when a user requests withdrawal via a VASP application,

  • a user must enter the amount, the beneficiary VASP, the beneficiary address, and the beneficiary name.

    • Amount: How much virtual asset will be sent.

    • Beneficiary VASP: The VASP to which virtual asset is sent. Choose one from the list of receivable VASPs.

    • Beneficiary Address: The account number to which virtual asset is sent.

    • Beneficiary Name: The name of the beneficiary receiving the virtual asset.

  • For convenience, VerifyVASP provides a list of Beneficiary VASPs.

    • By calling a GET /vasps API from a VASP’s backend, you can provide a list on a user’s screen.

    • VASP can manage the list itself and provide the list to the users (However, the VaspID must be consistent with the Vasp defined in the VASP list).

  • Click withdrawal.

    • In the VASP backend, the verification process due to Travel Rule proceeds via VerifyVASP before the transaction of the actual withdrawal is sent to the blockchain.

    • Necessarily

      • Proceed with all verification processes on all of the information, including the information entered above such as Amount, Beneficiary VASP, Beneficiary Address, and Beneficiary Name.

      • In order to comply with the travel rules, it is necessary to check whether the account is owned by the exchange in advance, rather than transmitting all data of the sender and recipient from the beginning.

      • Use the POST /v1/verifications/account API to check if the wallet address is owned by the beneficiary VASP.

        • If the amount exceeds the legal standard, the wallet address and the recipient's name are delivered together for verification.

        • In this case, we do not perform KYC or Sanction Screening, but simply check if the account information owned by the exchange is correct.

        • If the wallet address of the recipient VASP is correct, the user verification process is performed to comply with the travel rules below.

      • You can check using POST /verifications API.

      • According to the IVMS101 message protocol, information about the beneficiary and originator should be sent together.

      • In the VASP backend, information about the originator should be offered in IVMS101 format.

    • Additionally, you can perform risk assessment with the wallet address or the personal information of the beneficiary/originator received from the other VASP.

      • You can assess the risk for the wallet address of counter party user using POST /v1/risk-assessment/chainalysis-sanction API.

      • You can assess the risk for the wallet address of counter party user or the risk for the transfer transaction using POST /v1/risk-assessment/chainalysis-kyt API.

      • You can assess the risk for the counter party user using POST /v1/risk-assessment/refinitiv-wco API.

  • Whether to proceed with the transaction must be determined after the result of the verification process.

    • Although an ideal flow is yet to be decided, two options are plausible.

      • Proceeding actual transaction after VASP backend checks the result value by itself.

      • Display verification results to the users so that they can optionally proceed.

    • Proceed with the actual transaction in the VASP backend.

  • Report withdrawal results.

    • In order for the VASP backend to finish the transaction, report (share) Transaction Hash to the beneficiary VASP.

      • UsePOST /v1/verifications/tx API.

    • If you decided not to send transactions permanently because of an error, report (share) an error to the beneficiary VASP.

      • UsePOST /v1/verifications/error API.

    • If a beneficiary VASP did not receive the transaction process report for a certain amount of time, a beneficiary VASP can ask for the transaction process status to the originating VASP. Use POST /v1/verifications/tx/inquiry API.

  • View verification history.

    • If you would like to view verification history proceeded during transactions via VASP in its backend,

      • Use GET /v1/verifications API.

    • If you need a screen easily approachable from VASP, compose one using the verification inquiry API above, which is provided by enclave.

How to Process Multiple Withdrawal Requests in a Single Transaction

  • If a VASP wants to proceed with multiple withdrawal requests as a single transaction to reduce fees, refer to the steps below.

    • VASP backend performs a verification process on each of the withdrawal requests as above N times.

      • Then a verificationUuid per withdrawal information is created.

    • Report a txHash and vout value (if exist), which is created by a single transaction transmission.

      • Report N times with the same txHash and different vout value for each verificationUuid corresponding to each withdrawal attempt.

  • VerifyVASP does not automatically process multiple withdrawal requests as a single transaction.

Enclave Server API Reference

Enclave API Reference