cURL
curl --request GET \
--url https://api.example.com/dev/fees \
--header 'x-dev-auth: <x-dev-auth>'import requests
url = "https://api.example.com/dev/fees"
headers = {"x-dev-auth": "<x-dev-auth>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-dev-auth': '<x-dev-auth>'}};
fetch('https://api.example.com/dev/fees', 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://api.example.com/dev/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-dev-auth: <x-dev-auth>"
],
]);
$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://api.example.com/dev/fees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-dev-auth", "<x-dev-auth>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/dev/fees")
.header("x-dev-auth", "<x-dev-auth>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/dev/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-dev-auth"] = '<x-dev-auth>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"pendingFeesUusdc": "<string>",
"lockedFeesUusdc": "<string>",
"unclaimedFeesUusdc": "<string>",
"payoutChain": "<string>",
"signerAddress": "<string>"
}{
"error": "<string>"
}Developer
Get Dev Account Fees
GET
/
dev
/
fees
cURL
curl --request GET \
--url https://api.example.com/dev/fees \
--header 'x-dev-auth: <x-dev-auth>'import requests
url = "https://api.example.com/dev/fees"
headers = {"x-dev-auth": "<x-dev-auth>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-dev-auth': '<x-dev-auth>'}};
fetch('https://api.example.com/dev/fees', 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://api.example.com/dev/fees",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-dev-auth: <x-dev-auth>"
],
]);
$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://api.example.com/dev/fees"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-dev-auth", "<x-dev-auth>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/dev/fees")
.header("x-dev-auth", "<x-dev-auth>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/dev/fees")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-dev-auth"] = '<x-dev-auth>'
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"pendingFeesUusdc": "<string>",
"lockedFeesUusdc": "<string>",
"unclaimedFeesUusdc": "<string>",
"payoutChain": "<string>",
"signerAddress": "<string>"
}{
"error": "<string>"
}Query fee balances for your authenticated developer account.
The signature must be an EIP-712 typed data signature with:
Only unclaimed fees can be claimed. Pending and locked fees will become claimable after the settlement process completes.
Authentication
This endpoint requires EIP-712 signature-based authentication via theX-Dev-Auth header.
string
required
JSON-encoded authentication payload containing the signed message.
X-Dev-Auth Format
{
"devAccountId": "your-dev-account-id",
"action": "<action>",
"expiry": 1734567890,
"signature": "0x..."
}
- Domain:
{ name: "BisonDevAuth", version: "1" } - Primary Type:
DevAccountAuth - Message Fields:
devAccountId(string): Your dev account identifieraction(string): The action being performed (see endpoint docs)expiry(uint256): Unix timestamp when signature expires (max 5 minutes in future)
signerAddress.
The action field must be "fees" for this endpoint.
Fee States
Fees progress through the following states:| State | Description |
|---|---|
| Pending | Fees from trades that haven’t been confirmed yet |
| Locked | Fees locked for payout (awaiting operator settlement) |
| Unclaimed | Fees available to claim via the vault contract |
Headers
JSON-encoded auth payload: { devAccountId, action, expiry, signature }. Signature is EIP-712 typed data signed by the dev account signer.
Example:
"{\"devAccountId\":\"my-dev-account\",\"action\":\"info\",\"expiry\":1734567890,\"signature\":\"0x...\"}"
Response
Dev account fee balances
Dev account ID
Dev account name
Fees pending confirmation (µUSDC)
Fees locked for payout (µUSDC)
Fees available to claim (µUSDC)
Chain for fee payouts
Address receiving fee payouts