> ## Documentation Index
> Fetch the complete documentation index at: https://docs-en.keysecure.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Integration Testing

To facilitate clients in quickly and conveniently integrating the system, Keysecure has outlined the core processes based on past client integration experiences, focusing on the integration solutions for \[**Get Receiving(Deposit) Address**] , \[**User Receiving(Deposit)**] and \[**User Transfer (Withdrawal)**]. The details are as follows:

## Get Receiving Address

* Create a wallet `/api/mpc/sub_wallet/create`

* Create a coin address for the wallet `/api/mpc/sub_wallet/create/address`

* Keysecure callbacks Co-Signer for signing, and Co-Signer collaborates with Keysecure node to complete the signing

* Successfully signed, return the address created for the coin

> [!WARNING]
>
> Addresses support two types: system addresses and user addresses. The `system address` is used for auto sweep or is used as change address, cannot be assigned to users.

![](https://mintcdn.com/keysecure-en/U8Qkwr5UOHzcbJEo/images/apis/Group%20427320188.png?fit=max\&auto=format\&n=U8Qkwr5UOHzcbJEo\&q=85\&s=ade1b5f539ffc20958d136c50f78703e)

## User Receiving (Deposit)

* Users complete registration within the client system.

* When users view the coin receiving address in the frontend, the client system assigns a coin address to the user.

* Users deposits assets to the assigned address.

* Keysecure monitors the blockchain address for incoming transactions. After detecting a deposit, Keysecure notifies the client's business system of the receiving notification (the client's system actively retrieves `/api/mpc/billing/sync_deposit_list`).

* The client obtains the current block height of the corresponding blockchain for the coin (`/api/mpc/chain_height`).

* The client system credits the user's account after confirming the required number of secure confirmations.

* User receives the coin (deposits successful).

![](https://mintcdn.com/keysecure-en/U8Qkwr5UOHzcbJEo/images/apis/Group%20427320190.png?fit=max\&auto=format\&n=U8Qkwr5UOHzcbJEo\&q=85\&s=5ca059c0fadca096cbb22f3d7f7b1f13)

## User Transfer (Withdrawal)

* Users initiate a transfer in the client system.

* After the client system approves the Transfer, it initiates a Transfer request to the Keysecure system via API `/api/mpc/billing/withdraw`.

* Co-Signer periodically retrieves withdrawal transactions. If Co-Signer has configured a callback program, it confirms with the client's business system. If Co-Signer has configured signature verification, it verifies the signature and collaborates with the Keysecure  node to sign.

* Once signed, Keysecure broadcasts the transaction to the blockchain and monitors its status.

> [!TIP]
>
> Supported blockchains for acceleration can be obtained through the API `/api/mpc/wallet/open_coin`.

* After blockchain confirmation, Keysecure notifies the client's business system of the transfer notification (the client's system actively retrieves `/api/mpc/billing/sync_withdraw_list`).

* The client system updates the order status.

* User transfer out successful.

![](https://mintcdn.com/keysecure-en/U8Qkwr5UOHzcbJEo/images/apis/Group%20427320192.png?fit=max\&auto=format\&n=U8Qkwr5UOHzcbJEo\&q=85\&s=c6f4f9520fc1b5b3138d22af8f257c8c)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.