GET /traders/{address}/reconciliation: R8 Certificate
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliationimport requests
url = "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"reconciliation_certificate": {
"I1": "<string>",
"I2": "<string>",
"I3": "<string>",
"I4": "<string>",
"all_zero": true,
"capital_conservation": {
"capital_ceiling_ok": true,
"i5_residual": "<string>",
"measured_ending_equity_uusdc": "<string>",
"measured_net_external_capital_uusdc": "<string>",
"total_economic_return_uusdc": "<string>"
}
}
}Trader Data API
GET /traders/{address}/reconciliation: R8 Certificate
R8 reconciliation certificate verifying internal consistency of the wallet’s statement.
GET
/
trader-analytics
/
traders
/
{address}
/
reconciliation
GET /traders/{address}/reconciliation: R8 Certificate
curl --request GET \
--url https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliationimport requests
url = "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation")
.asString();require 'uri'
require 'net/http'
url = URI("https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"reconciliation_certificate": {
"I1": "<string>",
"I2": "<string>",
"I3": "<string>",
"I4": "<string>",
"all_zero": true,
"capital_conservation": {
"capital_ceiling_ok": true,
"i5_residual": "<string>",
"measured_ending_equity_uusdc": "<string>",
"measured_net_external_capital_uusdc": "<string>",
"total_economic_return_uusdc": "<string>"
}
}
}Sign each request with a fresh HMAC signature. The cURL and HTTP header values below are placeholders, not reusable credentials. For runnable signing code, use request signing examples. Python examples use the signed session from that page; Node.js examples use its
bravadoFetch helper.Statements are precomputed for a set of wallets. For any other wallet this endpoint returns
404 with "code": "STATEMENT_NOT_AVAILABLE", and retrying will not change the answer. For realized, unrealized and overall PnL of any wallet, including open positions that were never closed, use GET /traders/{address}.GET https://partner-api.bravadotrade.com/trader-analytics/traders/{address}/reconciliation
Path Parameters
Response
object
R8 certificate fields.
Show Certificate fields
Show Certificate fields
string
Share-level inventory residual in micro-shares. Must be
"0".string
USDC cost-basis residual. Must be
"0".string
Proceeds residual. Must be
"0".string
Fee attribution residual. Must be
"0".boolean
true when I1–I4 are all zero.object
I5 gate. Present only for wallets passing the institutional audit threshold.
Example
curl https://partner-api.bravadotrade.com/trader-analytics/traders/0xabc.../reconciliation \
-H "X-BRAVADO-API-KEY: $BRAVADO_API_KEY" \
-H "X-BRAVADO-TIMESTAMP: <unix-ms>" \
-H "X-BRAVADO-SIGNATURE: <signature-for-this-request>"
{
"trader": "0xabc...",
"period": { "from": "2023-01-01T00:00:00Z", "to": "2025-01-15T00:00:00Z" },
"batch_block": 67204810,
"reconciliation_certificate": {
"I1": "0", "I2": "0", "I3": "0", "I4": "0",
"all_zero": true,
"capital_conservation": {
"capital_ceiling_ok": true,
"i5_residual": "0"
}
},
"i5_audit": true
}