Skip to content
CCPEDIAby Unity Nodes
Documentation/Canton Network Docs/Splice APIsToken Standard APIsToken Metadata ServiceView on Canton Network Docs ↗

GET /registry/metadata/v1/instruments

GET
/
registry
/
metadata
/
v1
/
instruments
Try it
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request GET \
  --url 'https://example.com/registry/metadata/v1/instruments'
import json
import requests

url = "https://example.com/registry/metadata/v1/instruments"
response = requests.request("GET", url)

print(response.text)
const response = await fetch('https://example.com/registry/metadata/v1/instruments', {
  method: 'GET',
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://example.com/registry/metadata/v1/instruments',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("GET", "https://example.com/registry/metadata/v1/instruments", nil)
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://example.com/registry/metadata/v1/instruments"))
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('https://example.com/registry/metadata/v1/instruments')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
404
500
{
  "instruments": [
    {
      "id": "<string>",
      "name": "<string>",
      "symbol": "<string>",
      "totalSupply": "<string>",
      "totalSupplyAsOf": "2026-01-01T00:00:00Z",
      "decimals": 10,
      "paused": false,
      "pauseInfo": {
        "reason": "<string>",
        "until": "2026-01-01T00:00:00Z"
      },
      "supportedApis": {},
      "showAccountInputFields": false,
      "accountInputFieldsToShow": [
        "provider"
      ]
    }
  ],
  "nextPageToken": "<string>"
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}

List all instruments managed by this instrument admin.

cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request GET \
  --url 'https://example.com/registry/metadata/v1/instruments'
import json
import requests

url = "https://example.com/registry/metadata/v1/instruments"
response = requests.request("GET", url)

print(response.text)
const response = await fetch('https://example.com/registry/metadata/v1/instruments', {
  method: 'GET',
});

console.log(await response.text());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://example.com/registry/metadata/v1/instruments',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'GET',
]);

$response = curl_exec($curl);
echo $response;
package main

import (
  "fmt"
  "io"
  "net/http"
)

func main() {
  req, _ := http.NewRequest("GET", "https://example.com/registry/metadata/v1/instruments", nil)
  response, _ := http.DefaultClient.Do(req)
  defer response.Body.Close()
  body, _ := io.ReadAll(response.Body)
  fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://example.com/registry/metadata/v1/instruments"))
    .method("GET", HttpRequest.BodyPublishers.noBody())
    .build();
var response = HttpClient.newHttpClient().send(
    request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
require 'net/http'
require 'uri'

uri = URI('https://example.com/registry/metadata/v1/instruments')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
404
500
{
  "instruments": [
    {
      "id": "<string>",
      "name": "<string>",
      "symbol": "<string>",
      "totalSupply": "<string>",
      "totalSupplyAsOf": "2026-01-01T00:00:00Z",
      "decimals": 10,
      "paused": false,
      "pauseInfo": {
        "reason": "<string>",
        "until": "2026-01-01T00:00:00Z"
      },
      "supportedApis": {},
      "showAccountInputFields": false,
      "accountInputFieldsToShow": [
        "provider"
      ]
    }
  ],
  "nextPageToken": "<string>"
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}

Query parameters

pageSize
number
default:"25"
OpenAPI type: integer (int32).Number of instruments per page.
pageToken
string
The nextPageToken received from the response for the previous page.

Responses

200

ok
application/json
instruments
Instrument[]
required

Show child attributes

id
string
required
The unique identifier assigned by the admin to the instrument.
name
string
required
The display name for the instrument recommended by the instrument admin. This is not necessarily unique.
symbol
string
required
The symbol for the instrument recommended by the instrument admin. This is not necessarily unique.
totalSupply
string
Decimal encoded current total supply of the instrument.
totalSupplyAsOf
string (date-time)
The timestamp when the total supply was last computed.
decimals
integer (int8)
default:"10"
required
The number of decimal places used by the instrument. Must be a number between 0 and 10, as the Daml interfaces represent holding amounts as Decimal values, which use 10 decimal places and are precise for 38 digits. Setting this to 0 means that the instrument can only be held in whole units. This number SHOULD be used for display purposes in a wallet to decide how many decimal places to show and accept when displaying or entering amounts.
paused
boolean
default:"false"
Indicates whether the instrument is currently paused. A paused instrument cannot be transferred or allocated.
pauseInfo
PauseInfo
Additional information about the instrument pause state.

Show child attributes

reason
string
Why the instrument is paused.
until
string (date-time)
Timestamp (exclusive) until which the instrument is paused, if known.
supportedApis
SupportedApis
required
Map from token standard API name to the minor version of the API supported, e.g., splice-api-token-metadata-v1 -> 1 where the 1 corresponds to the minor version.
showAccountInputFields
boolean
default:"false"
Informs wallets whether the instrument supports non-basic accounts and the wallet should thus show input fields for both the account provider and the account id in input forms for transfers and allocations. Note that wallets should always show non-null account providers and account ids when displaying transfers and allocations. This property is deprecated in favor of the more fine-grained accountInputFieldsToShow property.
accountInputFieldsToShow
AccountInputFieldsToShow
Which account input field(s) wallets should show in forms.
nextPageToken
string
The token for the next page of results, to be used as the lastInstrumentId for the next page.

404

not found
application/json
error
string
required

500

Internal server error
application/json
error
string
required

History

Updated0.6.12

The GET /registry/metadata/v1/instruments operation changed in this snapshot.

Updated0.6.11

The GET /registry/metadata/v1/instruments operation changed in this snapshot.