# Receive assets

You can receive assets in one of the following ways:

- From an external counterparty on the same ledger.
- From another Ripple Custody account.


When Ripple Custody detects the incoming transaction, it internally creates the following entities, that you can use to track the operation:

- A transaction.
- One or more transfers.


For more information, see [Incoming transaction objects](/products/custody/v1.36/transactions/initiation#incoming-transactions).

The assets are added to your account balance but not available to use until you release them from quarantine. If Ripple Custody creates multiple transfers, you can choose which ones to release from quarantine.

For transfers from an account on a Bitcoin-type ledger, Ripple Custody automatically creates a new account address.

## Ledger-specific prerequisites

Some ledgers require you to perform setup tasks for specific asset sending operations. For more information, see [Ledger-specific account setup](/products/custody/v1.36/accounts-and-assets/accounts/ledger-specific-settings).

## Provide account details to your counterparty

To provide account details:

1. Retrieve the account address, as described in [View account details](/products/custody/v1.36/accounts-and-assets/accounts/manage-accounts-api#view-account-details).
2. Share the details with your counterparty, so they can send the assets.


Ripple Custody receives the incoming transaction and performs the following tasks:

- Adds the assets to your account in a quarantined state.
- Creates a transaction.
- Creates one or more transfers, to represent the separate amounts associated with the transaction, such as the cryptocurrency amount and the fees.


To finish the process, release the assets. For more information, see [Release quarantined assets](#release-quarantined-assets).

## Check details of the incoming transaction

To view details of the incoming transaction, run one or more of the following operations:

- To get a new account balance, see [Check account balances](/products/custody/v1.36/accounts-and-assets/accounts/manage-accounts-api#check-account-balances).
- To view the internally-created transaction, see [View incoming transactions](/products/custody/v1.36/transactions/viewing-assets/view-and-audit-api#view-incoming-transactions).
- To view the internally-created transfers, see [View the transfers for a transaction](/products/custody/v1.36/transactions/viewing-assets/view-and-audit-api#view-the-transfers-for-a-transaction). You need the transfer information to release quarantined funds.


## Release quarantined assets

Assets in an incoming transaction are only added to the account after they are released from quarantine.

### Prerequisites

Before you can release quarantined assets, you need the following:

| Prerequisite | Additional information |
|  --- | --- |
| The ID of the receiving account | [View account details](/products/custody/v1.36/accounts-and-assets/accounts/manage-accounts-api#view-account-details) |
| Details of the transfers created for the account | [View the transfers for a transaction](/products/custody/v1.36/transactions/viewing-assets/view-and-audit-api#view-the-transfers-for-a-transaction) |
| A new intent ID, in a standard UUID format |  |


### Create the quarantine release request

System change process
All new requests to change the system state follow the same process. To familiarize yourself with this process first, see [Manage intents and approvals](/products/custody/v1.36/governance/intents/manage-intents-and-approvals).

To release the assets from quarantine, follow the steps in [Manage intents and approvals](/products/custody/v1.36/governance/intents/manage-intents-and-approvals), with a payload similar to the following example.

#### Payload example


```json
 "payload":{
     "accountId": "d94b76bc-d373-434a-b317-12a9df7a0ef3",
     "transferIds": ["ad742892-44fb-4cb2-bd09-a9991fe2e4f4"],
     "type": "v0_ReleaseQuarantinedTransfers"
 },
```

Fields of the `payload` block to note are as follows:

| Field | Description |
|  --- | --- |
| `accountId` | ID of the account that received the funds. |
| `transferIds` | Details of one or more transfers to release from quarantine. |
| `type` | `v0_ReleaseQuarantinedTransfers` |


Before signing and submitting the release request, call the [Perform a dry run for an intent](/products/custody/v1.36/reference/api/openapi/intents/intentdryrun) operation with the release payload. For the dry-run request body format, see [Dry run and signature request body](/products/custody/v1.36/governance/intents/intent-request-structure#dry-run-and-signature-request-body).

The assets are released when the intent is successfully approved and executed.