Swagger

Accounts

3 endpoints.

3 endpoints

Accounts

GET/account/delegation-statusEIP-7702 delegation status

Whether an owner EOA has adopted the UGTP EIP-7702 delegate, network by network, read from chain state alone — no operation is built and nothing is written. There is no networkId parameter by design: an authorization is signed per chain, so the cross-network picture is the answer.

  • activated — the EOA carries the delegation designator pointing at the UGTP delegate, the address echoed in delegate.
  • not_activated — a bare EOA, so a first operation still needs a client-signed authorization.
  • foreign_delegate — delegated to some other contract, which is named in delegatedTo. It is the only status that carries that field.
  • contract_code — the address has ordinary bytecode and is not an EOA at all.
  • unsupported — that chain has no chain-level EIP-7702 (Avalanche C-Chain today), so no delegation can exist there.
  • unavailable — that network's read failed. Deliberately never collapsed into not_activated, which would make an activated account look like it needs an authorization.
  • Failures are contained per network: one unreachable network degrades its own entry only, never the whole response. Every network the engine serves is reported, keyed by chain id.
  • A malformed address is rejected with 400. 429 when the rate limit is exceeded; check the Retry-After response header.

Authentication: X-API-Key

Input — query and path parameters

address string required
Owner EOA address (0x-prefixed 20 bytes)

Output — example response (200)

{
  "address": "0x9b5fcd6f647a14ebf0f88b1c3e5a3d34b951fc6f",
  "delegate": "0xa46cc63eBF4Bd77888AA327837d20b23A63a56B5",
  "networks": {
    "1": {
      "status": "not_activated"
    },
    "56": {
      "status": "not_activated"
    },
    "137": {
      "status": "activated"
    },
    "8453": {
      "status": "not_activated"
    },
    "42161": {
      "status": "activated"
    },
    "43114": {
      "status": "unsupported"
    },
    "11155111": {
      "status": "activated"
    }
  }
}

Output — every status this endpoint answers with

StatusWhen
200{ address, delegate, networks }
400Invalid request body or query parameters
401Missing or invalid credentials
429Rate limit exceeded — retry after the number of seconds in the `Retry-After` response header
500Internal server error
Open in Swagger
GET/account/seriesAccount-creation series (admin chart)

Account-creation time series for the admin dashboard's Accounts chart: zero-filled per-bucket new account counts (UTC-aligned buckets). An account is an address, whatever networks it is used on. It counts once, in the bucket where it first appeared and under the network it first appeared on. For a project-scoped request that is its first operation in those projects. networks is ordered by in-window count, descending. Omitting bucket picks a granularity from the window length (≤31d day, ≤~6mo week, else month). Platform staff see all accounts; clients are scoped to accounts attributed (via operations) to their projects.

Authentication: Bearer JWT

Input — query and path parameters

period string required
day | week | month | sixMonths | year | custom
bucket string
day | week | month (default derived from window length)
from string
Window start ISO date (required when period=custom)
to string
Window end ISO date (default now)
networkId string
Filter to one chain id
address string
Exact account address (case-insensitive)
activeWithin string
day | week | month | sixMonths | year — only accounts with an operation in this trailing window
projectId string
Filter to accounts attributed to one project
includeTestnets string
Boolean-as-string, default false. Testnet networks are excluded from results unless true; an explicit networkId filter takes precedence.

Output — example response (200)

{
  "period": "month",
  "from": "2026-06-10T00:00:00.000Z",
  "to": "2026-07-10T00:00:00.000Z",
  "bucket": "day",
  "networks": [
    {
      "networkId": "137",
      "name": "Polygon PoS"
    },
    {
      "networkId": "42161",
      "name": "Arbitrum One"
    }
  ],
  "series": [
    {
      "bucket": "2026-06-10T00:00:00.000Z",
      "total": 0,
      "byNetwork": {}
    },
    {
      "bucket": "2026-06-11T00:00:00.000Z",
      "total": 3,
      "byNetwork": {
        "137": 2,
        "42161": 1
      }
    }
  ],
  "total": 3
}

Output — every status this endpoint answers with

StatusWhen
200{ period, from, to, bucket, networks[{networkId,name}], series[{bucket,total,byNetwork}], total }
400Invalid request body or query parameters
401Missing or invalid credentials
Open in Swagger
GET/account/listAccount list (admin table)

Control plane. One page of accounts, newest first, matching the filters — one per address. Each row lists every network it is used on (within a networkId filter, when given) and its operations within the projects in view. createdAt is when the address first appeared on any network, or its first operation in the requested projects. The network, address and activity filters only decide which addresses are listed. The page period bounds that first appearance — the same window the account-creation series uses — so omit it for every matching account. Platform staff see all accounts; a client is scoped to accounts attributed, via their operations, to its own projects.

Authentication: Bearer JWT

Input — query and path parameters

period string
day | week | month | sixMonths | year | custom (from is required when custom)
from string
Window start (required when period=custom)
to string
Window end (defaults to now)
networkId string
Filter to one chain id
address string
Partial account address (case-insensitive)
activeWithin string
day | week | month | sixMonths | year — only accounts with an operation in this trailing window
projectId string
Filter to accounts attributed to one project
includeTestnets string
Boolean-as-string, default false. Testnet networks are excluded unless true; an explicit networkId filter takes precedence.
limit number
Results per page
offset number
Pagination offset

Output — example response (200)

{
  "accounts": [
    {
      "address": "0x9b5fcd6f647a14ebf0f88b1c3e5a3d34b951fc6f",
      "networks": [
        "137",
        "42161"
      ],
      "firstNetworkId": "137",
      "createdAt": "2026-06-18T12:00:00.000Z",
      "operationCount": 12
    }
  ],
  "total": 1
}

Output — every status this endpoint answers with

StatusWhen
200{ accounts[{address,networks[],firstNetworkId,createdAt,operationCount}], total }
400Invalid request body or query parameters
401Missing or invalid credentials
Open in Swagger