> ## 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.

# Token Standard APIs (CIP 56 / CIP 112)

The Registry App supports the Canton Network Token Standard, as defined in [CIP-56](https://github.com/canton-foundation/cips/blob/main/cip-0056/cip-0056.md)
and [CIP-112](https://github.com/canton-foundation/cips/blob/main/cip-0112/cip-0112.md).

## App / Wallet providers integration

App providers and Wallet providers wishing to transact Registry holdings as part of their application's workflows must make sure that

* all supported versions of the `utility-registry-app-v0` DARs are installed on their node
* the application is configured to source off-ledger data from the [token standard endpoints](/registry/apis/token-standard/off-ledger-api)

The Registry dApp UI supports the `AllocationRequest` standard to read allocation requests from other applications and create corresponding `Allocations`.

You can download the bundle containing the DAR files from [the Releases page](/registry/releases/daml-models).

## Instrument admin actions

Instrument admins who wish to enable token-standard transfers for the tokens they manage must ensure the following contracts have been created

| Contract | Purpose |
| - | - |
| `AllocationFactory` | Enables users to create and settle transfer offers and allocations |
| `TransferRule` | Validates requirements are met upon transfer execution |

Both contracts can be instantiated and archived using the dApp UI.

## Support of Token Standard V2 (CIP-112) for a given instrument admin

While all supported versions of the Registry App implement the CIP-56 interfaces,
support for CIP-112 has only been introduced starting with version **0.14** of the app.
A given Registry instrument admin supports CIP-112 only if they have installed the 0.14 DARs.

As an app or wallet provider, you can use the `/registry/metadata/v1/info` token metadata endpoint
in order to verify whether a given tokenizer supports the CIP-112 interfaces, or whether a fallback
to CIP-56 is needed.

<AccordionGroup>
  <Accordion title="Example response: CIP-112 supported" defaultOpen>
    ```json theme={null}
    {
      "adminId": "registrar::12205dd5bd685449653161d47d2a7cb01c25d5b0a02dab5c79cafc8dafd811c79895",
      "supportedApis": {
        "splice-api-token-transfer-instruction-v2": 1,
        "splice-api-token-holding-v2": 1,
        "splice-api-token-transfer-instruction-v1": 1,
        "splice-api-token-allocation-instruction-v2": 1,
        "splice-api-token-metadata-v1": 1,
        "splice-api-token-allocation-v2": 1,
        "splice-api-token-allocation-request-v1": 1,
        "splice-api-token-allocation-v1": 1,
        "splice-api-token-holding-v1": 1,
        "splice-api-token-allocation-instruction-v1": 1
      }
    }
    ```
  </Accordion>

  <Accordion title="Example response: CIP-112 not supported">
    If the instrument admin has not installed the 0.14 DARs, the response does not include the v2 interfaces:

    ```json theme={null}
    {
      "adminId": "registrar::12205dd5bd685449653161d47d2a7cb01c25d5b0a02dab5c79cafc8dafd811c79895",
      "supportedApis": {
        "splice-api-token-transfer-instruction-v1": 1,
        "splice-api-token-metadata-v1": 1,
        "splice-api-token-allocation-request-v1": 1,
        "splice-api-token-allocation-v1": 1,
        "splice-api-token-holding-v1": 1,
        "splice-api-token-allocation-instruction-v1": 1
      }
    }
    ```
  </Accordion>
</AccordionGroup>
