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

# Compatibility with V1 wallets on old Registry versions

CIP-112 support was introduced with version `0.14` of the Registry App. This page outlines
potential compatibility issues when interacting with wallets on older Registry DAR versions.

This is an additional aspect to the [compatibility rules](https://github.com/canton-foundation/cips/blob/main/cip-0112/cip-0112.md#51-compatibility-rules)
outlined in the CIP text.

## Account selection

In CIP-112, transfers can be made from and to a specific holder account. The account
identifier is represented as a textual `label` field on the `Holding` contract.

A user of a Token Standard V2 compatible wallet can therefore have multiple Holding UTXOs
with different labels for a given instrument. For instance:

| Holding UTXO | Instrument | Amount | Label       |
| :----------- | :--------- | :----- | :---------- |
| `cid1`       | INST       | 100    | `<empty>`   |
| `cid2`       | INST       | 100    | `<empty>`   |
| `cid3`       | INST       | 100    | `account-1` |

If the user now wishes to transfer 150 units to a receiver who uses a V1 wallets on an older
Registry version (say, 0.13), the input Holding UTXOs need to be selected carefully. This is
because **older Registry models expect input holdings to have consistent labels**, failing with a Daml
interpretation error otherwise.

| Selected input UTXOs | Registry version of the receiver | Outcome                                        |
| :------------------- | :------------------------------- | :--------------------------------------------- |
| `[cid1, cid2]`       | 0.13                             | Success                                        |
| `[cid1, cid3]`       | 0.13                             | Failure due to mixed input labels              |
| `[cid1, cid3]`       | 0.14                             | Success, as 0.14 can handle mixed input labels |

### Recommended mitigation step

The two mitigation options to circumvent this compatibility issue are to

<Accordion title="Filter" defaultOpen>
  Filter input Holding UTXOs to ensure the provided inputs have consistent labels.
</Accordion>

<Accordion title="Merge before transfer" defaultOpen>
  Merge input Holding UTXOs to obtain an output Holding with a sufficiently large amount.
</Accordion>
