d.prod.pro docs
API

Account

Read your own watchlist, notifications, referrals, OPC, VIP status, rewards, and live trading data using your API key.

The Account endpoints return data belonging to the API key holder — watchlist groups, notifications, referral status, OPC configuration, VIP/credit balance, and dPro points and fees. All endpoints are read-only (GET); there is no user or address parameter — identity comes exclusively from the API key.

Your API key reads your own account data. Keep it secret. A leaked key exposes your watchlist, referral earnings, and more. Rotate immediately at the developer portal if compromised.

Cost

All Account endpoints are cheap reads costing 1 credit per call.

See Conventions for credit mechanics, rate-limit headers, and the paginated response envelope.


Account & profile

GET /account

Summary of the authenticated key — wallet address, VIP tier, rate limit, credit balance, and key prefix. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "walletAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "tier": "PRO",
    "rpm": 120,
    "credits": {
      "balance": "850",
      "resetAnchorAt": "2026-07-01T00:00:00.000Z"
    },
    "keyPrefix": "dp_a1b2c3"
  }
}

GET /account/vip

Current VIP subscription — tier, status, renewal settings, and period boundaries. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "tier": "PRO",
    "status": "active",
    "pendingTier": null,
    "autoRenew": true,
    "currentPeriodEnd": "2026-07-31T00:00:00.000Z",
    "cancelledAt": null,
    "requiresPayment": false
  }
}

GET /account/vip/entitlements

Feature entitlements for the current VIP tier — fee discounts, API rate limits, and feature flags. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "tier": "PRO",
    "feeDiscount": "0.20",
    "apiRateLimit": { "rpm": 120 },
    "features": {
      "advancedCharts": true,
      "alertsEnabled": true
    }
  }
}

GET /account/credits

Credit balance and next reset anchor. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "balance": "850",
    "resetAnchorAt": "2026-07-01T00:00:00.000Z"
  }
}

GET /account/credits/transactions

Paginated credit ledger — API call charges and top-ups. Credits: 1

ParamRequiredDefaultNotes
pageno1
limitno20

total is null (unknown); use hasMore for forward paging.

{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "id": "10042",
        "type": "charge",
        "amount": "-1",
        "balanceAfter": "849",
        "referenceType": "api_call",
        "referenceId": "req_xyzabc",
        "notes": null,
        "createdAt": "2026-06-29T14:22:10.000Z"
      }
    ],
    "page": 1,
    "limit": 20,
    "total": null,
    "hasMore": true
  }
}

Watchlist & notifications

GET /account/watchlist

All watchlist groups for the authenticated user with entry counts. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      { "id": "1", "name": "My Perps", "entryCount": 5 },
      { "id": "2", "name": "DeFi", "entryCount": 12 }
    ],
    "page": 1,
    "limit": 2,
    "total": 2,
    "hasMore": false
  }
}

GET /account/watchlist/{groupId}

Paginated entries within a watchlist group. Returns 404 if the group does not belong to the authenticated user. Credits: 1

ParamRequiredDefaultNotes
pageno1
limitno20
{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      { "coin": "BTC", "addedAt": "2026-05-10T08:00:00.000Z" },
      { "coin": "ETH", "addedAt": "2026-05-11T09:30:00.000Z" }
    ],
    "page": 1,
    "limit": 20,
    "total": 2,
    "hasMore": false
  }
}

GET /account/notifications

Paginated notification list for the authenticated user. Credits: 1

ParamRequiredDefaultNotes
isReadnotrue or false — filter by read status
typenoNotification type filter
coinnoCoin/symbol filter
ordernodescasc · desc
pageno1
limitno20

The response extends the standard envelope with unreadCount alongside the pagination fields.

{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "id": "5001",
        "type": "price_alert",
        "coin": "BTC",
        "message": "BTC crossed $65,000",
        "isRead": false,
        "createdAt": "2026-06-29T12:00:00.000Z"
      }
    ],
    "page": 1,
    "limit": 20,
    "total": 7,
    "hasMore": false,
    "unreadCount": 3
  }
}

GET /account/notifications/unread

Quick unread indicator — cheaper than fetching the full list. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "unread": true,
    "count": 3
  }
}

Referrals & rewards

GET /account/referrals

Referral status — ref code, referrer binding, trading volumes, builder rewards, and current tier level. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "refCode": "DPRO-XYZ7",
    "referrerAddress": "0x1111111111111111111111111111111111111111",
    "isBound": true,
    "refereesTotalVolume": "1500000.00",
    "selfTradingVolume": "320000.00",
    "builderRewards": "480.50",
    "claimable": "120.25",
    "currentLevel": "SILVER"
  }
}

GET /account/referrals/referees

All referred users with per-referee volume and reward breakdown, plus aggregate context fields. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "userAddress": "0x2222222222222222222222222222222222222222",
        "boundAt": "2026-05-01T10:00:00.000Z",
        "totalTradeVolume": "50000.00",
        "totalBuilderFee": "50.00",
        "builderReward": "25.00"
      }
    ],
    "page": 1,
    "limit": 30,
    "total": 30,
    "hasMore": false,
    "refereesTotalVolume": "1500000.00",
    "totalBuilderReward": "480.50",
    "referralRebateRate": "0.50",
    "currentLevel": "SILVER"
  }
}

GET /account/referrals/claims

Merkle-claim rounds for referral rewards (super_referral). Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "rounds": [
      {
        "roundId": 3,
        "amount": "120.25",
        "merkleRoot": "0xaabbcc...",
        "publishedAt": "2026-06-15T00:00:00.000Z",
        "claimed": false
      }
    ],
    "account": "0xabcdef...",
    "distributor": "0xdistributor..."
  }
}

GET /account/referrals/claims/status

Whether the authenticated user has unclaimed referral rewards in any published round. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "hasPendingClaim": true,
    "totalClaimable": "120.25",
    "nextRoundId": 3
  }
}

GET /account/referrals/claims/all

Claim-all payload for all unclaimed super_referral rounds — use this to build the on-chain claim transaction. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "roundIds": [3, 4],
    "amounts": ["120.25", "35.00"],
    "proofs": [["0xproof1a...", "0xproof1b..."], ["0xproof2a..."]],
    "account": "0xabcdef...",
    "distributor": "0xdistributor..."
  }
}

GET /account/points

dPro points overview — balance, total earned, rank, and per-volume-bucket breakdown. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "walletAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "balance": "2345.67",
    "rawBalance": 234567,
    "totalEarned": "5000.00",
    "rank": 42,
    "buckets": [
      { "bucket": "perp", "rawPoints": 180000, "points": "1800.00", "volumeUsd": "900000.00" },
      { "bucket": "spot", "rawPoints": 54567, "points": "545.67", "volumeUsd": "272835.00" }
    ]
  }
}

GET /account/points/transactions

Paginated dPro points ledger. Credits: 1

ParamRequiredDefaultNotes
bucketnoFilter by volume bucket (e.g. perp, spot)
pageno1
limitno20
{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "id": "7001",
        "volumeBucket": "perp",
        "role": "taker",
        "sourceType": "trade",
        "volumeUsd": "1000.00",
        "vipTierSnap": "PRO",
        "vipMultiplierSnap": "1.5",
        "rawPoints": "1500",
        "points": "15.00",
        "balanceAfter": "2345.67",
        "eventAt": "2026-06-29T10:00:00.000Z",
        "eventTimeSource": "fill",
        "tradeTxHash": "0xhash..."
      }
    ],
    "page": 1,
    "limit": 20,
    "total": 150,
    "hasMore": true
  }
}

GET /account/fees

Paginated dPro builder fee records for the authenticated wallet. Credits: 1

ParamRequiredDefaultNotes
startTimenoISO-8601 or Unix-ms; up to 31 days before endTime
endTimenoISO-8601 or Unix-ms; range must not exceed 31 days
pageno1
limitno100max 500
{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "txHash": "0xabc123...",
        "dproFee": "0.500000",
        "vipDiscountRate": "0.20",
        "dproFeeDiscounted": "0.400000",
        "tradeTime": "2026-06-29T11:30:00.000Z"
      }
    ],
    "page": 1,
    "limit": 100,
    "total": 843,
    "hasMore": true
  }
}

OPC

On-chain Protocol Configuration (OPC) data for the API key holder. GET /account/opc returns null if the user has not created an OPC.

GET /account/opc

The caller's OPC configuration, or null if not found. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "id": "42",
    "ownerAddress": "0xabcdef1234567890abcdef1234567890abcdef12",
    "name": "My OPC",
    "subdomain": "myopc",
    "logoUrl": "https://cdn.example.com/logo.png",
    "styleConfig": { "primaryColor": "#3b82f6" },
    "frontendFeeTenthsBps": 25,
    "isActive": true,
    "billingAnchorAt": "2026-06-01T00:00:00.000Z"
  }
}

GET /account/opc/revenue

Paginated OPC revenue entries. Requires an active OPC (returns an error if none exists). Credits: 1

ParamRequiredDefaultNotes
pageno1
limitno20
{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "id": "501",
        "amount": "12.50",
        "tokenSymbol": "USDC",
        "periodStart": "2026-06-01T00:00:00.000Z",
        "periodEnd": "2026-06-30T23:59:59.000Z",
        "createdAt": "2026-07-01T00:05:00.000Z"
      }
    ],
    "page": 1,
    "limit": 20,
    "total": 6,
    "hasMore": false
  }
}

GET /account/opc/revenue/summary

Aggregate OPC revenue totals. Requires an active OPC. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "totalRevenue": "75.00",
    "totalClaimed": "50.00",
    "pendingClaimable": "25.00",
    "tokenSymbol": "USDC"
  }
}

GET /account/opc/claimable

Current claimable OPC revenue balance. Requires an active OPC. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "claimable": "25.00",
    "tokenSymbol": "USDC"
  }
}

GET /account/opc/claims

OPC revenue Merkle-claim rounds with distributor context. Requires an active OPC. Credits: 1

No query parameters.

{
  "code": "0",
  "msg": "success",
  "data": {
    "items": [
      {
        "roundId": 2,
        "amount": "25.00",
        "merkleRoot": "0xccddee...",
        "publishedAt": "2026-06-20T00:00:00.000Z",
        "claimed": false
      }
    ],
    "page": 1,
    "limit": 1,
    "total": 1,
    "hasMore": false,
    "account": "0xabcdef...",
    "distributor": "0xdistributor..."
  }
}

On this page