Hartii developer docs

Games

HartiiBiome Analytics

HartiiBiome Analytics is a page on the Hartii explorer at hartiibiome.com/explorer/analytics, added in Games/Biome 1.22.0. It shows live numbers for the Quai chain, HBOME, the Biome tools and the Hartii products. Next to every number it says where the number came from and how long ago it was read. It reads public sources only. It never asks for a wallet and never sends a transaction.

How to read it

Five rules hold for every figure:

  • A dash means unknown. When a source did not answer, or does not give that figure, it shows as a dash, never as 0. A real 0 appears only when the source itself said 0.
  • "At least" means a floor. Some totals can only be added up from the parts that are known. When a part is unknown the page writes "at least N" instead of passing a partial sum off as a total. It happens in three places: a log count cut short (see The Biome tools), Gallery items and creators (see The ecosystem), and visitor days (see Privacy). When nothing at all is known the figure is a dash, not "at least 0".
  • Every card names its source and when it was read, for example "Hartii Labs token quote · read 12s ago". A figure that comes from a second source says so on its own row.
  • The dot tells the truth about age. It is lit only after a successful read during your visit. It dims, and the line adds the word "late", once the read is older than twice its refresh time. Colour is never the only signal. A source that has never been read says why in words ("not published", "switched off") or "not read yet".
  • Different things are never added together. Burns of different tokens are separate rows, each in its own units. Burns of different types are separate rows. The HBOME and QuaiAxe buyback ledgers are never merged.

If part of the page could not be read, a line under the title says how many sources did not answer and which ones. The page asks again on its own, and refreshes only the text that changed, so keyboard focus and a text selection survive a refresh.

What the page shows

SectionWhat is in it
The chainLatest block, average block time, gas price, transactions on the latest full day, and the transactions per day on Quai for the last 30 days as bars that start at zero.
HBOMEMarket figures, holders, transfers and total supply, burns by type and the buyback account (see Burns).
Biome toolsWhat HPAY, Claim, OTC Link and Airdrop have done on chain, and what this site counted for the same tool.
The ecosystemHartii Labs, Hartii Games, Hartii Gallery and QuaiAxe.
Site trafficPage views, visitors, where visits came from and the actions counted by this site (see Privacy).
Where every number comes fromOne table of every source, how often it refreshes and when it was last read in your visit.

Where every number comes from

SourceFeedsRefresh
Quai RPC (Cyprus-1)Latest block, block time and gas priceevery 15 seconds
Quaiscan daily transactionsThe 30 day transaction barsevery 5 minutes
Hartii Labs token quote (HBOME, QAXE)Market rows and burned on chainevery 30 seconds
MEXC QUAI/USD rateThe dollar figure for HBOMEevery 2 minutes
Quaiscan token countersHBOME holders, transfers and total supplyevery minute
Hartii gateway, GET /api/analyticsLabs, Games, Gallery, the buyback ledgers and the tool countsevery 5 minutes, shared cache
Hartii traffic counts, GET /api/analytics/trafficEverything under Site trafficevery 5 minutes, shared cache

The average block time is the time between the latest block and the block 8 blocks before it, divided by 8. The dollar figure for HBOME is the Labs price in QUAI times the MEXC rate, and is a dash if either is missing.

The Biome tools

Every count in the top rows of a tool card is a count of things that happened on chain, so anyone can re-check it.

ToolWhat is countedRead from
HPAYHartii @names claimed. Sends are plain transfers, so there is no contract to count.totalSupply() of the HartiiProfiles contract 0x0015f71de1574c772B6815D25B233C065f42c896
ClaimCampaigns created, claims paid, and all transactions to the contract (labelled "overstates use", because it counts every call, not only claims)CampaignCreated and Claimed event logs, and the transaction counter, of 0x000a15D7542e77B69a4F1cF57D1fA8e889DED23E
OTC LinkOffers created, filled and cancelledofferCount(), and the OfferFilled and OfferCancelled logs, of 0x0053ad39062D08662C1fA88E9F61B9E1C5a2C9d9
AirdropBatches sent, and recipients across those batchesAirdrop logs of 0x00151800430B518909Ab5368a8115eE84eC1B72f. Recipients are the sum of each batch's count. Token totals are never added, because each batch can be a different token.

The HartiiProfiles, HartiiClaim, HartiiOTCLink and HartiiAirdrop contracts are described on HPAY, Claim, OTC Link and Airdrop.

Two details about log counts:

  • Quaiscan can list one event twice, with the same transaction hash and log index in two different blocks. The page counts a log once, so its count can be lower than a plain count of Quaiscan's list.
  • The page reads at most 20 pages of Quaiscan's log list for a contract (50 logs a page), and stops after 8 seconds. If a list is longer than that, or Quaiscan is slow, the figure is shown as "at least N" instead of being presented as complete. A log list that was read to its end and holds no such event is a real 0. A list that could not be read is a dash.

Under each tool the page also shows what this site counted for it over the range you pick (24 hours, 7 days or 30 days; 7 days is the default): HPAY links created and sends confirmed, Claim links opened and claims confirmed, OTC offers created and filled, Airdrop batches sent. Sends, claims, OTC fills and Airdrop batches are counted only after their transaction receipt is confirmed, never when a button is pressed; creating an HPAY link, opening a Claim link and an Explorer search are counted when they happen. These are traffic figures: they are dashes while counting is off, and they can differ from the on-chain counts above them, because a visit that sends Do Not Track is not counted and a transaction can be made without this site.

The ecosystem

  • Hartii Labs: tokens launched, active and graduated, holders as Labs counts them, and volume for 24 hours, 7 days and all time, from the Labs ecosystem statistics. When Labs reports that its volume scan is partial, the 24 hour and 7 day volumes are not shown. Burns are one row per token, each in its own units. Labs also publishes one total across all of its tokens; that total adds different tokens together, so the page never uses it.
  • Hartii Games: its version, whether its health check reports healthy, the number of games with play this month, and whether paid play is on.
  • Hartii Gallery: collections shown, items minted in them, creators and active listings. Some collections (the ones found on chain rather than launched through Gallery) report no mint count and no creator. Items minted and creators therefore read "at least N", and a note says how many collections they leave out; they are never a partial sum shown as a total. Gallery has no sales endpoint, so sales volume is a dash with that reason.
  • QuaiAxe: its market figures and its burns. The split of mining burns has no public data feed, so it is a dash that points to quaiaxe.com/supply.

Burns

The rule, as the project applies it: the only HBOME burn the program makes is half of each buyback paid from collected fees (exactly half of the HBOME that buy received, burned right after it). Buybacks paid from the treasury balance are not burned by the program. Any other burn happens only on the owner's explicit instruction, and the creator allocation is never burned. So far there has been one such instruction: on 2026-10-09 the owner ordered 1,111,111 HBOME burned (block 10,525,749), taken from the HBOME the treasury had bought back with treasury funds that day (1,576,974.215 HBOME in all). No buyback has been paid from fees yet. The page therefore does not say that bought HBOME is "never burned". The same rule is on the contract map.

The Burns card shows HBOME burns one type to a row and never adds the rows together:

RowWhat it isRead from
Burned on chain, all typesEvery HBOME burn, whatever its typeThe Hartii Labs token quote
Burned on the owner's orderBurns made on the owner's explicit instruction, one per transaction, confirmed ones onlyThe ownerBurns list of the buyback ledger
Burned by fee-funded buybacksThe half of fee-funded buybacks that was burnedThe ledger's tokensBurned
Not matched to a typeThe chain total minus the two rows above, worked out in whole 0.0001 HBOME units, with a margin of 0.0002 for the ledger's rounding. Shown only when all three figures are known. If it would be negative, the page says the chain figure and the ledger disagree and shows no remainder.Worked out by the page

The Buybacks card is a separate account, not a burn total:

RowWhat it is
Bought with treasury fundsHBOME bought by buybacks paid from the treasury balance
Bought with feesHBOME bought by buybacks paid from collected fees ("No buyback has been paid from fees yet" while that is 0)
Bought with fees, burn not yet madeOnly shown when above 0: the half of a fee-funded buy that is still owed to the burn
Burned on the owner's orderThe same figure as in the Burns card, taken from the bought HBOME
Bought and kept, not burnedBought, minus the fee-funded burns, minus what fees still owe to the burn, minus the owner burn taken from the bought HBOME. Not a burn. Worked out by the page, not read from the ledger's tokensHeld, which still counts the owner burn.

On the ledger's figures of 2026-10-09 the card would read 1,576,974.215 bought with treasury funds, 0 bought with fees, 1,111,111 burned on the owner's order and 465,863.215 kept. HBOME amounts on this page are printed with three decimals, cut and not rounded, so a figure never reads higher than the ledger says.

  • Labs and QuaiAxe burns are one token to a row, each in its own units.
  • QuaiAxe has two different measures and shows both: burned on chain (every burn) and burned by buybacks (only burns made through buybacks, from its own ledger). They are not added.
  • The treasury balance is never read and never shown as "bought back".

Privacy

Counting visits is first party: the numbers are kept by this project and nothing is sent to an analytics company. It applies to hartiibiome.com only. hartiigames.com does not count visits. This section describes what the code does; the privacy page is the policy.

  • No cookie, and nothing is stored in your browser.
  • What is sent when a page loads (a small script on the site sends each page view to be counted): the name of the page, the host of the site you came from, and a short campaign tag when the link had a plain utm_source (letters, digits, _ and -, at most 24 characters). The page name comes from a fixed list; an address or hash in a mistyped URL goes as "other". It never sends amounts, addresses, transaction hashes, search text, or anything else from the part of a link after the question mark. A move from one page of this site to another is sent as the word "self" and is not counted as a source of visits. Explorer searches are counted by kind only (block number, hash or address), never by what you typed. The script sends the message with no Referer header and no credentials. A browser that can neither delay a request nor keep one alive sends nothing.
  • When an action is counted. The money tools (HPAY, Claim, OTC Link, Airdrop) count an action only after the transaction is confirmed. The script is loaded on demand and a failure is ignored, so a blocked or failed counting script cannot stop a wallet tool.
  • What is kept for each counted visit: the event, the page, the referring host or campaign tag, your country, the kind of device (phone, tablet, computer or other) and a visitor code. Your IP address and your browser's user agent are not stored by this counter.
  • The visitor code is made from your IP address and user agent mixed with a random secret, then cut to 16 characters. The secret changes every UTC day and is deleted after 36 hours. Once it is gone, the code cannot be traced back to you or followed from one day to the next. If no secret is available, the visit is still counted but carries no code.
  • Visitor days. Visitors are shown as "visitor days": one browser (as told apart by address and user agent) on one UTC day. The same person on two days counts twice. Over 7 or 30 days the figure is the number of distinct daily codes. It reads "at least N" when some counted views carried no code, because those views are real but cannot be counted as visitors. It is a dash when views exist and none carried a code.
  • Do Not Track and Global Privacy Control are respected. If your browser sends either, the script sends nothing, and the server drops it too if it arrives. Crawlers and scripts that identify themselves, and requests that do not come from this site, are not counted either. The server also limits how many messages one address can send (100 in 10 minutes). That limit is kept in memory only, under a scrambled key that means nothing outside the running process, and is not stored.
  • Small groups are merged. Countries and referring sites with fewer than 3 visits are shown together as "Other (under 3)", so a single visit is never shown as its own country or referring site. A visit with no referrer reads "Direct or hidden", and an unknown country reads "Unknown".
  • What the numbers are. Views and actions are counted as they arrive by a script on the site. They are not audited: visits that send Do Not Track or Global Privacy Control, crawlers that identify themselves and anything over the rate limit are not included, and an action is a report from the visitor's browser (the server checks only that the request comes from this site and from a user agent that is not a known bot). Treat them as a guide, not an exact count.
  • Whether it is on. The privacy page says which, and the analytics page says "Counting is switched off" above its traffic figures while it is off.

What the page shows is aggregate only. Pages, referrers, countries and devices are ranked lists (at most 10 pages, 25 referrers, 25 countries and 10 device kinds), plus views over time, tool funnels and search counts. No list of visitors and no individual visit can be read from it.

What the traffic section lists

When counting is on, the Site traffic section shows, for the range you pick:

  • Page views and visitor days.
  • Views over time: per hour for 24 hours, per UTC day for 7 and 30 days. A quiet day or hour between the first and last counted one is a real 0. Nothing is drawn before counting started.
  • Top pages, where visits came from, countries and devices.
  • Per tool: page views of the tool page, then the confirmed actions (HPAY links created and sends confirmed, Claim links opened and claims confirmed, OTC offers created and filled, Airdrop batches sent).
  • Explorer searches, by kind: block number, hash, address.

When counting is off, or the reader is not set up yet, the section says so in words and every figure is a dash. If the reader fails, the section says "Traffic numbers were not reported just now." and shows dashes.

Quai Network mainnet · chain 9 · Cyprus-1. Figures marked "read on" a date were read from the chain that day; re-read before relying on them.