Skip to content
CCPEDIAby Unity Nodes
Documentation/Canton Network Docs/Splice APIsScan APIsScan APIView on Canton Network Docs

GET /v0/events/:update_id

GET
/
api
/
scan
/
v0
/
events
/
{update_id}
Try it
cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request GET \
  --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}'
import json
import requests

url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}"
response = requests.request("GET", url)

print(response.text)
const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}', {
  method: 'GET',
});

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

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}',
    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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}", 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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}"))
    .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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
404
500
{
  "update": {
    "update_id": "<string>",
    "migration_id": 123,
    "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": 123,
    "domain_id": "<string>",
    "record_time": "<string>",
    "finalization_time": "<string>",
    "submitting_parties": [
      "<string>"
    ],
    "submitting_participant_uid": "<string>",
    "verdict_result": "VERDICT_RESULT_UNSPECIFIED",
    "mediator_group": 123,
    "transaction_views": {
      "views": [
        {
          "view_id": 123,
          "informees": [
            "<string>"
          ],
          "confirming_parties": [
            {
              "parties": [
                "<string>"
              ],
              "threshold": 123
            }
          ],
          "sub_views": [
            123
          ],
          "view_hash": "<string>"
        }
      ],
      "root_views": [
        123
      ]
    }
  },
  "traffic_summary": {
    "total_traffic_cost": 123,
    "envelope_traffic_summaries": [
      {
        "traffic_cost": 123,
        "view_ids": [
          123
        ]
      }
    ]
  },
  "app_activity_records": {
    "round_number": 123,
    "records": [
      {
        "party": "<string>",
        "weight": 123
      }
    ]
  }
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}

Returns the event with the given update_id. An event bears some combination of a transaction, a contract reassignment, and a verdict.

cURL
Python
JavaScript
PHP
Go
Java
Ruby
curl --request GET \
  --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}'
import json
import requests

url = "https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}"
response = requests.request("GET", url)

print(response.text)
const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}', {
  method: 'GET',
});

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

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}',
    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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}", 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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}"))
    .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://scan.sv-1.global.canton.network.sync.global/api/scan/v0/events/{update_id}')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
200
400
404
500
{
  "update": {
    "update_id": "<string>",
    "migration_id": 123,
    "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": 123,
    "domain_id": "<string>",
    "record_time": "<string>",
    "finalization_time": "<string>",
    "submitting_parties": [
      "<string>"
    ],
    "submitting_participant_uid": "<string>",
    "verdict_result": "VERDICT_RESULT_UNSPECIFIED",
    "mediator_group": 123,
    "transaction_views": {
      "views": [
        {
          "view_id": 123,
          "informees": [
            "<string>"
          ],
          "confirming_parties": [
            {
              "parties": [
                "<string>"
              ],
              "threshold": 123
            }
          ],
          "sub_views": [
            123
          ],
          "view_hash": "<string>"
        }
      ],
      "root_views": [
        123
      ]
    }
  },
  "traffic_summary": {
    "total_traffic_cost": 123,
    "envelope_traffic_summaries": [
      {
        "traffic_cost": 123,
        "view_ids": [
          123
        ]
      }
    ]
  },
  "app_activity_records": {
    "round_number": 123,
    "records": [
      {
        "party": "<string>",
        "weight": 123
      }
    ]
  }
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}
{
  "error": "<string>"
}

Path parameters

update_id
string
required

Query parameters

daml_value_encoding
object
OpenAPI type: DamlValueEncoding.How daml values should be encoded in the response. “compact_json” is a compact, human-readable JSON encoding. It is the same encoding as the one used in the HTTP JSON API or the JavaScript codegen. “protobuf_json” is a verbose JSON encoding that is more difficult to parse, but contains type information, i.e., the values can be parsed losslessly without having access to the Daml source code. Optional and defaults to “compact_json”.Allowed values: compact_json, protobuf_json.

Responses

200

ok
application/json
update
UpdateHistoryItemV2
An individual item in the update history. May be a transaction or a contract reassignment.

Show child attributes

UpdateHistoryTransactionV2
UpdateHistoryTransactionV2

Show child attributes

update_id
string
required
The id of the update.
migration_id
integer (int64)
required
The migration id of the synchronizer.
workflow_id
string
required
This transaction’s Daml workflow ID; a workflow ID can be associated with multiple transactions. If empty, no workflow ID was set.
record_time
string
required
The time at which the transaction was sequenced, with microsecond resolution, using ISO-8601 representation.
synchronizer_id
string
required
The id of the synchronizer through which this transaction was sequenced.
effective_at
string
required
Ledger effective time, using ISO-8601 representation. This is the time returned by getTime for all Daml executed as part of this transaction, both by the submitting participant and all confirming participants.
root_event_ids
string[]
required
Roots of the transaction tree. These are guaranteed to occur as keys of the events_by_id object.
events_by_id
object
required
Changes to the ledger that were caused by this transaction, keyed by ID and sorted lexicographically by ID for display consistency. Values are nodes of the transaction tree. Within a transaction, IDs may be referenced by root_event_ids or child_event_ids in ExercisedEvent herein, which are sorted in the order as they occurred in the transaction.
external_transaction_hash
string
For an externally signed transaction, contains the external transaction hash signed by the external party. Can be used to correlate an external submission with a committed transaction. This field is conditionally omitted from JSON when null (see OmitNullString).
UpdateHistoryReassignment
UpdateHistoryReassignment
A contract reassignment between synchronizer. May be an assignment or unassignment.

Show child attributes

update_id
string
required
The id of the update.
offset
string
required
The absolute offset. Note that this field may not be the same across nodes, and therefore should not be compared between SVs.
record_time
string
required
The time at which the transaction was sequenced.
event
oneOf
required
The reassignment event. May be an assignment or unassignment.

Show child attributes

UpdateHistoryAssignment
UpdateHistoryAssignment

Show child attributes

submitter
string
required
The party ID who submitted this reassignment
source_synchronizer
string
required
The id of the synchronizer from which the contract was reassigned
target_synchronizer
string
required
The id of the synchronizer to which the contract was reassigned
migration_id
integer (int64)
required
The migration id of the target synchronizer
unassign_id
string
required
The id of the corresponding unassign event; this assignment will usually, but not always, occur after the so-identified unassignment event.
created_event
CreatedEvent
required
The corresponding contract create event

Show child attributes

event_type
string
required
event_id
string
required
The ID of this particular event. Equal to the key of this element of the containing events_by_id if this is part of a TreeEvent.
contract_id
string
required
The ID of the created contract.
template_id
string
required
The template of the created contract.
package_name
string
required
The package name of the created contract.
create_arguments
object
required
The arguments that have been used to create the contract, in the form of JSON representation of a Daml record.
created_at
string (date-time)
required
Ledger effective time of the transaction that created the contract.
signatories
string[]
required
Signatories to the contract, in the form of party IDs.
observers
string[]
required
Observers to the contract, in the form of party IDs.
reassignment_counter
integer (int64)
required
Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter 0.
UpdateHistoryUnassignment
UpdateHistoryUnassignment

Show child attributes

submitter
string
required
The party who submitted this reassignment
source_synchronizer
string
required
The id of the synchronizer from which the contract was reassigned
migration_id
integer (int64)
required
The migration id of the synchronizer from which the contract was reassigned
target_synchronizer
string
required
The id of the synchronizer to which the contract was reassigned
unassign_id
string
required
The id of the unassign event, to later be correlated to an assign event
reassignment_counter
integer (int64)
required
Each corresponding assigned and unassigned event has the same reassignment_counter. This strictly increases with each unassign command for the same contract. Creation of the contract corresponds to reassignment_counter 0.
contract_id
string
required
The id of the unassigned contract
verdict
EventHistoryVerdict

Show child attributes

update_id
string
required
The ID of the transaction update associated with this verdict. Verdicts are deduplicated by update_id. Only the first verdict ingested for a given update_id is stored and returned, while a subsequent verdict with the same update_id is rejected. This can happen for example if a sequencer client retries a successful submission. In that case, the retry is rejected as a duplicate, and the events endpoint will only show the successful verdict but not the rejected duplicates.
migration_id
integer (int64)
required
The migration id of the domain through which this event was sequenced.
domain_id
string
required
The id of the domain through which this event was sequenced.
record_time
string
required
The record_time of the transaction the verdict corresponds to.
finalization_time
string
required
The finalization_time of the transaction the verdict corresponds to. Note that this time might be different between different scans/mediators.
submitting_parties
string[]
required
Parties on whose behalf the transaction was submitted.
submitting_participant_uid
string
required
UID of the submitting participant.
verdict_result
VerdictResult
required
Result of the verdict.Allowed values: VERDICT_RESULT_UNSPECIFIED, VERDICT_RESULT_ACCEPTED, VERDICT_RESULT_REJECTED.
mediator_group
integer (int32)
required
The mediator group which finalized this verdict.
transaction_views
TransactionViews
required

Show child attributes

views
TransactionView[]
required

Show child attributes

view_id
integer (int32)
required
informees
string[]
required
confirming_parties
Quorum[]
required

Show child attributes

parties
string[]
required
threshold
integer (int32)
required
sub_views
integer (int32)[]
required
view_hash
string
required
Hash of the view, for correlation with sequencer traffic data. Empty for older data ingested before this field was added.
root_views
integer (int32)[]
required
traffic_summary
EventHistoryTrafficSummary
Traffic summary data from the sequencer for the confirmation request corresponding to an event.

Show child attributes

total_traffic_cost
integer (int64)
required
Total traffic cost of the confirmation request paid by the validator node that submitted it.
envelope_traffic_summaries
EnvelopeTrafficSummary[]
required
Summary of traffic-related data for all envelopes in the confirmation request.

Show child attributes

traffic_cost
integer (int64)
required
Traffic cost in bytes for this envelope.
view_ids
integer (int32)[]
required
View IDs from the verdict contained in this envelope
app_activity_records
EventHistoryAppActivityRecords
App activity record computed from verdicts and traffic summaries as per CIP-104.

Show child attributes

round_number
integer (int64)
required
The round number assigned to the activity records.
records
AppActivityRecord[]
required
App activity records, one per app provider.

Show child attributes

party
string
required
The app provider party identifier.
weight
integer (int64)
required
Activity weight in bytes of traffic.

400

bad request
application/json
error
string
required

404

not found
application/json
error
string
required

500

internal server error
application/json
error
string
required

History

Updated0.8.0

The GET /v0/events/{update_id} operation changed in this snapshot.

Updated0.6.10

The GET /v0/events/{update_id} operation changed in this snapshot.

Updated0.6.0

The GET /v0/events/{update_id} operation changed in this snapshot.

Updated0.5.17

The GET /v0/events/{update_id} operation changed in this snapshot.

Updated0.5.15

The GET /v0/events/{update_id} operation changed in this snapshot.