Query AceDataCloud Platform $ACE Token Holdings and Discounts

Return the $ACE token quantity held by the on-chain wallet bound to the current account and the global discount rate enjoyed as a result. The $ACE token is the utility token of the AceDataCloud platform, and different tiers of holdings allow for different discounts on all recharge orders:

$ACE Holdings Discount Rate
< 100 1.00
100 – 999 0.95
1,000 – 9,999 0.90
10,000+ 0.80

The discount rates and specific tiers may be adjusted at any time, please refer to the discount_rate returned by this interface, and do not hard-code the tier table on the client side.

ℹ️ This interface belongs to the AceDataCloud Platform Management API, with the unified prefix https://platform.acedata.cloud/api/v1/.

Interface Overview

Item Content
Method GET
URL https://platform.acedata.cloud/api/v1/coin/
Auth ✅ Requires account token

Authentication Instructions (How to Obtain Account Token)

Request Header:

Authorization: Bearer platform-v1-92eb****629c

How to obtain: Log in to the AceDataCloud PlatformAccount Token Console → Click the "Create" button. For details, see Manage AceDataCloud Platform Account Tokens.

Query Parameters

Parameter Type Required Default Description
address string No Wallet address. If not provided, the currently bound wallet of the account will be used.
chain string No solana Chain: solana / ethereum / base / polygon

Request Example

cURL

curl 'https://platform.acedata.cloud/api/v1/coin/' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer platform-v1-92eb****629c'

Python

import requests

resp = requests.get(
    "https://platform.acedata.cloud/api/v1/coin/",
    headers={"authorization": "Bearer platform-v1-92eb****629c"},
    timeout=10,
)
data = resp.json()
print(f"Holdings: {data['balance']} $ACE")
print(f"Discount Rate: {data['discount_rate']}")
print(f"Discount Tier: {data.get('tier', 'N/A')}")
print(f"Amount needed for next tier: {data.get('next_tier_at', 0) - data['balance']} $ACE")

Node.js

const r = await fetch('https://platform.acedata.cloud/api/v1/coin/', {
  headers: { authorization: 'Bearer platform-v1-92eb****629c' },
})
console.log(await r.json())

Response Example (HTTP 200)

{
  "address": "9Aa5...PUMP",
  "chain": "solana",
  "balance": 1250.5,
  "tier": "Silver",
  "discount_rate": 0.90,
  "next_tier": "Gold",
  "next_tier_at": 10000,
  "all_tiers": [
    { "name": "None",   "min": 0,     "discount_rate": 1.00 },
    { "name": "Bronze", "min": 100,   "discount_rate": 0.95 },
    { "name": "Silver", "min": 1000,  "discount_rate": 0.90 },
    { "name": "Gold",   "min": 10000, "discount_rate": 0.80 }
  ],
  "queried_at": "2026-04-26T08:30:00Z"
}

Response Field Descriptions

Field Type Description
address string Wallet address
chain string Chain code
balance number Current $ACE holdings
tier string Current tier name (None / Bronze / Silver / Gold)
discount_rate number Discount rate corresponding to the current tier (1.0 = no discount, 0.80 = 20% off)
next_tier string null
next_tier_at number null
all_tiers array All tier definitions
queried_at string Time of on-chain data query

Error Handling

HTTP Code Meaning
400 invalid_address address is not a valid wallet address
400 unsupported_chain chain value is not in the supported list
401 not_authenticated Missing account token
503 chain_unavailable On-chain node temporarily unavailable, exponential backoff recommended

Practical Tips

  • Holdings data has a 1-3 minute delay—it is refreshed periodically from the on-chain RPC node, not in real-time. Please wait if you have just purchased.
  • Discounts are applied automatically: When calling Create AceDataCloud Platform Recharge Order, the server will automatically apply discounts based on current holdings, no need to manually pass discount_rate.
  • Multiple wallets: This interface retrieves the currently bound wallet of the account. When multiple wallets are bound, it automatically calculates based on the maximum holdings.
  • How to bind a wallet: Log in to the AceDataCloud Platform → Personal Center → Wallet Binding.