curl --request GET \
--url https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"month": "2026-08-01",
"y_bps_monthly": 4.25,
"y_bps_annual": 50,
"days_in_month": 31,
"days_stamped": 2,
"daily": [
{
"date": "2026-08-01",
"balance_minor": "1250000"
},
{
"date": "2026-08-02",
"balance_minor": "0"
},
{
"date": "2026-08-03"
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}One month of this client's marketing-fee statement
One row per calendar day: the date, the RD balance, and that dayās fee.
The rows are the stored daily principals, read rather than recomputed, so what the client reads and what Dakota priced cannot drift.
A balance is absent when the day has not been derived yet, and ā0ā when the client genuinely held no RD. Fees are absent for every day of a month whose rate has not been derived. Neither unknown is reported as a zero.
The client comes from the session. A month the client was not entitled to gets 404, as does a client who has never had a rate.
Named with asset and network, it is the statement of one deployment
of a branded token the client owns: each dayās balance is the
deploymentās yield basis, its slice of the reserve less the float
Dakota holds in the token, as the provider derived it. The earned rate
and what has been paid are stated beside what is owed.
curl --request GET \
--url https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month} \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/rd-marketing-fee/statements/{month}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"month": "2026-08-01",
"y_bps_monthly": 4.25,
"y_bps_annual": 50,
"days_in_month": 31,
"days_stamped": 2,
"daily": [
{
"date": "2026-08-01",
"balance_minor": "1250000"
},
{
"date": "2026-08-02",
"balance_minor": "0"
},
{
"date": "2026-08-03"
}
]
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}Authorizations
Path Parameters
First day of the month (UTC).
Query Parameters
The deployment's asset, with network: a branded token your client
owns, for that deployment's yield payout statement. Absent means
RD's marketing-fee statement, exactly as without it.
The deployment's network, with asset. The two are named together
or not at all.
Identifier for a blockchain network
ethereum-mainnet, ethereum-sepolia, ethereum-goerli, ethereum-holesky, solana-mainnet, solana-devnet, solana-testnet, base-mainnet, base-sepolia, arbitrum-mainnet, arbitrum-sepolia, optimism-mainnet, optimism-sepolia, polygon-mainnet, polygon-amoy 1 - 30"ethereum-mainnet"
Response
The month's statement
The rate APPLIED to this month, in monthly basis points: the annual contract rate charged for the days this month actually has (y_bps_annual x days_in_month / 365), rounded to 2 decimal places ā the precision it is charged and stored at.
Once a month has been priced, this is the rate it was priced at and a later rate change does not rewrite it. For a month not yet priced, including the running month, it is a projection from your current rate and moves if that rate changes.
The CONTRACT rate, in basis points per year, as the Order Form quotes it. Stated beside the applied rate so a client can check the month was charged from the rate they signed.
Calendar days in the month ā the divisor, never the number of rows stored.
Days whose principal is stored. Lower than days_in_month while the month is still being derived or still running, which is how a partial month is shown as partial rather than as a complete small one.
Show child attributes
Show child attributes
What the month currently derives to, as a whole number of RD minor units. ABSENT until the month is priced ā absent and zero are different facts, and zero means the month owes nothing payable.
This is a derived figure, not a record of payment. It is recalculated if the balance history behind the month changes, which can happen after a payment has been made, so it is not necessarily the amount that was paid. A month owes zero whenever Dakota's earned rate for it did not exceed your contract rate; the figure is never negative, and it is rounded down to a whole minor unit.
The mean of the month's stored daily principals. Absent while the month is incomplete.
The deployment's asset, present on a deployment's statement only. Absent means RD's marketing-fee statement.
"ACME"
The deployment's network, present on a deployment's statement only.
ethereum-mainnet, ethereum-sepolia, ethereum-goerli, ethereum-holesky, solana-mainnet, solana-devnet, solana-testnet, base-mainnet, base-sepolia, arbitrum-mainnet, arbitrum-sepolia, optimism-mainnet, optimism-sepolia, polygon-mainnet, polygon-amoy 1 - 30"ethereum-mainnet"
The earned rate the month was priced at, in monthly basis points: the pool's reserve interest for the month over its time-weighted reserve, one figure for every deployment. Present on a deployment's statement once the month is priced.
What has been paid for the month, in the token's minor units, on a deployment's statement. Absent when nothing has been paid: a month not yet paid is not a month paid nothing.
Was this page helpful?

