Skip to content
Documentation/canton-network-docs/Splice APIsToken Standard APIsAllocation Instruction V2 APIView on canton-network-docs
canton-network-docs/Splice APIsToken Standard APIsAllocation Instruction V2 API

POST /registry/allocation

POST
/
registry
/
allocation-instruction
/
v2
/
allocation-factory
Try it
POST /registry/allocation-instruction/v2/allocation-factory

cURL

curl --request POST \
  --url https://api.example.com/registry/allocation-instruction/v2/allocation-factory \
  --header 'Content-Type: application/json' \
  --data '
{
  "choiceArguments": {},
  "excludeDebugFields": false
}
'
import requests

url = "https://api.example.com/registry/allocation-instruction/v2/allocation-factory"

payload = {
    "choiceArguments": {},
    "excludeDebugFields": False
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({choiceArguments: {}, excludeDebugFields: false})
};

fetch('https://api.example.com/registry/allocation-instruction/v2/allocation-factory', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.example.com/registry/allocation-instruction/v2/allocation-factory",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'choiceArguments' => [
        
    ],
    'excludeDebugFields' => false
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
package main

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

func main() {

	url := "https://api.example.com/registry/allocation-instruction/v2/allocation-factory"

	payload := strings.NewReader("{\n  \"choiceArguments\": {},\n  \"excludeDebugFields\": false\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api.example.com/registry/allocation-instruction/v2/allocation-factory")
  .header("Content-Type", "application/json")
  .body("{\n  \"choiceArguments\": {},\n  \"excludeDebugFields\": false\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/registry/allocation-instruction/v2/allocation-factory")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n  \"choiceArguments\": {},\n  \"excludeDebugFields\": false\n}"

response = http.request(request)
puts response.read_body
200
400
404
409
{
  "factoryId": "<string>",
  "choiceContext": {
    "choiceContextData": {},
    "disclosedContracts": [
      {
        "templateId": "<string>",
        "contractId": "<string>",
        "createdEventBlob": "<string>",
        "synchronizerId": "<string>",
        "debugPackageName": "<string>",
        "debugPayload": {},
        "debugCreatedAt": "2023-11-07T05:31:56Z"
      }
    ]
  }
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}

Body

application/json
choiceArguments
object
required

The arguments that are intended to be passed to the choice provided by the factory. To avoid repeating the Daml type definitions, they are specified as JSON objects. However the concrete format is given by how the choice arguments are encoded using the Daml JSON API (with the extraArgs.context and extraArgs.meta fields set to the empty object).

The choice arguments are provided so that the registry can also provide choice-argument specific contracts, e.g., the configuration for a specific instrument-id.

excludeDebugFields
boolean
default:false

If set to true, the response will not include fields prefixed with 'debug'. Useful to save bandwidth.

Response

200
application/json

ok

A factory contract together with the choice context required to exercise the choice provided by the factory. Typically used to implement the generic initiation of on-ledger workflows via a Daml interface.

Clients SHOULD avoid reusing the same FactoryWithChoiceContext for exercising multiple choices, as the choice context MAY be specific to the choice being exercised.

factoryId
string
required

The contract ID of the contract implementing the factory interface.

choiceContext
object
required

The context required to exercise a choice on a contract via an interface. Used to retrieve additional reference data that is passed in via disclosed contracts, which are in turn referred to via their contract ID in the choiceContextData.

Asset implementations SHOULD avoid that this value depends on contract-ids passed in the choice arguments, so that clients can prefetch choice contexts when chaining multiple token standard actions together in a single Daml transaction.

Show child attributes