Scan Open API Reference
Scan Open API Reference
external
GET /v0/dsoExample request:
GET /v0/dso HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "sv_user": "string", "sv_party_id": "string", "dso_party_id": "string", "voting_threshold": 1, "latest_mining_round": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" }, "amulet_rules": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" }, "dso_rules": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" }, "sv_node_states": [ { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } ], "initial_round": "string" }
For every argument that is a valid onboarded validator, return statistics on its liveness activity, according to on-ledger state at the time of the request.
Query Parameters:validator_ids (array) – A list of validator party IDs, one per specification of the parameter. Any party IDs not matching onboarded validators will be ignored (Required)
Example request:
GET /v0/validators/validator-faucets?validator_ids=%5B%27string%27%5D HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "validatorsReceivedFaucets": [ { "validator": "string", "numRoundsCollected": 1, "numRoundsMissed": 1, "firstCollectedInRound": 1, "lastCollectedInRound": 1 } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Retrieve Canton scan configuration for all SVs, grouped by connected synchronizer ID
Example request:
GET /v0/scans HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "scans": [ { "domainId": "string", "scans": [ { "publicUrl": "string", "svName": "string" } ] } ] }
List all validators currently approved by members of the DSO, paginated, sorted newest-first.
Query Parameters:after (integer) – A
next_page_tokenfrom a prior response; if absent, return the first page.limit (integer) – Maximum number of elements to return, 1000 by default.
Example request:
GET /v0/admin/validator/licenses HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "validator_licenses": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ], "next_page_token": 1 }
Retrieve Canton sequencer configuration for all SVs, grouped by connected synchronizer ID
Example request:
GET /v0/dso-sequencers HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "domainSequencers": [ { "domainId": "string", "sequencers": [ { "migrationId": 1, "synchronizerSerial": 1, "id": "string", "url": "string", "svName": "string", "availableAfter": "2026-05-15T15:10:43.878116" } ] } ] }
Get the ID of the participant hosting a given party. This will fail if there are multiple party-to-participant mappings for the given synchronizer and party, which is not currently supported.
Parameters:domain_id (string) – The synchronizer ID to look up a mapping for.
party_id (string) – The party ID to lookup a participant ID for.
Example request:
GET /v0/domains/{domain_id}/parties/{party_id}/participant-id HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "participant_id": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Get the IDs of the participants hosting a given party. Unlike /v0, this endpoint supports parties hosted on multiple participants.
Parameters:domain_id (string) – The synchronizer ID to look up a mapping for.
party_id (string) – The party ID to lookup a participant ID for.
Example request:
GET /v1/domains/{domain_id}/parties/{party_id}/participant-id HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "participant_ids": [ "string" ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Get a member’s traffic status as reported by the sequencer, according to ledger state at the time of the request.
Parameters:domain_id (string) – The synchronizer ID to look up traffic for.
member_id (string) – The participant or mediator whose traffic to look up, in the format
code::id::fingerprintwherecodeisPARorMED.
Example request:
GET /v0/domains/{domain_id}/members/{member_id}/traffic-status HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "traffic_status": { "actual": { "total_consumed": 1, "total_limit": 1 }, "target": { "total_purchased": 1 } } }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Every closed mining round on the ledger still in post-close process for the connected Splice network, in round number order, earliest-first.
Example request:
GET /v0/closed-rounds HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "rounds": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
All current open and issuing mining rounds, if the request is empty; passing contract IDs in the request can reduce the response data for polling/client-cache-update efficiency.
Example request:
POST /v0/open-and-issuing-mining-rounds HTTP/1.1
Host: example.com
Content-Type: application/json
{
"cached_open_mining_round_contract_ids": [
"string"
],
"cached_issuing_round_contract_ids": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "time_to_live_in_microseconds": 1, "open_mining_rounds": {}, "issuing_mining_rounds": {} }
Returns the update history in ascending order, paged, from ledger begin or optionally starting after a record time.
Compared to /v1/updates, the /v2/updates removes the offset field in responses,
which was hardcoded to 1 in /v1/updates for compatibility, and is now removed.
/v2/updates sorts events lexicographically in events_by_id by ID for convenience, which should not be confused with the
order of events in the transaction, for this you should rely on the order of root_event_ids and child_event_ids.
Updates are ordered lexicographically by (migration id, record time).
For a given migration id, each update has a unique record time.
The record time ranges of different migrations may overlap, i.e.,
it is not guaranteed that the maximum record time of one migration is smaller than the minimum record time of the next migration,
and there may be two updates with the same record time but different migration ids.
Example request:
POST /v2/updates HTTP/1.1
Host: example.com
Content-Type: application/json
{
"after": {
"after_migration_id": 1,
"after_record_time": "string"
},
"page_size": 1,
"daml_value_encoding": "compact_json"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, { "update_id": "string", "offset": "string", "record_time": "string", "event": { "submitter": "string", "source_synchronizer": "string", "target_synchronizer": "string", "migration_id": 1, "unassign_id": "string", "created_event": { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] }, "reassignment_counter": 1 } } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the update with the given update_id.
Compared to /v1/updates/{update_id}, the /v2/updates/{update_id} removes the offset field in responses,
which was hardcoded to 1 in /v1/updates/{update_id} for compatibility, and is now removed.
/v2/updates/{update_id} sorts events lexicographically in events_by_id by ID for convenience, which should not be confused with the
order of events in the transaction, for this you should rely on the order of root_event_ids and child_event_ids.
update_id (string)
daml_value_encoding (string)
Example request:
GET /v2/updates/{update_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the update associated with the given hash of the prepared transaction.
This endpoint is not always BFT safe. For transactions committed before a scan instance started indexing hashes, the instance will return a 404 error. For transactions committed around the time different scans started indexing hashes, some scan instances might return a 404 error while others return the matching update.
This is in contrast to the v2/updates and v2/updates/{update_id} endpoints, which are guaranteed to be always BFT safe.
hash (string)
daml_value_encoding (string)
Example request:
GET /v2/updates/hash/{hash} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the timestamp of the most recent snapshot before the given date, for the given migration_id. This corresponds to the record time of the last transaction in the snapshot.
Query Parameters:before (string) – (Required)
migration_id (integer) – (Required)
Example request:
GET /v0/state/acs/snapshot-timestamp?before=2026-05-15T15%3A10%3A43.878116&migration_id=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the timestamp of the first snapshot after the given date, for the given migration_id or larger.
Query Parameters:after (string) – (Required)
migration_id (integer) – (Required)
Example request:
GET /v0/state/acs/snapshot-timestamp-after?after=2026-05-15T15%3A10%3A43.878116&migration_id=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the ACS in creation date ascending order, paged, for a given migration id and record time. Unlike /v0/state/acs, every contract is identified by an (optional) update_id (as opposed to the event ID in /v0/state/acs, which was not BFT-safe). The update_id is the ID of the update in which the contract was created, and can be used to correlate with updates returned by /v2/updates. For contracts created in an earlier migration ID, the update_id will be absent.
Example request:
POST /v1/state/acs HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"after": 1,
"page_size": 1,
"party_ids": [
"string"
],
"templates": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "created_events": [ { "created_in_update_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] } ], "next_page_token": 1 }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Takes a snapshot of the ACS at the current time.
The responses can be used as parameters to /v0/state/acs to retrieve the snapshot.
Disabled in production environments due to its persistent alteration of
the behavior of future invocations of /v0/state/acs, as it causes an
immediate internal snapshot and delay in the next automatic snapshot.
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1 }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the active amulet contracts for a given migration id and record time, in creation date ascending order, paged.
Example request:
POST /v1/holdings/state HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"after": 1,
"page_size": 1,
"owner_party_ids": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "created_events": [ { "created_in_update_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] } ], "next_page_token": 1 }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the summary of active amulet contracts for a given migration id and record time, for the given parties.
This is an aggregate of /v0/holdings/state by owner party ID with better performance than client-side computation.
Unlike /v0/holdings/summary, this version does not include holding fee fields
as they do not express a meaningful aggregate value.
Example request:
POST /v1/holdings/summary HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"owner_party_ids": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "summaries": [ { "party_id": "string", "total_unlocked_coin": "string", "total_locked_coin": "string", "total_coin_holdings": "string" } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Lists all non-expired ANS entries whose names are prefixed with the
name_prefix, up to page_size entries.
name_prefix (string) – Every result’s name will start with this substring; if empty or absent, all entries will be listed. Does not have to be a whole word or segment; any substring will be accepted.
page_size (integer) – The maximum number of results returned. Older (but still non-expired) results are listed first. (Required)
Example request:
GET /v0/ans-entries?page_size=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "entries": [ { "contract_id": "string", "user": "string", "name": "string", "url": "string", "description": "string", "expires_at": "2026-05-15T15:10:43.878116" } ] }
If present, the first ANS entry for user party according to
name lexicographic order.
party (string) – The user party ID that holds the ANS entry.
Example request:
GET /v0/ans-entries/by-party/{party} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "entry": { "contract_id": "string", "user": "string", "name": "string", "url": "string", "description": "string", "expires_at": "2026-05-15T15:10:43.878116" } }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
If present, the ANS entry named exactly name.
name (string)
Example request:
GET /v0/ans-entries/by-name/{name} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "entry": { "contract_id": "string", "user": "string", "name": "string", "url": "string", "description": "string", "expires_at": "2026-05-15T15:10:43.878116" } }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
The party ID of the DSO for the Splice network connected by this Scan app.
Example request:
GET /v0/dso-party-id HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "dso_party_id": "string" }
Returns the event history in ascending order, paged, from ledger begin or optionally starting after a record time.
An event bears some combination of a transaction, a contract reassignment, and a verdict.
Events are ordered lexicographically by (migration id, record time).
For a given migration id, each event has a unique record time.
The record time ranges of different migrations may overlap, i.e.,
it is not guaranteed that the maximum record time of one migration is smaller than the minimum record time of the next migration,
and there may be two updates with the same record time but different migration ids.
Example request:
POST /v0/events HTTP/1.1
Host: example.com
Content-Type: application/json
{
"after": {
"after_migration_id": 1,
"after_record_time": "string"
},
"page_size": 1,
"daml_value_encoding": "compact_json"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "events": [ { "update": { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, "verdict": { "update_id": "string", "migration_id": 1, "domain_id": "string", "record_time": "string", "finalization_time": "string", "submitting_parties": [ "string" ], "submitting_participant_uid": "string", "verdict_result": "VERDICT_RESULT_UNSPECIFIED", "mediator_group": 1, "transaction_views": { "views": [ { "view_id": 1, "informees": [ "string" ], "confirming_parties": [ { "parties": [ "string" ], "threshold": 1 } ], "sub_views": [ 1 ], "view_hash": "string" } ], "root_views": [ 1 ] } }, "traffic_summary": { "total_traffic_cost": 1, "envelope_traffic_summaries": [ { "traffic_cost": 1, "view_ids": [ 1 ] } ] }, "app_activity_records": { "round_number": 1, "records": [ { "party": "string", "weight": 1 } ] } } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the event with the given update_id. An event bears some combination of a transaction, a contract reassignment, and a verdict.
Parameters:update_id (string)
daml_value_encoding (string)
Example request:
GET /v0/events/{update_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "update": { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, "verdict": { "update_id": "string", "migration_id": 1, "domain_id": "string", "record_time": "string", "finalization_time": "string", "submitting_parties": [ "string" ], "submitting_participant_uid": "string", "verdict_result": "VERDICT_RESULT_UNSPECIFIED", "mediator_group": 1, "transaction_views": { "views": [ { "view_id": 1, "informees": [ "string" ], "confirming_parties": [ { "parties": [ "string" ], "threshold": 1 } ], "sub_views": [ 1 ], "view_hash": "string" } ], "root_views": [ 1 ] } }, "traffic_summary": { "total_traffic_cost": 1, "envelope_traffic_summaries": [ { "traffic_cost": 1, "view_ids": [ 1 ] } ] }, "app_activity_records": { "round_number": 1, "records": [ { "party": "string", "weight": 1 } ] } }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
List all unclaimed development fund coupons.
Example request:
GET /v0/unclaimed-development-fund-coupons HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "unclaimed-development-fund-coupons": [ { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } ] }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
internal
GET /v0/sv-bft-sequencersRetrieve Canton BFT sequencer configuration for this SV, for each configured Synchronizer
Example request:
GET /v0/sv-bft-sequencers HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "bftSequencers": [ { "serialId": 1, "id": "string", "p2pUrl": "string" } ] }
Retrieve information on a roll-forward LSU
Example request:
GET /v0/roll-forward-lsu HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "rollForwardLsu": { "upgradeTime": "2026-05-15T15:10:43.878116", "currentPhysicalSynchronizerId": "string", "successorPhysicalSynchronizerId": "string" } }
Get the current physical synchronizer serial as reported by the SV participant.
Example request:
GET /v0/active-synchronizer-serial HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "serial": 1 }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Example request:
POST /v0/amulet-rules HTTP/1.1
Host: example.com
Content-Type: application/json
{
"cached_amulet_rules_contract_id": "string",
"cached_amulet_rules_domain_id": "string"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "amulet_rules_update": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } }
Example request:
POST /v0/external-party-amulet-rules HTTP/1.1
Host: example.com
Content-Type: application/json
{
"cached_external_party_amulet_rules_contract_id": "string",
"cached_external_party_amulet_rules_domain_id": "string"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "external_party_amulet_rules_update": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } }
Example request:
POST /v0/ans-rules HTTP/1.1
Host: example.com
Content-Type: application/json
{
"cached_ans_rules_contract_id": "string",
"cached_ans_rules_domain_id": "string"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "ans_rules_update": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } }
List every FeaturedAppRight registered with the DSO on the ledger.
Example request:
GET /v0/featured-apps HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "featured_apps": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
If provider_party_id has a FeaturedAppRight registered with the DSO,
return it; featured_app_right will be empty otherwise.
provider_party_id (string)
Example request:
GET /v0/featured-apps/{provider_party_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "featured_app_right": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } }
List all FeaturedAppRight contracts for the given provider.
provider_party_id (string)
Example request:
GET /v0/featured-apps/by-provider/{provider_party_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "featured_apps": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
Look up a FeaturedAppRight contract by its contract ID.
Returns featured_app_right if found, empty otherwise.
contract_id (string)
Example request:
GET /v0/featured-apps/by-contract-id/{contract_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "featured_app_right": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } }
Get a list of top validators by number of rounds in which they collected faucets, and basis statistics on their round collection history
Query Parameters:limit (integer) – Maximum number of validator records that may be returned in the response (Required)
Example request:
GET /v0/top-validators-by-validator-faucets?limit=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "validatorsByReceivedFaucets": [ { "validator": "string", "numRoundsCollected": 1, "numRoundsMissed": 1, "firstCollectedInRound": 1, "lastCollectedInRound": 1 } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Lookup a TransferPreapproval by the receiver party.
Parameters:party (string)
Example request:
GET /v0/transfer-preapprovals/by-party/{party} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transfer_preapproval": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Lookup a TransferCommandCounter by the receiver party.
Parameters:party (string)
Example request:
GET /v0/transfer-command-counter/{party} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transfer_command_counter": { "contract": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" }, "domain_id": "string" } }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Retrieve the status of all transfer commands (up to a limit of 100) of the given sender for the specified nonce.
Query Parameters:sender (string) – (Required)
nonce (integer) – (Required)
Example request:
GET /v0/transfer-command/status?sender=string&nonce=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transfer_commands_by_contract_id": {} }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
If the DSO has scheduled a synchronizer upgrade, return its planned time and the new migration ID.
Example request:
GET /v0/migrations/schedule HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "time": "2026-05-15T15:10:43.878116", "migration_id": 1 }
404 Not Found – No migration scheduled
domain_id_prefix (string)
Example request:
GET /v0/synchronizer-identities/{domain_id_prefix} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "sequencer_id": "string", "sequencer_identity_transactions": [ "string" ], "mediator_id": "string", "mediator_identity_transactions": [ "string" ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
domain_id_prefix (string)
Example request:
GET /v0/synchronizer-bootstrapping-transactions/{domain_id_prefix} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "domain_parameters": "string", "sequencer_domain_state": "string", "mediator_domain_state": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Retrieve the UI names of various elements of this Splice network.
Example request:
GET /v0/splice-instance-names HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "network_name": "string", "network_favicon_url": "string", "amulet_name": "string", "amulet_name_acronym": "string", "name_service_name": "string", "name_service_name_acronym": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Look up several VoteRequests at once by their contract IDs.
Example request:
POST /v0/voterequest HTTP/1.1
Host: example.com
Content-Type: application/json
{
"vote_request_contract_ids": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "vote_requests": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
Look up a VoteRequest by contract ID.
vote_request_contract_id (string)
Example request:
GET /v0/voterequests/{vote_request_contract_id} HTTP/1.1
Host: example.com
VoteRequest contract not found.
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "dso_rules_vote_request": { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } }
List all active VoteRequests.
Example request:
GET /v0/admin/sv/voterequests HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "dso_rules_vote_requests": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
Example request:
POST /v0/admin/sv/voteresults HTTP/1.1
Host: example.com
Content-Type: application/json
{
"actionName": "string",
"accepted": true,
"requester": "string",
"effectiveFrom": "string",
"effectiveTo": "string",
"limit": 1,
"pageToken": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "dso_rules_vote_results": [ {} ], "next_page_token": 1 }
List all previous synchronizer migrations in this Splice network’s history.
Example request:
POST /v0/backfilling/migration-info HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "previous_migration_id": 1, "record_time_range": [ { "synchronizer_id": "string", "min": "2026-05-15T15:10:43.878116", "max": "2026-05-15T15:10:43.878116" } ], "last_import_update_id": "string", "complete": true, "import_updates_complete": true }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Retrieve transactions and synchronizer reassignments prior to the request’s specification.
Example request:
POST /v0/backfilling/updates-before HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"synchronizer_id": "string",
"before": "2026-05-15T15:10:43.878116",
"at_or_after": "2026-05-15T15:10:43.878116",
"count": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, { "update_id": "string", "offset": "string", "record_time": "string", "event": { "submitter": "string", "source_synchronizer": "string", "target_synchronizer": "string", "migration_id": 1, "unassign_id": "string", "created_event": { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] }, "reassignment_counter": 1 } } ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Retrieve the status of the backfilling process.
Example request:
GET /v0/backfilling/status HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "complete": true }
Example request:
GET /v0/feature-support HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "dummy": true }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
SV node internal API (CIP-0104, subject to change). Returns the earliest round for which CIP-0104 reward accounting activity records are complete.
Example request:
GET /v0/reward-accounting-process/rounds/earliest-available HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "earliest_round": 1 }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
SV node internal API (CIP-0104, subject to change). Return the CIP-0104 per-round activity totals for the specified round number.
Parameters:round_number (integer)
Example request:
GET /v0/reward-accounting-process/rounds/{round_number}/activity-totals HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "round_number": 1, "total_app_activity_weight": 1, "active_parties_count": 1, "activity_records_count": 1 }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
SV node internal API (CIP-0104, subject to change). Returns the root hash computed for the specified round.
Parameters:round_number (integer)
Example request:
GET /v0/reward-accounting-process/rounds/{round_number}/root-hash HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "round_number": 1, "root_hash": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
SV node internal API (CIP-0104, subject to change). Returns the contents of a reward batch identified by its hash. The response is either a list of child batch hashes (for internal nodes) or a list of minting allowances (for leaf nodes).
Parameters:round_number (integer)
batch_hash (string)
Example request:
GET /v0/reward-accounting-process/rounds/{round_number}/batches/{batch_hash} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "batch_type": "string", "child_hashes": [ "string" ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
deprecated
POST /v1/updatesReturns the update history in ascending order, paged, from ledger begin or optionally starting after a record time. Unlike /v0/updates, this endpoint returns responses that are consistent across different scan instances. Event ids returned by this endpoint are not comparable to event ids returned by /v0/updates.
Updates are ordered lexicographically by (migration id, record time).
For a given migration id, each update has a unique record time.
The record time ranges of different migrations may overlap, i.e.,
it is not guaranteed that the maximum record time of one migration is smaller than the minimum record time of the next migration,
and there may be two updates with the same record time but different migration ids.
The order of items in events_by_id is not defined.
Example request:
POST /v1/updates HTTP/1.1
Host: example.com
Content-Type: application/json
{
"after": {
"after_migration_id": 1,
"after_record_time": "string"
},
"page_size": 1,
"daml_value_encoding": "compact_json"
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, { "update_id": "string", "offset": "string", "record_time": "string", "event": { "submitter": "string", "source_synchronizer": "string", "target_synchronizer": "string", "migration_id": 1, "unassign_id": "string", "created_event": { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] }, "reassignment_counter": 1 } } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Returns the update with the given update_id. Unlike /v0/updates/{update_id}, this endpoint returns responses that are consistent across different scan instances. Event ids returned by this endpoint are not comparable to event ids returned by /v0/updates. The order of items in events_by_id is not defined.
Parameters:update_id (string)
daml_value_encoding (string)
Example request:
GET /v1/updates/{update_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Please use /v1/state/acs instead. Returns the ACS in creation date ascending order, paged, for a given migration id and record time.
Example request:
POST /v0/state/acs HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"after": 1,
"page_size": 1,
"party_ids": [
"string"
],
"templates": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "created_events": [ { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] } ], "next_page_token": 1 }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Please use /v1/holdings/state instead. Returns the active amulet contracts for a given migration id and record time, in creation date ascending order, paged.
Example request:
POST /v0/holdings/state HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"after": 1,
"page_size": 1,
"owner_party_ids": [
"string"
]
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "created_events": [ { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] } ], "next_page_token": 1 }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Please use /v1/holdings/summary instead. Returns the summary of active amulet contracts for a given migration id and record time, for the given parties.
This is an aggregate of /v0/holdings/state by owner party ID with better performance than client-side computation.
Example request:
POST /v0/holdings/summary HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"record_time": "2026-05-15T15:10:43.878116",
"record_time_match": "exact",
"owner_party_ids": [
"string"
],
"as_of_round": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "migration_id": 1, "computed_as_of_round": 1, "summaries": [ { "party_id": "string", "total_unlocked_coin": "string", "total_locked_coin": "string", "total_coin_holdings": "string", "accumulated_holding_fees_unlocked": "string", "accumulated_holding_fees_locked": "string", "accumulated_holding_fees_total": "string", "total_available_coin": "string" } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Fetch the current SV participant ACS snapshot for the DSO and party.
party (string)
record_time (string)
Example request:
GET /v0/acs/{party} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "acs_snapshot": "string" }
Deprecated. Retrieve the current earliest and latest rounds aggregated for this Scan.
Example request:
GET /v0/aggregated-rounds HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "start": 1, "end": 1 }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. List Amulet statistics for up to 200 closed rounds.
Example request:
POST /v0/round-totals HTTP/1.1
Host: example.com
Content-Type: application/json
{
"start_round": 1,
"end_round": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "entries": [ { "closed_round": 1, "closed_round_effective_at": "2026-05-15T15:10:43.878116", "app_rewards": "string", "validator_rewards": "string", "change_to_initial_amount_as_of_round_zero": "string", "change_to_holding_fees_rate": "string", "cumulative_app_rewards": "string", "cumulative_validator_rewards": "string", "cumulative_change_to_initial_amount_as_of_round_zero": "string", "cumulative_change_to_holding_fees_rate": "string", "total_amulet_balance": "string" } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Retrieve per-party Amulet statistics for up to 50 closed rounds.
Example request:
POST /v0/round-party-totals HTTP/1.1
Host: example.com
Content-Type: application/json
{
"start_round": 1,
"end_round": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "entries": [ { "closed_round": 1, "party": "string", "app_rewards": "string", "validator_rewards": "string", "traffic_purchased": 1, "traffic_purchased_cc_spent": "string", "traffic_num_purchases": 1, "cumulative_app_rewards": "string", "cumulative_validator_rewards": "string", "cumulative_change_to_initial_amount_as_of_round_zero": "string", "cumulative_change_to_holding_fees_rate": "string", "cumulative_traffic_purchased": 1, "cumulative_traffic_purchased_cc_spent": "string", "cumulative_traffic_num_purchases": 1 } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated. Retrieve some information from the AmuletRules selected for the given round
round (integer) – (Required)
Example request:
GET /v0/amulet-config-for-round?round=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "amulet_create_fee": "string", "holding_fee": "string", "lock_holder_fee": "string", "transfer_fee": { "initial": "string", "steps": [ { "amount": "string", "rate": "string" } ] } }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Get the latest round number for which aggregated data is available and the ledger effective time at which the round was closed.
Example request:
GET /v0/round-of-latest-data HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "round": 1, "effectiveAt": "2026-05-15T15:10:43.878116" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Get the total rewards collected ever
Query Parameters:round (integer)
Example request:
GET /v0/rewards-collected HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "amount": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Get a list of top-earning app providers, and the total earned app rewards for each
Query Parameters:round (integer) – (Required)
limit (integer) – (Required)
Example request:
GET /v0/top-providers-by-app-rewards?round=1&limit=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "providersAndRewards": [ { "provider": "string", "rewards": "string" } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Get a list of top-earning validators, and the total earned validator rewards for each
Query Parameters:round (integer) – (Required)
limit (integer) – (Required)
Example request:
GET /v0/top-validators-by-validator-rewards?round=1&limit=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "validatorsAndRewards": [ { "provider": "string", "rewards": "string" } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Get a list of validators and their domain fees spends, sorted by the amount of extra traffic purchased
Query Parameters:round (integer) – (Required)
limit (integer) – (Required)
Example request:
GET /v0/top-validators-by-purchased-traffic?round=1&limit=1 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "validatorsByPurchasedTraffic": [ { "validator": "string", "numPurchases": 1, "totalTrafficPurchased": 1, "totalCcSpent": "string", "lastPurchasedInRound": 1 } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
Deprecated. Lists activities in descending order, paged, optionally starting after a provided event id.
Example request:
POST /v0/activities HTTP/1.1
Host: example.com
Content-Type: application/json
{
"begin_after_id": "string",
"page_size": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "activities": [ { "activity_type": "transfer", "event_id": "string", "offset": "string", "date": "2026-05-15T15:10:43.878116", "domain_id": "string", "round": 1, "transfer": { "sender": { "party": "string", "input_amulet_amount": "string", "input_app_reward_amount": "string", "input_validator_reward_amount": "string", "input_sv_reward_amount": "string", "input_validator_faucet_amount": "string", "sender_change_fee": "string", "sender_change_amount": "string", "sender_fee": "string", "holding_fees": "string" }, "receivers": [ { "party": "string", "amount": "string", "receiver_fee": "string" } ], "balance_changes": [ { "party": "string", "change_to_initial_amount_as_of_round_zero": "string", "change_to_holding_fees_rate": "string" } ], "description": "string", "transferInstructionReceiver": "string", "transferInstructionAmount": "string", "transferInstructionCid": "string", "transfer_kind": "create_transfer_instruction" }, "mint": { "amulet_owner": "string", "amulet_amount": "string" }, "tap": { "amulet_owner": "string", "amulet_amount": "string" }, "abort_transfer_instruction": { "abort_kind": "withdraw", "transfer_instruction_cid": "string" } } ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated with known bugs that will not be fixed, use /v2/updates instead.
Lists transactions, by default in ascending order, paged, from ledger begin or optionally starting after a provided event id.
Example request:
POST /v0/transactions HTTP/1.1
Host: example.com
Content-Type: application/json
{
"page_end_event_id": "string",
"sort_order": "asc",
"page_size": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "transaction_type": "transfer", "event_id": "string", "offset": "string", "date": "2026-05-15T15:10:43.878116", "domain_id": "string", "round": 1, "transfer": { "sender": { "party": "string", "input_amulet_amount": "string", "input_app_reward_amount": "string", "input_validator_reward_amount": "string", "input_sv_reward_amount": "string", "input_validator_faucet_amount": "string", "sender_change_fee": "string", "sender_change_amount": "string", "sender_fee": "string", "holding_fees": "string" }, "receivers": [ { "party": "string", "amount": "string", "receiver_fee": "string" } ], "balance_changes": [ { "party": "string", "change_to_initial_amount_as_of_round_zero": "string", "change_to_holding_fees_rate": "string" } ], "description": "string", "transferInstructionReceiver": "string", "transferInstructionAmount": "string", "transferInstructionCid": "string", "transfer_kind": "create_transfer_instruction" }, "mint": { "amulet_owner": "string", "amulet_amount": "string" }, "tap": { "amulet_owner": "string", "amulet_amount": "string" }, "abort_transfer_instruction": { "abort_kind": "withdraw", "transfer_instruction_cid": "string" } } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated, use /v2/updates instead. Returns the update history in ascending order, paged, from ledger begin or optionally starting after a record time.
Example request:
POST /v0/updates HTTP/1.1
Host: example.com
Content-Type: application/json
{
"after": {
"after_migration_id": 1,
"after_record_time": "string"
},
"page_size": 1,
"lossless": true
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, { "update_id": "string", "offset": "string", "record_time": "string", "event": { "submitter": "string", "source_synchronizer": "string", "target_synchronizer": "string", "migration_id": 1, "unassign_id": "string", "created_event": { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] }, "reassignment_counter": 1 } } ] }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
Deprecated, use /v2/updates/{update_id} instead.
Parameters:update_id (string)
lossless (boolean) – Whether contract payload should be encoded into json using a lossless, but much harder to process, encoding. This is mostly used for backend calls, and is not recommended for external users. Optional and defaults to false.
Example request:
GET /v0/updates/{update_id} HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }
bad request
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
internal server error
Example response:
HTTP/1.1 500 Internal Server Error Content-Type: application/json { "error": "string" }
scan
GET /v0/amulet-price/votesRetrieve a list of the latest amulet price votes
Example request:
GET /v0/amulet-price/votes HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "amulet_price_votes": [ { "template_id": "string", "contract_id": "string", "payload": {}, "created_event_blob": "string", "created_at": "string" } ] }
Example request:
POST /v0/backfilling/import-updates HTTP/1.1
Host: example.com
Content-Type: application/json
{
"migration_id": 1,
"after_update_id": "string",
"limit": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "transactions": [ { "update_id": "string", "migration_id": 1, "workflow_id": "string", "record_time": "string", "synchronizer_id": "string", "effective_at": "string", "offset": "string", "root_event_ids": [ "string" ], "events_by_id": {}, "external_transaction_hash": "string" }, { "update_id": "string", "offset": "string", "record_time": "string", "event": { "submitter": "string", "source_synchronizer": "string", "target_synchronizer": "string", "migration_id": 1, "unassign_id": "string", "created_event": { "event_type": "string", "event_id": "string", "contract_id": "string", "template_id": "string", "package_name": "string", "create_arguments": {}, "created_at": "2026-05-15T15:10:43.878116", "signatories": [ "string" ], "observers": [ "string" ] }, "reassignment_counter": 1 } } ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
pre-alpha
GET /v0/history/bulk/acsUnder Development, do not use in production yet Get download URLs and metadata for an ACS snapshot available for bulk download, at or before a certain record time.
Query Parameters:at_or_before_record_time (string) – (Required)
Example request:
GET /v0/history/bulk/acs?at_or_before_record_time=2026-05-15T15%3A10%3A43.878116 HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "record_time": "2026-05-15T15:10:43.878116", "object_refs": [ { "url": "string", "digest": "string" } ] }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
not implemented
Example response:
HTTP/1.1 501 Not Implemented Content-Type: application/json { "error": "string" }
Under Development, do not use in production yet Get download URLs and metadata for update history objects available for bulk download, between two record times. Note that the returned objects may include also updates outside of the requested record time range (since only full objects are served from storage), but guaranteed to include all updates in the requested range.
Example request:
POST /v0/history/bulk/updates HTTP/1.1
Host: example.com
Content-Type: application/json
{
"start_record_time": "2026-05-15T15:10:43.878116",
"end_record_time": "2026-05-15T15:10:43.878116",
"next_page_token": "string",
"page_size": 1
}
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "object_refs": [ { "url": "string", "digest": "string" } ], "next_page_token": "string" }
not found
Example response:
HTTP/1.1 400 Bad Request Content-Type: application/json { "error": "string" }
not found
Example response:
HTTP/1.1 404 Not Found Content-Type: application/json { "error": "string" }
not implemented
Example response:
HTTP/1.1 501 Not Implemented Content-Type: application/json { "error": "string" }
common
GET /readyzExample request:
GET /readyz HTTP/1.1
Host: example.com
200 OK – ok
503 Service Unavailable – service_unavailable
Example request:
GET /livez HTTP/1.1
Host: example.com
200 OK – ok
503 Service Unavailable – service_unavailable
Example request:
GET /status HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "success": { "id": "string", "uptime": "string", "ports": {}, "extra": "01010101", "active": true } }
Example request:
GET /version HTTP/1.1
Host: example.com
200 OK –
ok
Example response:
HTTP/1.1 200 OK Content-Type: application/json { "version": "string", "commit_ts": "2026-05-15T15:10:43.878116" }
Comments