Hartii Boost (beta)
Hartii Boost lets anyone pay QUAI to put an indexed Hartii Labs token in the Promoted row on the home page, trending and the /boost board. You buy points, not tokens: points rank a token in the Promoted row and fade to zero over 24 hours.
Live at hartiilabs.com/boost — explicit beta: covered by the project's own test suite, an Orchard rehearsal and an internal review, not an independent audit.
What you get — and what you don't
- Promoted placement only. The Promoted row is a separate, clearly labelled row. Boost never changes a token's organic rank, trending score or any Hartii analytics number.
- Paid, not earned. A large buyer can always buy the top Promoted slot; that is the mechanism, not a quality signal. Boost is no endorsement, no guarantee of attention, volume or price, and says nothing about a token's safety.
- No refunds. A purchase is final. Moderation can still hide a token (and its Promoted slot) after you paid — hidden or unindexed tokens never appear in Boost results.
Packages and price
| Package | Points | Price at the current on-chain price |
|---|---|---|
| 1 | 10 | 5 QUAI |
| 2 | 30 | 15 QUAI |
| 3 | 50 | 25 QUAI |
| 4 | 100 | 50 QUAI |
| 5 | 500 | 250 QUAI |
Price = points × pricePerPoint (currently 0.5 QUAI per point), plus network gas. The page
reads packages and the quote from the contract live; the table above is the launch default.
| Owner setting | Hard cap in code |
|---|---|
pricePerPoint | MAX_PRICE_PER_POINT = 10 QUAI |
| Number of packages | MAX_PACKAGES = 8 |
| Points per package | MAX_POINTS = 5,000 |
How ranking works
- Each purchase adds
points × (86,400 − age in seconds) / 86,400— it decays linearly from full value to zero over 24 hours from its on-chain timestamp. No expiry transaction is needed. - A token's Promoted score is the sum over its active purchases. Ties go to the most recent purchase, then address.
- A confirmed purchase appears after the indexer passes it: it waits 20 blocks for finality and usually lands within about a minute.
Paying
- Open /boost or a token page's Boost panel, pick an indexed token and a package, and tick the acknowledgement.
- The app re-reads the live quote, estimates gas, checks your balance, then asks your wallet
(Pelagus or Blip) to sign
boost(token, points)sending exactly the quoted QUAI. - The receipt is checked for the matching
Boostedevent before the purchase shows as confirmed.
If the price drops between quote and mining, the surplus is refunded in the same transaction. If it
rises, the transaction reverts (network gas is still spent). If your wallet cannot receive the
surplus, it becomes a refund credit you can withdraw with withdrawRefund(to).
If the page reloads or the connection drops mid-payment, the panel stays locked until you check the receipt (known hash) or confirm in your wallet/explorer that nothing was sent — so you can't pay twice by accident. Never resubmit a payment blindly.
Contract
| Network | Quai Cyprus-1 (chain id 9) |
HartiiBoost | 0x00445cdaaF747F164bFC9e474e16881b52DA478c |
| Deploy block | 10456176 |
| Owner / fee recipient | Hartii admin treasury 0x00606Ee2fF3A26B20213906a41aa8CAfCB251237 |
function quote(uint256 points) external view returns (uint256); // exact price in wei
function packages() external view returns (uint256[] memory);
function boost(address token, uint256 points) external payable; // msg.value >= quote(points)
function withdrawRefund(address payable to) external; // buyer's failed-surplus credit
function withdrawFees(address payable to) external; // recipient's failed-push credit
event Boosted(address indexed token, address indexed buyer, uint256 points, uint256 paid, uint256 at);- Solidity 0.8.20, no imports, no proxy, no rescue or arbitrary-call function; reentrancy lock on every write; two-step ownership.
- Payment to the treasury is pushed with 30,000 gas; if that push fails, it is credited to that
recipient's
pendingFeesinstead of blocking your purchase. pause()stops new purchases only — quotes and both withdrawals keep working.- The contract does not check which token you boost; the app and every API only show indexed, visible tokens. Boosting anything else directly on-chain is a non-refundable no-op for placement.
API
All JSON, CORS-enabled, cached about five seconds. An outage returns HTTP 503 rather than an empty
list. limit is 1–100; follow nextOffset to page.
| Endpoint | Returns |
|---|---|
GET /api/boosts/active?limit=&offset= | Ranked Promoted tokens: metadata, active points, latest purchase and expiry |
GET /api/boosts/recent?limit=&offset= | Latest visible purchases: token, buyer, points, paid wei, tx hash, block |
GET /api/token/:address/boosts | One token's active points, purchase history and decay inputs (404 if hidden/unindexed) |