> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /v1/scan-proxy/dso

> Dso info v1

Dso info v1

OpenAPI

[Added 0.10.0](#history-added-0-10-0)

```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl --request GET \
  --url 'https://example.com/api/validator/v1/scan-proxy/dso'
```

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

url = "https://example.com/api/validator/v1/scan-proxy/dso"
response = requests.request("GET", url)

print(response.text)
```

```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
const response = await fetch('https://example.com/api/validator/v1/scan-proxy/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://example.com/api/validator/v1/scan-proxy/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://example.com/api/validator/v1/scan-proxy/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://example.com/api/validator/v1/scan-proxy/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://example.com/api/validator/v1/scan-proxy/dso')
request = Net::HTTP::Get.new(uri)
response = Net::HTTP.start(uri.hostname, uri.port) do |http|
  http.request(request)
end
puts response.body
```

```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "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>"
}
```

## Responses

### 200

ok

application/json

**dso\_party\_id** `string` *required*

Party representing the whole DSO; for Scan only, also returned by `/v0/dso-party-id`

**voting\_threshold** `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`

**latest\_mining\_round** `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

**child attributes**

**contract** `Contract` *required*

**child attributes**

**template\_id** `string` *required*

**contract\_id** `string` *required*

**payload** `object` *required*

**created\_event\_blob** `string` *required*

**created\_at** `string` *required*

**domain\_id** `string`

**amulet\_rules** `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

**child attributes**

**contract** `Contract` *required*

**child attributes**

**template\_id** `string` *required*

**contract\_id** `string` *required*

**payload** `object` *required*

**created\_event\_blob** `string` *required*

**created\_at** `string` *required*

**domain\_id** `string`

**dso\_rules** `ContractWithState` *required*

Contract of the Daml template `Splice.DsoRules.DsoRules`, listing the governance rules approved by the DSO governing this Splice network.

**child attributes**

**contract** `Contract` *required*

**child attributes**

**template\_id** `string` *required*

**contract\_id** `string` *required*

**payload** `object` *required*

**created\_event\_blob** `string` *required*

**created\_at** `string` *required*

**domain\_id** `string`

**sv\_node\_states** `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

**child attributes**

**contract** `Contract` *required*

**child attributes**

**template\_id** `string` *required*

**contract\_id** `string` *required*

**payload** `object` *required*

**created\_event\_blob** `string` *required*

**created\_at** `string` *required*

**domain\_id** `string`

**initial\_round** `string`

Initial round from which the network bootstraps

## History

Added
`0.10.0`
