Skip to main content
GET
/
v3
/
wallets
/
{address}
/
fees-paid
Wallet fees paid
curl --request GET \
  --url https://api.polynode.dev/v3/wallets/{address}/fees-paid \
  --header 'x-api-key: <api-key>'

Documentation Index

Fetch the complete documentation index at: https://docs.polynode.dev/llms.txt

Use this file to discover all available pages before exploring further.

Returns fills where the wallet was the order owner and OrderFilled.fee was greater than zero. Each row is enriched with the same market context used by wallet trade history. This is fees paid by the trader on executed order fills. It is not the same as maker rebates, LP rewards, or builder payouts.
page_total_fees_paid is the sum for the returned page only. Page through the result set to walk a full date range until wallet-level fee aggregates are indexed.

Request

GET /v3/wallets/{address}/fees-paid

Query parameters

ParameterTypeDefaultDescription
afterinteger0Start of time range (Unix seconds, inclusive)
beforeinteger9999999999End of time range (Unix seconds, inclusive)
orderstringdescasc or desc
limitinteger100Max 1000
offsetinteger0Pagination offset

Example

curl "https://api.polynode.dev/v3/wallets/0xbddf61af533ff524d27154e589d2d7a81510c684/fees-paid?limit=1&after=1779700000"
{
  "address": "0xbddf61af533ff524d27154e589d2d7a81510c684",
  "fees": [
    {
      "id": "0x4f8447fda6ed5b200d876ffc677fedd853d524c9a2751d055d7578c1575124dc_847",
      "maker": "0xbddf61af533ff524d27154e589d2d7a81510c684",
      "taker": "0xe111180000d2663c0091e4f400237545b87b996b",
      "fee": 352.774,
      "fee_paid": 352.774,
      "fee_paid_raw": "352774000",
      "price": 0.45,
      "size": 47511.65,
      "direction": "BUY",
      "market": "Spread: Thunder (-2.5)",
      "slug": "nba-sas-okc-2026-05-26-spread-home-2pt5",
      "condition_id": "0x7bcc428d368834c6dfbb4925f699079f65925fef69ad259274b88c5671aaa29e",
      "timestamp": "1779839786",
      "source": "order_filled_event"
    }
  ],
  "rows_returned": 1,
  "has_more": true,
  "page_total_fees_paid": 352.774,
  "fee_semantics": "wallet-paid trader fees from OrderFilled.fee where wallet is the order owner in S6 v1.order_filled_event.maker; this table includes legacy V1 rows plus V2 exchange rows",
  "elapsed_ms": 14
}

Response fields

FieldTypeDescription
addressstringWallet address, lowercased
feesarrayFee-bearing fill rows
fees[].feenumberFee in USD
fees[].fee_paidnumberSame value as fee, included for category-breakdown clarity
fees[].fee_paid_rawstringRaw 6-decimal fee amount
fees[].sourcestringorder_filled_event
rows_returnedintegerNumber of rows returned
has_morebooleanWhether another page exists
offsetintegerOffset used for this page
limitintegerLimit used for this page
page_total_fees_paidnumberSum of fee_paid for this page only
page_total_fees_paid_raw_notestringReminder that the total is page-scoped
fee_semanticsstringSource and attribution note
afterstringApplied start timestamp
beforestringApplied end timestamp
elapsed_msintegerServer-side query time in milliseconds
The fill objects also include standard trade fields such as maker_asset_id, taker_asset_id, maker_amount, taker_amount, token_id, asset, amount, amount_usd, transaction_hash, order_hash, builder, side, role, outcome, outcome_index, and image when available.

Errors

HTTPWhen
400Invalid wallet address
400Invalid order value
401Missing or invalid PolyNode API key

Authorizations

x-api-key
string
header
required

Path Parameters

address
string
required

Wallet address

Query Parameters

after
integer
default:0

Unix timestamp lower bound

before
integer
default:9999999999

Unix timestamp upper bound

order
enum<string>
default:desc

Sort order

Available options:
asc,
desc
limit
integer
default:100

Max results, clamped to 1000

offset
integer
default:0

Pagination offset

Response

Fee-bearing fill rows