Token Standard OpenAPI

These are the OpenAPI specifications for the Canton Network Token Standard APIs. See the Daml docs for an overview of the Daml APIs.

Token Metadata Reference

GET /registry/metadata/v1/info

Get information about the registry. The response includes the standards supported by the registry.

Example request:

GET /registry/metadata/v1/info HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "adminId": "string",
        "supportedApis": {}
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 500 Internal Server Error

    Internal server error

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

GET /registry/metadata/v1/instruments

List all instruments managed by this instrument admin.

Query Parameters:
  • pageSize (integer) – Number of instruments per page.

  • pageToken (string) – The nextPageToken received from the response for the previous page.

Example request:

GET /registry/metadata/v1/instruments HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "instruments": [
            {
                "id": "string",
                "name": "string",
                "symbol": "string",
                "totalSupply": "string",
                "totalSupplyAsOf": "2025-08-07T09:31:01.421109",
                "decimals": 1,
                "supportedApis": {}
            }
        ],
        "nextPageToken": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 500 Internal Server Error

    Internal server error

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

GET /registry/metadata/v1/instruments/{instrumentId}

Retrieve an instrument’s metadata.

Parameters:
  • instrumentId (string)

Example request:

GET /registry/metadata/v1/instruments/{instrumentId} HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": "string",
        "name": "string",
        "symbol": "string",
        "totalSupply": "string",
        "totalSupplyAsOf": "2025-08-07T09:31:01.421109",
        "decimals": 1,
        "supportedApis": {}
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 500 Internal Server Error

    Internal server error

    Example response:

    HTTP/1.1 500 Internal Server Error
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

Transfer Instruction Reference

POST /registry/transfer-instruction/v1/transfer-factory

Get the factory and choice context for executing a direct transfer.

Example request:

POST /registry/transfer-instruction/v1/transfer-factory HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "choiceArguments": {},
    "excludeDebugFields": true
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "factoryId": "string",
        "transferKind": "self",
        "choiceContext": {
            "choiceContextData": {},
            "disclosedContracts": [
                {
                    "templateId": "string",
                    "contractId": "string",
                    "createdEventBlob": "string",
                    "synchronizerId": "string",
                    "debugPackageName": "string",
                    "debugPayload": {},
                    "debugCreatedAt": "2025-08-07T09:31:01.421109"
                }
            ]
        }
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/accept

Get the choice context to accept a transfer instruction.

Parameters:
  • transferInstructionId (string) – The contract ID of the transfer instruction to accept.

Example request:

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/accept HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/reject

Get the choice context to reject a transfer instruction.

Parameters:
  • transferInstructionId (string) – The contract ID of the transfer instruction to reject.

Example request:

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/reject HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/withdraw

Get the choice context to withdraw a transfer instruction.

Parameters:
  • transferInstructionId (string) – The contract ID of the transfer instruction to withdraw.

Example request:

POST /registry/transfer-instruction/v1/{transferInstructionId}/choice-contexts/withdraw HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

Allocation Reference

POST /registry/allocations/v1/{allocationId}/choice-contexts/execute-transfer

Get the choice context to execute a transfer on an allocation.

Parameters:
  • allocationId (string) – The contract ID of the allocation whose transfer the caller wants to execute.

Example request:

POST /registry/allocations/v1/{allocationId}/choice-contexts/execute-transfer HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

POST /registry/allocations/v1/{allocationId}/choice-contexts/withdraw

Get the choice context to withdraw an allocation.

Parameters:
  • allocationId (string) – The contract ID of the allocation to withdraw.

Example request:

POST /registry/allocations/v1/{allocationId}/choice-contexts/withdraw HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

POST /registry/allocations/v1/{allocationId}/choice-contexts/cancel

Get the choice context to cancel an allocation.

Parameters:
  • allocationId (string) – The contract ID of the allocation to cancel.

Example request:

POST /registry/allocations/v1/{allocationId}/choice-contexts/cancel HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "meta": {}
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "choiceContextData": {},
        "disclosedContracts": [
            {
                "templateId": "string",
                "contractId": "string",
                "createdEventBlob": "string",
                "synchronizerId": "string",
                "debugPackageName": "string",
                "debugPayload": {},
                "debugCreatedAt": "2025-08-07T09:31:01.421109"
            }
        ]
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

Allocation Instruction Reference

POST /registry/allocation-instruction/v1/allocation-factory

Get the factory and choice context for creating allocations using the AllocationFactory_Allocate choice.

Example request:

POST /registry/allocation-instruction/v1/allocation-factory HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "choiceArguments": {},
    "excludeDebugFields": true
}
Status Codes:
  • 200 OK

    ok

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "factoryId": "string",
        "choiceContext": {
            "choiceContextData": {},
            "disclosedContracts": [
                {
                    "templateId": "string",
                    "contractId": "string",
                    "createdEventBlob": "string",
                    "synchronizerId": "string",
                    "debugPackageName": "string",
                    "debugPayload": {},
                    "debugCreatedAt": "2025-08-07T09:31:01.421109"
                }
            ]
        }
    }
    

  • 400 Bad Request

    bad request

    Example response:

    HTTP/1.1 400 Bad Request
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

  • 404 Not Found

    not found

    Example response:

    HTTP/1.1 404 Not Found
    Content-Type: application/json
    
    {
        "error": "string"
    }
    

Comments