List staking operations

Every stake, unstake, reward payout and fee contribution on the network, newest first, each with the address behind it and the transaction that carried it. Events appear here shortly after their transaction is mined. Amounts are given in wei, the smallest unit of DUAL. Open to everyone. No sign-in needed.

GET
/public/network/staking/operations

Query Parameters

id?string

Return only the resource with this identifier. Equivalent to fetching it by path, but usable together with the other list filters.

autocomplete?string

Search the endpoint's supported text and identifier fields. Matching may be an exact identifier lookup or a case-insensitive prefix search, depending on the resource. Alphanumeric characters only.

limit?integer

How many items to return in one page. The default and the maximum are both 25; a larger value is rejected with 400.

Default25
Formatint64
Range1 <= value <= 25
next?string

Cursor for the next page, taken verbatim from the next field of the previous response. Keep every other query parameter the same between pages: sortBy and order are part of what the cursor means. An absent or empty next in a response means there are no more pages.

The value is opaque. Do not parse it or build one yourself.

order?string

Sort direction. Defaults to desc, newest first.

Default"desc"
Value in"asc" | "desc"
sortBy?string

Field used to sort the result. Supported fields depend on the endpoint; use when_created for chronological ordering where it is available. The default is the resource identifier, and identifiers break ties so cursor paging stays stable.

address?string

Return only operations by this staker address.

tx_hash?string

Return only operations from this transaction.

type?string

Return only operations of this kind.

Value in"stake" | "unstake" | "reward" | "fee_dispatch" | "other"
when_created[$gt]?string

Indexed strictly after this instant.

Formatdate-time
when_created[$gte]?string

Indexed at or after this instant.

Formatdate-time
when_created[$lt]?string

Indexed strictly before this instant.

Formatdate-time
when_created[$lte]?string

Indexed at or before this instant.

Formatdate-time

Response Body

application/json

application/json

application/json

curl -X GET "https://api.dual.network/public/network/staking/operations"
{
  "operations": [
    {
      "id": "665f1c2d4b1a2c3d4e5f6c01",
      "address": "0x1234567890abcdef1234567890abcdef12345678",
      "amount": "5000000000000000000000",
      "tx_hash": "0xf1e2d3c4b5a697887766554433221100ffeeddccbbaa99887766554433221100",
      "type": "stake",
      "when_created": "2026-03-05T14:22:11Z"
    },
    {
      "id": "665f1c2d4b1a2c3d4e5f6c02",
      "address": "0x1234567890abcdef1234567890abcdef12345678",
      "amount": "12400000000000000000",
      "tx_hash": "0xaabbccddeeff00112233445566778899aabbccddeeff001122334455667788ff",
      "type": "reward",
      "when_created": "2026-03-06T00:00:04Z"
    }
  ]
}
{
  "code": 3,
  "message": "Key: 'limit' Error:Field validation for 'limit' failed on the 'lte' tag"
}
{
  "code": 13,
  "message": "internal error"
}