Hartii Biome docs

Games

HPAY (formerly PayLink)

HPAY at hartiipay.app/hpay is Hartii's payment page (called PayLink until Biome 1.10.0).

The workspace has three tabs, in this order:

  • Your link (the default for a bare /hpay; ?mode=receive still opens it): connect your wallet to get your own payment link and its QR code first. With a verified Hartii @handle the native QUAI link is the short ?to=@handle one; without one it uses your checksummed Cyprus-1 address. A handle is optional. Request an amount updates the link and QR code. Payment asset for your receive link selects QUAI, qualified WQI or qualified HBOME; reviewed tokens use an asset-bound v2 request. Your address and its own QR follow below. Account/network changes rebuild the view. Get a handle opens an in-page registration window: see get your @handle.
  • Create a link: make a payment link with an amount, a QUAI dollar price or an expiry.
  • Send to @name: pay a Hartii @handle or a pasted Quai address from your wallet.

An Inbox side card shows up to five newest payments from the existing QUAI inbox reader for the connected wallet. It names incomplete or failed reads and links to the full inbox; it is not a combined multi-asset total.

Links with ?to=, ?amount=, ?amt= or ?memo= open Send as before; ?mode=receive|send|create picks a tab.

HPAY holds no funds. For standard HPAY payments, your wallet signs the transfer and there is no HPAY service fee. Network gas is charged in addition to the payment and shown as an estimate before signing.

Current value details

Every HPAY amount surface on hartiipay.app has an optional Value quotes · 14 fiat + Qi disclosure. It requests rates only when opened and shows USD, EUR, CNY, GBP, JPY, CAD, AUD, CHF, INR, BRL, SGD, HKD, KRW and, on hartiipay.app only, NGN, with JPY and KRW shown without decimal digits. The ECB feed carries no Naira, so the NGN row uses the median of at least two agreeing USD/NGN sources (open.er-api, currency-api and CoinGecko's USDT/NGN market, within 2 percent, each named with its as-of time); if that leg is stale or disagrees, only the NGN row shows a dash. A Display currency select on the panel picks the one fiat row shown beside each amount; it lives in page memory only and is never stored. HPAY tries CoinGecko's quai-network aggregate first. If that source is unavailable, it uses the same qualified MEXC/Gate QUAI/USDT market observation as the existing payment quote and crosses it through the official ECB daily reference-rate feed. The panel names the path actually used, its timestamps and ages, and discloses that USDT is treated as USD and ECB FX is daily rather than live. Market data older than 300 seconds, a CoinGecko timestamp more than 60 seconds in the future, ECB data more than four UTC calendar days old, or missing/malformed input is shown as a dash, never zero. While an amount field is empty or invalid, its rows show a plain dash because there is no value yet; "unavailable" names only real failures — stale, missing or unsupported sources — never an empty amount.

The payment amount, recipient, selected asset, review and wallet request do not change. Calculations use the exact QUAI wei or USD cents already shown on the page and integer arithmetic. A USD cross-rate is indicative and does not replace the existing two-source USD payment quote or create a price lock. On hartiipay.app (HPAY 1.37.0+) WQI also gets a fiat value: the WQI/USD price from explorer.qu.ai's WQI token record, used only when its QUAI leg is within 2 percent of the panel's own QUAI/USD and both readings are at most 300 seconds old, crossed into every listed currency, with source and as-of shown. HBOME stays unavailable because HPAY has no qualified direct price source for it, and other Hartii sites still show WQI as unavailable; separate QUAI gas can still have value context.

The extra Qi (informational) line is deliberately unavailable in this release. No current exact protocol conversion source was qualified under the session's network gate, and HPAY does not imply native Qi redemption, transferability, WQI parity or a guaranteed value. CSV, PDF and share exports retain their original exact amounts and historical meanings instead of adding today's rate to an older payment.

Price a request in Naira

Create a link on hartiipay.app can price a request in Naira (₦) as well as in dollars or WQI. HPAY converts the Naira price to dollars at the median of at least two agreeing USD/NGN sources (open.er-api, currency-api, CoinGecko USDT/NGN; they must agree within 2 percent and each is named with its as-of time), rounds up to the cent, and then locks an exact tagged QUAI amount for 15 minutes using the same three-source QUAI/USD quote as dollar requests. Disagreeing, stale or missing sources refuse the quote with a named reason instead of guessing.

Payment is always the exact QUAI amount. There is no stablecoin on Quai and HPAY never settles in Naira or holds money; the ₦ figure travels in the link as the requester's label (ngn=), and the request page shows it beside the dollar quote. The quote endpoint is GET /api/hpay/quote?ngn=<amount> (₦1 to ₦1,000,000,000, up to two decimals; not combinable with usd= or wqi=).

Price in dollars or Naira, settle in WQI

With WQI chosen as the payment asset, Create a link can take a price in dollars or Naira and lock an exact WQI amount for 15 minutes. The quote uses explorer.qu.ai's WQI token record (the same qualified source as the WQI-priced lane): the record must be fresh (at most 300 seconds) and its QUAI leg must agree within 2 percent with the three-source QUAI/USD lane, otherwise the quote is refused with a named reason, never averaged. A Naira price first converts to dollars at the USD/NGN median and rounds up to the cent; the WQI amount rounds up to the last unit. The endpoint is GET /api/hpay/quote?usd=<amount>&settle=wqi or ?ngn=<amount>&settle=wqi; other Hartii sites answer it with 404 wqi-quote-hpay-only.

The link is an ordinary WQI request for the exact amount, with the requester's dollar or Naira price as a label. The pay page shows "Priced at $25.00 by the requester · you pay exactly N WQI". Payment is a direct WQI transfer of exactly that amount; a smaller amount or a payment after expiry does not count as paid. HBOME requests stay exact-amount only.

Not enough QUAI? Get QUAI

When a connected wallet's QUAI balance is below the payment plus its network fee, the pay page stops before opening the wallet and shows Get QUAI: your address with a copy button and the route that exists today: buy USDT with Naira (on hartiipay.app the first step names Naira, for example Yellow Card or an exchange's P2P market; other sites say "buy USDT on an exchange or P2P market you use"), send it to an exchange that lists QUAI (as of 19 October 2026, Gate.io has QUAI deposits and withdrawals open on the Quai network and MEXC trades QUAI/USDT), buy QUAI, and withdraw it to your address on Quai mainnet. Exchange availability and fees change; check them on the exchange before you send. No on-ramp sells QUAI directly for Naira yet.

The wallet step has a Switch to Quai Mainnet button on the wrong network, a clear message when a wallet request is already open, and late-loading wallets are found without a reload. From HPAY 1.38.1, a hashless error after the wallet request remains unknown unless the wallet explicitly cancelled or the node gave a conclusive pre-broadcast refusal. One node's pending nonce is only that node's mempool view and cannot prove that another wallet route did not broadcast.

Welcome claim: 25 QUAI for new wallets

The onboarding event page is hartiipay.app/hpay/welcome (HPAY 1.41.0, 22 October 2026). The first 100 wallets each claim 25 QUAI, free, one claim per wallet:

  • You need 0 QUAI. You only sign a message: no gas, no payment, nothing leaves your wallet. The HPAY relayer pays the network fee and the contract pays the 25 QUAI.
  • Any wallet can claim (new or used, since HPAY 1.43.0), one claim per wallet, at most 50 claims an hour, open until Sun 25 Oct 2026, 22:59 UTC. Since HPAY 1.42.0 the claim is public: no event code, and the HPAY home on hartiipay.app shows a Claim 25 QUAI, free button while places are left.
  • After the claim you can pick a free Hartii name: your wallet pays the name fee (10 QUAI) and gas, and the relayer sends both back right after. One refund per wallet, for a name registered since the claim went live (22 Oct 2026, 16:13 UTC); the gas part is capped at 15 QUAI.
  • If the network refuses a claim outright (for example the fee moved), you can try again straight away. If a claim may already have reached the network, the page waits up to 5 minutes before another try, so nothing is sent twice (HPAY 1.43.1).
  • Contract HartiiWelcomeClaim 0x005EbcdE97B4694B07d38a6E336f9226107fFFA8 on Quai mainnet (Cyprus-1); terms are fixed in the contract. Until the contract is funded the page says "Claims are being topped up". The owner can only withdraw unclaimed funds after the deadline, when all 100 are taken, or while paused.

Invoice requests: first ten wallets

The campaign page is Request 25 QUAI. The first ten unique, proved wallets can each submit one request for exactly 25 QUAI. The capacity counts wallet addresses, not unique people. A place reserves a request for sponsor review; it does not promise an immediate or automatic payment.

Enter your @username or public Cyprus-1 wallet address, connect the wallet that owns it, then choose Sign free request for 25 QUAI. A username must resolve to that same connected wallet. The ownership message identifies the site, campaign, action, wallet, fixed amount, capacity, nonce and expiry. Signing sends no transaction, charges no gas and requires no deposit. Requests appear in the sponsor's existing HPAY inbox, in its opt-in Invoice requests panel.

Only the campaign sponsor can open those records, using a separate free ownership signature. The sponsor selects individual pending requests or Select all pending, then reviews every recipient, the exact principal, the live Airdrop fee, estimated network gas and maximum total. Ten requests have a 250 QUAI principal; the existing Airdrop contract's fee and network gas are additional. The fee is read through quoteFee(recipientCount) and checked again before payout; it is not a fixed campaign fee. This flow uses the existing Airdrop contract, with no new invoice contract.

A distinct Accept and pay click asks the sponsor's wallet for one batch transaction. The contract either pays all selected recipients or reverts the whole batch; a reverted transaction can still consume network gas. A request becomes paid only after the server verifies the exact sponsor, contract, calldata and value, a receipt in the canonical block, a mined height after preparation, and 12 confirmations. This threshold is a policy, not a measured finality guarantee.

Prepared batches can be reviewed again or cancelled after a reload. Once a wallet attempt may have been sent, pending or unknown results retain the reservation and never trigger an automatic resend. Keep the original transaction hash and use Check payment status, which only reads the chain. A classified wallet refusal or explicit pre-broadcast node rejection can release only the matching saved submission attempt; this is the authenticated sponsor client's known-unsent report, not independent server proof that the wallet did not broadcast. An arbitrary wallet error cannot release it. See the invoice request walkthrough.

The HPAY server stores request wallet addresses, amounts and statuses, plus the authentication and batch records needed to enforce ownership and recovery. The sponsor's access token stays in browser memory and expires after 15 minutes. The payout journal stays in storage on that browser origin/device; changing domains or clearing it does not prove an attempt failed. RPC and hosting services receive the requests needed to operate the feature, and payouts are public-chain transactions. Do not put private information in request or recovery fields.

For hartii mcp documentation discovery, this reference and the inbox guide describe the browser workflow. This release adds no CLI or MCP invoice signing or payout tool; the sponsor approves in the browser wallet.

Direct reviewed-token payments

HPAY supports WQI (Wrapped Qi), from 1.30.0 HBOME (HartiiBiomeInc) and, from 1.44.0, Q0 (QBOLT) as reviewed ERC-20 payment assets on Quai's account ledger. The pinned contracts are WQI, HBOME and Q0. A Q0 payment counts as paid only when the full requested amount actually reaches the recipient in that transaction; Q0 has no dollar or Naira price in HPAY. WQI is not native Qi. A reviewed-token payment is a direct transfer to the recipient's wallet; the sender separately needs QUAI for network gas. HPAY does not approve a spender, wrap or unwrap Qi, swap assets, or connect to a utility biller. A bill reference is only a link label: the money goes to the address in the request, so confirm that recipient accepts the selected asset.

The amount is exact, up to 18 decimal places. Neither token has a qualified dollar quote or dollar peg in HPAY; QUAI prices are never applied to them. Each reviewed token stays selectable while its read-only deployment check runs, but payment actions remain blocked until that asset passes. A failed asset check disables only that token and offers its retry; native QUAI remains available. Before the wallet can ask you to sign, HPAY checks the configured deployment identity and token metadata, the token balance, separate QUAI gas, and the exact transfer. Review the asset, recipient, amount and gas, then approve the transaction in your own wallet.

Reviewed-token links use asset-bound Request v2 fields (v=2, the exact asset, its pinned token, and an asset-specific recipient marker). Existing v1 requests remain native QUAI. A v1-only reader must refuse a v2 token link rather than treat it as a QUAI payment; do not strip the marker or asset fields to make an old reader accept it. Details: HPAY Request v1 and v2.

Every link recipient is a Cyprus-1 Quai-ledger address, not merely an address beginning 0x00; Qi-ledger and other-zone addresses are refused. A fixed wei amount must fit uint256. In the create form, an asynchronous dollar/Naira/WQI quote is bound to the exact asset, recipient and price terms that requested it, and is discarded if any of them changes before the response arrives.

Since Games/Biome 1.21.0 HPAY also has tools for shops and groups, all Beta (see HPAY tools); the inbox joined them in 1.24.0.

Send to @name

  1. Enter a handle (@name) or a 0x... address, an amount and an optional memo. Amounts are parsed exactly as decimal strings with at most 18 decimal places; invalid input is refused.
  2. The handle is resolved on-chain, read-only. HartiiProfiles.ownerOfName supplies the owner; profileOf checks the displayed name at HartiiProfiles 0x0015f71de1574c772B6815D25B233C065f42c896. Handles use 3-16 ASCII characters: a-z, 0-9, _, with uppercase folded to lowercase. A mismatching profile is refused. An unavailable display-only profile read does not replace a verified owner address.
  3. Check the full checksummed recipient address, name and amount. Unknown names, zero addresses, Qi-ledger addresses, addresses outside Cyprus-1 and ambiguous results are refused.
  4. Review the confirmation card and connect your wallet. Unknown or wrong network state cannot authorize a send. Account/network events update the wallet display and invalidate an unsent HPAY review when the selected payer or network changes.
  5. Press Send. After the gas estimate, HPAY re-reads the reviewed handle owner and checks the wallet's currently selected authorized account and mainnet chain again. A changed or unverifiable owner stops sending and requires a fresh review. The recipient is never silently replaced by a new owner. A changed or disconnected payer also stops the wallet request.
  6. Check the address, amount and network in the wallet prompt before approving. The transaction carries the reviewed payer and recipient, a gas limit and the available live gas price. HPAY checks that the wallet is on chain 9 right before the request and does not pass a chain id in it: Pelagus 1.0.62 otherwise signs at a network fee of 0 whenever its fee setting is not Auto, and the network refuses that transaction.

Pelagus uses a plain QUAI transfer. Blip and other supported injected wallets use QuaiRelay. The existing estimate adds 20% gas headroom; a fallback estimate is labelled when a live estimate is unavailable. Gas estimation and recipient checks do not send funds. A wallet-method namespace fallback repeats the final checks before making its request.

Wallet state and on-chain ownership can change after the last read. A plain transfer pays the explicit reviewed address, so the final wallet review remains necessary. HPAY does not automatically resend a rejected or uncertain payment, and a returned transaction hash makes the paid button single-use.

Submitted, pending and confirmed

Sent means the wallet returned a transaction hash. HPAY then waits for a receipt. On the Send to @name tab, a receipt with status 1 shows In a block. It counts as final after 12 confirmations; the transaction link shows how many it has. (Before Biome 1.21.0 this line said "Confirmed on-chain".) Missing, partial or unrecognized receipt status remains pending; it is neither confirmation nor proof of failure. Pending is not delivery. A status-0 receipt means the transfer failed; it can still consume network gas. If confirmation is delayed, check the transaction link before considering another payment.

The browser keeps a local safety record. A pending or unknown outcome stays blocked across reloads, and starting a new personal-payment intent does not clear it. If the wallet returned the original transaction hash, use it to check that attempt. If no unique hash came back, a manually supplied same-terms hash is only a read-only candidate: it cannot prove that it was this invocation or unlock another payment. Keep the hold and check the original wallet activity; do not send again blindly. After the node proves that the original fixed request failed with status 0, a still-valid bill request may be reviewed again with the same request identity. Confirmed, unknown or expired fixed requests do not become a new payment.

Recovery binds the original payment model as well as payer, recipient, asset and exact amount. It also requires the freshly read raw receipt's transaction and block identity to agree with the decoded payment and canonical block. A different plain/relay/token model or block hash cannot release the original hold. Wallet listener cleanup does not replace a returned hash or turn an uncertain wallet result into permission to resend.

The request page /pay counts confirmations itself. It says In a block with a count such as "3 of 12 confirmations" and says Confirmed on-chain only at 12. 12 confirmations is a placeholder until finality on Quai has been measured on mainnet; it is not a proven safe depth.

Nothing was sent means the network refused the transaction before accepting it: the fee your wallet set was too low, the wallet does not hold enough QUAI for the amount plus the fee, or the gas limit was refused. A refused transaction was never broadcast and cannot confirm later, so it is safe to try again. If a fee refusal repeats, set the network fee in your wallet to Auto. Claim, OTC Link and Airdrop treat a refusal the same way. Any other error after the wallet was opened stays status unknown: check your wallet before sending again.

The legacy /pay.html page shows a submitted transaction link; use the explorer to establish its final receipt status. It has the same final wallet checks and handle-owner refusal. If a handle changes, reload that payment page and review its newly resolved address before paying.

One payment page for every site and wallet

New HPAY payment and receipt links open on hartiipay.app, whichever Hartii site made them (Biome, Labs receive links, Gallery PayLink, hartii.org). From HPAY 1.38.1 / Games-Biome 1.35.1, older payer links on hartiibiome.com (/pay, /pay.html, /pay/@name) remain on Biome so their original pending-payment records stay effective. The HPAY tools on hartiibiome.com (/hpay, POS, dashboard, inbox, receipts) also keep working there so records saved in that browser stay reachable.

Why one site: the Blip wallet pays from a separate app wallet for each website, topped up from your main Blip wallet. With one payment site you fund one Blip app wallet for every Hartii payment. Inside Blip, when Blip already shares your account the pay page shows one Pay button (otherwise tap Connect Blip first); you still confirm in Blip, and nothing is ever sent without that tap. On a phone outside Blip, Open in Blip to pay opens the exact same payment in Blip; on a computer, a QR code lets you scan it with your phone. If the Blip app wallet is short, the page says so and asks you to top it up from your main Blip wallet. Payments still go straight to the recipient's own wallet; HPAY never holds money.

Open in Blip keeps what you typed

Without a Quai wallet in the browser, Open in Blip (a phone), Open in Blip to pay or the QR code (a computer) hands the payment to Blip. From 1.39.0 that hand-off also carries what you had already typed, so you do not type it twice. It covers the Send tab (recipient, amount and asset, note), an open-amount pay link (the amount only), a pay-to-@name page (a dollar or QUAI amount and a note) and the Split page (payee, total and currency, bill name). The link and the QR code follow the form as you type.

The details travel in one query parameter, hpd, on the hartiipay.app link: a versioned, base64url-encoded JSON of v, ts, kind, and any of to, amount, unit and note. It holds only what you typed. It never holds wallet data, a signature, a secret or a payment record.

It is a draft, and the guards are:

  • Nothing happens on its own. Blip fills only empty fields. It never connects, reviews or sends. A notice reads "Filled in from the page you opened. Check the details before you send." with a Clear button that removes what the draft filled. You still press the normal button and see the normal review.
  • The link's own terms win. A recipient in the link, a fixed amount and its asset, a memo and anything a request fixes are never overwritten. An amount and its asset are treated as a pair: a link that fixes one fixes both.
  • One bad value drops the whole draft. There is no partial use. The recipient must be an @name or a checksummed Cyprus-1 address (not a Qi, zero or other-zone address). The amount must be a positive decimal of at most 13 whole digits and 18 decimals that the page accepts for that asset, and it needs its unit. The unit must be one the page offers. The note is plain text of at most 140 characters (100 on Split). The kind must match the page. Unknown fields, a repeated hpd or an encoded value over 1,024 characters are refused.
  • It expires. A draft older than 30 minutes, or dated more than 2 minutes in the future, is dropped.
  • It is read only on hartiipay.app. Other hosts ignore it.
  • It does not stay in the address bar. The page reads hpd once and removes it from the address bar, whatever it held, so a reload, a share or a screenshot of the address does not carry it. It is not sent to analytics.

https://hartiipay.app/hpay?to=@name&amount=5 fills the Send tab. Every field is validated; a link never sends on its own. The visitor still reviews the payment and approves it in their wallet.

An amount typed or linked as text can be at most 100 characters. A longer one is refused with "That amount is too long. Enter a number like 1.5." (Before Games/Biome 1.21.0 and Gallery 2.2.11 a crafted amount= of tens of thousands of digits could freeze the page for seconds; the parser is now linear.) The newer amt field takes exact units: QUAI wei in Request v1, or reviewed-token base units in an explicit Request v2. See HPAY Request v1 and v2.

A handle link resolves the current owner when opened; it does not permanently bind that name to the original link creator. Use a checked address link when the recipient must remain fixed. A handle's name alone is not proof of the link creator's identity.

Privacy and network requests

The browser asks your injected wallet for accounts/network state and uses the Quai RPC for handle, contract, balance, gas and receipt reads. Quaiscan helps discover native QUAI history. The RPC, explorer, hosting site and wallet receive their normal request and network metadata; a shared payment URL can expose its address, amount, memo and reference. Reviewed-token history is read from the public node, and HPAY uses no historical token-price service. These notes are not a promise of zero collection by those services.

Since 1.26.0 the receipt page of a confirmed payment also makes one read to hartiigames.com for the payee's account type: a plain GET that carries the payee's public address, with no cookie and no referrer, and nothing is written. The inbox, the Statement and every PDF make no such call. See PDF receipts and your account type.

A memo containing bidirectional-control or zero-width characters is rejected, a ?amount= of 1,000,000,000 QUAI or more is not pre-filled (the page warns instead), and an invalid ?amt= is reported as ignored. If the wallet account or chain changes while the signing popup is open, the confirm card and any receipt stay visible with a warning to check your wallet before sending again; the single-send guard stays on. The wallet-method fallback is used only on JSON-RPC -32601 or EIP-1193 4200, never after a free-text error that could follow a broadcast.

Recipient, amount, memo and reference can be encoded in a shared link, browser history or clipboard. Do not put private information in them. Memo and reference are link/display text and are not included in transaction calldata. Local activity and payment safety records stay in the browser; they are not private cloud bills. Submitted transactions expose payer, recipient, asset, amount and transaction details on the public chain; removing a link or local browser history cannot erase them. HPAY does not ask for a private key or mnemonic in the page.

Dedicated HPAY and existing Biome records

hartiipay.app serves the same reviewed HPAY behavior on its own origin. Biome's existing HPAY routes and shared links are retained. Saved sales, local activity/history markers and pending payment or registration safety records belong to the browser origin that created them: nothing is transferred automatically, and there is no cross-domain lock. Before switching domains, check outstanding payments in your original Biome workspace. An empty history or unblocked form on the new domain does not prove that an original payment failed. See the Hartii sites guide.

HPAY tools (Beta)

Games/Biome 1.21.0 adds tools for shops, groups and websites (the Inbox followed in 1.24.0). They are Beta: tested by the project's own test suites. Start with small amounts.

All of them are non-custodial. The payer's own wallet signs; native QUAI may use QuaiRelay, while reviewed tokens transfer directly. The money goes from the payer straight to the address in the request. Hartii holds no keys, funds or balances, takes no fee, runs no swap or ramp, and the tools add no smart contract. The payer pays the normal network fee.

ToolWhereWhat it does
Point of sale/hpay/posQUAI dollar-priced sales or exact WQI/HBOME requests, with no token dollar conversion. Details
Receipt/hpay/receiptRebuilds QUAI, WQI or HBOME payment evidence from the chain, including eligible PDFs. Details
Create a link/hpay, Create a linkQUAI requests may be priced in dollars, Naira or WQI and always settle in exact QUAI; WQI and HBOME payments use exact-unit requests. Details
Pay page/pay/@name, /pay/0x...Direct QUAI or reviewed-token payments. Details
Split a bill/hpay/splitQUAI dollar requests or exact token shares, with disclosed matching adjustments and a board of who has paid. Details
Statement/hpay/statementIncoming-only QUAI, WQI and HBOME; it is not the two-sided Dashboard. Details
Inbox/hpay/inboxQUAI, WQI and HBOME payments an address sent and received. Details
Dashboard/hpay/dashboardSelected-range QUAI, WQI or HBOME sent/received totals, with CSV and two-sided PDF. Details
Pay with HPAY button/hpay/button, hpay.jsA button for any website. Button
Check a paymenthpayVerify.mjsverifyPayment for a shop's server. verifyPayment

The link formats, dollar quote and payment matcher are in HPAY Request v1 and v2. For walkthroughs, see reviewed-token payments, the Dashboard, HPAY: take payments in a shop and HPAY: read your inbox. The inbox is a list of payments, not of HPAY receipts: the chain cannot tell an HPAY payment from any other transfer.

/paylink and /paylink.html redirect permanently (301) to /hpay, preserving the query string. Previously shared Biome /pay, /pay.html?... and /pay/* payment links keep working on Biome, where their browser-local pending-payment journal was created; they are not redirected across origins. Newly created HPAY payment links use https://hartiipay.app/pay. On Hartii Gallery the payment-link feature is still called PayLink and shares HPAY's wallet sender code; since Gallery 2.4.0 the links it creates open on https://hartiipay.app/pay, and older hartiigallery.com/pay links keep working (see Relay).

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.