> ## Documentation Index
> Fetch the complete documentation index at: https://cantonfoundation-generated-reference-full-stack-preview.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v0/dso

> Dso info

<div class="x2mdx-ref-page x2mdx-ref-page--operation x2mdx-ref-page--manual-api" />

<div class="x2mdx-ref-hero">
  <p class="x2mdx-ref-summary">Dso info</p>

  <div class="x2mdx-ref-badges">
    <span class="x2mdx-ref-badge x2mdx-ref-badge--protocol">OpenAPI</span>
  </div>
</div>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl --request GET \
    --url 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso'
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import json
  import requests

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

  print(response.text)
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso', {
    method: 'GET',
  });

  console.log(await response.text());
  ```

  ```php PHP theme={"theme":{"light":"github-light","dark":"github-dark"}}
  <?php
  $curl = curl_init();

  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => 'GET',
  ]);

  $response = curl_exec($curl);
  echo $response;
  ```

  ```go Go theme={"theme":{"light":"github-light","dark":"github-dark"}}
  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/dso", nil)
    response, _ := http.DefaultClient.Do(req)
    defer response.Body.Close()
    body, _ := io.ReadAll(response.Body)
    fmt.Println(string(body))
  }
  ```

  ```java Java theme={"theme":{"light":"github-light","dark":"github-dark"}}
  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/dso"))
      .method("GET", HttpRequest.BodyPublishers.noBody())
      .build();
  var response = HttpClient.newHttpClient().send(
      request, HttpResponse.BodyHandlers.ofString());
  System.out.println(response.body());
  ```

  ```ruby Ruby theme={"theme":{"light":"github-light","dark":"github-dark"}}
  require 'net/http'
  require 'uri'

  uri = URI('https://scan.sv-1.global.canton.network.sync.global/api/scan/v0/dso')
  request = Net::HTTP::Get.new(uri)
  response = Net::HTTP.start(uri.hostname, uri.port) do |http|
    http.request(request)
  end
  puts response.body
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "sv_user": "<string>",
    "sv_party_id": "<string>",
    "dso_party_id": "<string>",
    "voting_threshold": 123,
    "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>"
  }
  ```
</ResponseExample>

## Responses

### 200

ok

<div class="x2mdx-ref-badges">
  <span class="x2mdx-ref-badge x2mdx-ref-badge--neutral">application/json</span>
</div>

<ResponseField name="sv_user" type="string" required>
  User ID representing the SV
</ResponseField>

<ResponseField name="sv_party_id" type="string" required>
  Party representing the SV
</ResponseField>

<ResponseField name="dso_party_id" type="string" required>
  Party representing the whole DSO; for Scan only, also returned by `/v0/dso-party-id`
</ResponseField>

<ResponseField name="voting_threshold" type="integer" required>
  Threshold required to pass vote requests; also known as the "governance threshold", it is always derived from the number of `svs` in `dso_rules`
</ResponseField>

<ResponseField name="latest_mining_round" type="ContractWithState" required>
  Contract of the Daml template `Splice.Round.OpenMiningRound`, the one with the highest round number on the ledger that has been signed by `dso_party_id`. The round may not be usable as it may not be opened yet, in accordance with its `opensAt` template field

  <Expandable title="child attributes">
    <ResponseField name="contract" type="Contract" required>
      <Expandable title="child attributes">
        <ResponseField name="template_id" type="string" required />

        <ResponseField name="contract_id" type="string" required />

        <ResponseField name="payload" type="object" required />

        <ResponseField name="created_event_blob" type="string" required />

        <ResponseField name="created_at" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="domain_id" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="amulet_rules" type="ContractWithState" required>
  Contract of the Daml template `Splice.AmuletRules.AmuletRules`, including the full schedule of `AmuletConfig` changes approved by the DSO. Callers should not assume that `initialValue` is up-to-date, and should instead search `futureValues` for the latest configuration valid as of now

  <Expandable title="child attributes">
    <ResponseField name="contract" type="Contract" required>
      <Expandable title="child attributes">
        <ResponseField name="template_id" type="string" required />

        <ResponseField name="contract_id" type="string" required />

        <ResponseField name="payload" type="object" required />

        <ResponseField name="created_event_blob" type="string" required />

        <ResponseField name="created_at" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="domain_id" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="dso_rules" type="ContractWithState" required>
  Contract of the Daml template `Splice.DsoRules.DsoRules`, listing the governance rules approved by the DSO governing this Splice network.

  <Expandable title="child attributes">
    <ResponseField name="contract" type="Contract" required>
      <Expandable title="child attributes">
        <ResponseField name="template_id" type="string" required />

        <ResponseField name="contract_id" type="string" required />

        <ResponseField name="payload" type="object" required />

        <ResponseField name="created_event_blob" type="string" required />

        <ResponseField name="created_at" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="domain_id" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="sv_node_states" type="ContractWithState[]" required>
  For every one of `svs` listed in `dso_rules`, a contract of the Daml template `Splice.DSO.SvState.SvNodeState`. This does not include states for offboarded SVs, though they may still have an on-ledger state contract

  <Expandable title="child attributes">
    <ResponseField name="contract" type="Contract" required>
      <Expandable title="child attributes">
        <ResponseField name="template_id" type="string" required />

        <ResponseField name="contract_id" type="string" required />

        <ResponseField name="payload" type="object" required />

        <ResponseField name="created_event_blob" type="string" required />

        <ResponseField name="created_at" type="string" required />
      </Expandable>
    </ResponseField>

    <ResponseField name="domain_id" type="string" />
  </Expandable>
</ResponseField>

<ResponseField name="initial_round" type="string">
  Initial round from which the network bootstraps
</ResponseField>
