Your MetaStaking average
const url = 'https://foxleague.ai/api/teams/metastaking';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://foxleague.ai/api/teams/metastaking \ --header 'Authorization: Bearer <token>'Answers the 30-day average of your wallet’s MultiversX MetaStaking holdings, with the latest daily value. Once a UTC day, at the snapshot hour (00:00 UTC by default, snapshot_hour_utc), the server reads every team wallet from the MultiversX gateway: active SFOXSY-e335c1 positions (FOXSY staked alone; an unbonding position is not counted) plus the FOXSY half of the dual-farm position (METAFOXSLK-2a13e3, the EGLD-FOXSY farm) at that day’s pool price: the LP amount inside your dual-farm position times the pool’s FOXSY reserve, divided by the pool’s LP supply. The average is the sum of your daily totals over the snapshot days of the last 30 UTC days, divided by the number of those days (days_covered). A day you held nothing counts 0. A day whose read of your wallet failed is left out of your average. There is no history before the first snapshot day: until 30 days exist, days_covered says how many the average covers. The window ends today once today’s snapshot is complete, else yesterday. Amounts are atomic FOXSY (18 decimals) as decimal strings. Nothing is paid or boosted by it.
Who: a signed-in player with a team. You only ever read your own wallet.
Refusals:
MetaStaking snapshots are not taken on this network.: carriescode: "not_on_this_network"; MetaStaking exists on mainnet only.Team not found: your wallet has no team.
Without a session the answer is HTTP 401. If the snapshots cannot be read on our side, the answer is HTTP 500 with an empty body.
Authorizations
Section titled “Authorizations ”Responses
Section titled “ Responses ”Success or a refusal: read success (the refusals are in the description).
object
A machine-readable reason next to error, set only where the caller must act differently. tx_pending: the payment was not refused but could not be verified yet; keep the transaction hash and confirm again with the same hash, never pay twice.
The answer. Present when success is true.
object
The average of your daily totals over the snapshot days of the last 30 UTC days, in atomic FOXSY (18 decimals) as a decimal string, rounded down. null before the first snapshot day.
How many snapshot days the average covers, at most window_days.
The latest snapshot day in the window, YYYY-MM-DD (UTC). null before the first one.
The UTC hour (0 to 23) the daily snapshot is taken at.
Your total on last_snapshot_day, in atomic FOXSY as a decimal string. "0" when you were read holding nothing then. null when there is no snapshot day yet, that day’s read of your wallet failed or your team did not exist yet when that day’s snapshot started.
The window of the average in UTC days: 30.
Why the request was refused, in plain words. Present when success is false.
true when the request did what it asked. false is a refusal: read error.
Example
{ "data": { "average_30d_foxsy_atomic": "12500000000000000000000", "days_covered": 12, "last_snapshot_day": "2026-10-28", "snapshot_hour_utc": 0, "today_foxsy_atomic": "13000000000000000000000", "window_days": 30 }, "success": true}No valid session. The body is plain text: Missing Authorization header, Invalid Authorization format, Invalid session token or Session expired or invalid. Sign in again.
Example
Session expired or invalidThe snapshots could not be read on our side. The body is empty.