{"ok":true,"source":"atomone","chain":"atomone-1","section":"index","everyMs":null,"asOf":null,"sourceAsOf":null,"freshness":{"status":"not_applicable","reason":"module_catalog","checkedAt":null,"ageMs":null,"everyMs":null,"sourceAsOf":null},"partial":false,"failed":[],"data":{"module":"X PrimeFlow — analytics for AtomOne","version":"2.1.0","chain":"atomone-1","license":"open — free public read API, no key required","publicBase":"/api/public/atomone","rateLimit":{"requestsPerMinute":60,"heavyEndpointsPerMinute":30,"scope":"per IP"},"dataSources":{"chain":"our own AtomOne validator node (https://atomone-mainnet-api.bonynode.online) is asked first; 5 third-party public LCDs are kept behind it as failover (atomone-api.allinbits.com, atomone-api.allinbits.services, atomone-rest.publicnode.com, atomone-mainnet-api.itrocket.net, rest.cosmos.directory/atomone). Every response names the node that actually answered - activeLcd and sources[].endpoint - so \"we read it ourselves\" is checkable, not asserted","prices":"sqs.osmosis.zone and public-osmosis-api.numia.xyz - two third-party servers. Numia is a separate company, not Osmosis. Osmosis is the only venue with real ATONE/PHOTON liquidity, but this module does not read osmosis-1 itself: it asks both servers for an already computed number"},"publicInfrastructure":{"provider":"BonyNode","rpc":"https://atomone-mainnet-rpc.bonynode.online","rest":"https://atomone-mainnet-api.bonynode.online","grpc":"atomone-mainnet-grpc.bonynode.online:443"},"endpoints":[{"path":"/overview","desc":"every section in one response; full IBC route rows included, heavy validator and governance lists trimmed"},{"path":"/network","desc":"chain id, app version, height, block lag, active LCD"},{"path":"/staking","desc":"bonded ratio, inflation, annual provisions, approximate APR, nakamoto_bonus"},{"path":"/validators","desc":"validator set with uptime over the slashing window, voting power, Nakamoto coefficient. ?limit=N"},{"path":"/governance","desc":"proposals, tallies, three AtomOne threshold classes, dynamic quorum, deposit throttler, constitution, governors. ?constitution=1 includes the full text"},{"path":"/ibc","desc":"all channels joined to their light-client status and remote channel id; usable:true requires both STATE_OPEN and an Active client"},{"path":"/photon","desc":"PHOTON fee-token: conversion rate, supply cap progress, formula check, mint-vs-market premium, and betterVenue — which of the two routes gives more PHOTON today"},{"path":"/treasury","desc":"separate on-chain balances for the Community Pool and Treasury DAO, with optional spot USD valuation"},{"path":"/fees","desc":"live dynamic-fee parameters and state, per-denom gas prices, PHOTON fee requirement, and the MsgMintPhoton ATONE exception"},{"path":"/photon/mint-tx","desc":"builds an UNSIGNED MsgMintPhoton for ?address=atone1…&amount=<ATONE>, with the live account number, sequence, fee and the estimated PHOTON out. The server never signs and never holds a key; the wallet does. Never cached."},{"path":"/prices","desc":"ATONE and PHOTON price, 24h change, volume and liquidity from two independent Osmosis reads"}],"honesty":["A failing upstream returns HTTP 503 with a reason, never HTTP 200 with an empty array.","Chain facts are read from our own AtomOne validator node first: a public-ledger read on our own hardware, which is what makes them ours to redistribute. When our node is unreachable the same fact arrives from a third-party public LCD, and that particular response carries their terms, not ours - which is why the answering node is named in every response instead of being assumed.","ATONE and PHOTON prices are NOT a public-ledger read: they come from sqs.osmosis.zone and public-osmosis-api.numia.xyz, two third-party servers that computed them. Running our own node does not change that, because this module never reads osmosis-1. Everything derived from a price - treasury USD totals, mintPremium, betterVenue - inherits the same limit.","Every section carries sources[] listing each LCD path that answered or failed, plus partial:true when the picture is incomplete.","stakingApr is flagged approx:true — AtomOne enables a nakamoto_bonus, so realised yield is per-validator.","Validator uptime is computed over the chain signed_blocks_window, which is returned alongside it.","Validator effectiveApr is a live estimate from current stake, eta, nominal APR and commission — not a yield promise.","Community Pool and Treasury DAO balances are reported separately; token quantities are never added together without market quotes.","Validators without a matched signing_info report uptime:null rather than a flattering 100%.","IBC working routes are explicit rows, not inferred from channels minus problems; STATE_OPEN alone never means usable.","mintPremium > 0 means the market gives MORE PHOTON per ATONE than minting does, i.e. minting is the worse of the two routes. betterVenue states that verdict outright so it cannot be read the wrong way round.","With no market quote betterVenue is null — \"there is nothing to compare against\", never \"minting is fine\".","The mint builder returns an unsigned transaction only. No private key ever reaches this server, and to_address is asserted to equal the caller address on every response."]},"ts":1790581375010}