FWA TRACKER / METHODOLOGY
$FWA—
FWA / METHODOLOGY

Methodology

Connecting to V2 sources

Main pool results cover V2 only. Custom pools are monitored exclusively for activity and volume and are excluded from every PnL calculation in this tracker.

01 / Deposits

Definition
Estimated result from resolved main-pool deposit outcomes plus earned income, including reconciled pending balances.
Formula
Credited ETH + pending fees + pending crown ETH + settlement backing returned − settled backing − lost NFT reference value − early crown exit fees + earned FWA value − covered gas.
Assumptions
Active capital and unresolved allocations are not treated as realized losses. The selected NFT reference is not a verified purchase cost.
Source
Main V2 listing/settlement history, wallet account anchors, pending balances, reward credits and classified gas receipts.
Capital, outcomes & NFT valuation

Active positions: backing still in the pool is locked principal, not an expense. The result does not mark unsold inventory to market or measure its opportunity cost. Accrued fees and eligible pending rewards are accounted for separately.

Allocated positions: selection removes the listing from the available pool, but its final economic outcome may not be known. Allocated backing remains separately disclosed exposure. Only settled backing enters the resolved-outcome expense. The account’s gross backing-loss counter is reconciled against settled plus allocated backing; it is not deducted again as a separate cost.

Settled positions: every settled listing contributes its recorded backing to the expense. If the spinner keeps, relists or receives the NFT through finalization, returned backing is principal and the depositor’s lost NFT receives the selected reference mark. If the spinner accepts ETH or FWA, no lost-NFT mark is charged for an NFT returned to the depositor. An unresolved NFT delivery can qualify the estimate, as explained below.

Withdrawn positions: returned principal and the original NFT are not new income. Any recorded early crown exit fee and covered gas remain expenses. A failed NFT return is kept as a separate delivery exposure.

Standard estimate: lost depositor NFTs use recorded allocation backing, without a universal 5% discount. The tracker does not reconstruct the wallet’s historical NFT purchase cost. Historical oracle and current collection-floor settings are alternative reference values, not proof of acquisition cost. Historical oracle uses the last eligible collection update before listing creation, no older than seven days by its observation time; cleared or unavailable references remain missing. Allocation backing is frozen at selection and is not an NFT resale price. The special Punk floor substitution applies to spinner prizes, not depositor NFT cost.

Fees, crown & earned FWA

Credited ETH earnings already include credited crown payouts. Pending listing fees and the current crown holder’s uncredited pot are added from the reconciled balance bundle. Claiming ETH previously accrued does not earn it again. The fee-earnings USD display uses the latest available ETH/USD quote.

Depositor FWA includes cumulative credited rewards plus pending uncredited tokens. Claiming those tokens does not add a second reward; the calculation is based on earned amounts rather than the wallet’s current FWA balance. Credited tokens and pending balances are anchored together so a newer credit is not added to the older pending amount it already contains.

Earned FWA is valued using the latest available FWA/ETH quote, including tokens earned or claimed earlier. This is a current reference mark, not historical ETH proceeds, acquisition-date pricing or reconstruction of later token sales. Profiles may retain a saved quote if the current source is unavailable; its use is disclosed in Calculation details.

The depositor ranking uses the stricter reference calculation, reusing retained verified deposit snapshots where available. Reconciled allocated backing remains disclosed exposure outside resolved-outcome expenses; a numeric result does not mean every allocation has settled. Profiles can additionally show supported delivery scenarios or partial deposit estimates, sometimes from a different snapshot. The profile estimator checks required monetary inputs; the direct ranking reference calculation assumes its ready source bundle contains those amounts. A ready flag alone is not proof of field completeness.

02 / Spins

Definition
Main pool spinner estimated PnL, and successful request activity.
Formula
ETH settlements + FWA settlements at the current quote + kept NFT reference values + final purchaser rewards at the current quote − acquisition fees − VRF − covered gas.
Assumptions
Punk NFTs use the current native floor by default; other NFTs use recorded backing. Request time assigns activity to each window.
Source
V2 purchase events, settlement records, historical receipts and official market quotes.
Accounting rules & limitations

Spinner reference PnL = ETH cashouts + marked FWA received + marked NFTs kept + buyer rewards − paid spin fees − VRF fees − gas.

Paid acquisition fees exclude pending escrow and refunded acquisitions; refunds are not subtracted a second time. VRF and covered transaction gas remain costs when paid, including pending and refunded requests. Spinner return % = reference PnL ÷ (acquisition fees paid + VRF fees paid + covered gas) × 100. This measures net return on spin spend, including recycled spending, not on ETH deposited into a wallet. Zero-cost records do not receive a percentage. Partial estimates carry the same partial qualification into their return; delivery intervals propagate both endpoints, not a guessed midpoint. Where transaction gas is unmeasured, the reference result and return exclude that cost and are labelled before unmeasured gas.

Automatic CryptoPunk winners. Only confirmed main-pool NFT economic settlements enter the winner directory (keep, keep-and-relist, depositor backing reclaim delivering the NFT, or timeout NFT finalization), regardless of backing or present wallet ownership. ETH/FWA exits do not receive an NFT floor mark. A persistent Punk-specific event index resumes from its saved block and exposes already confirmed winners while older coverage is still being recovered. A wallet appears once in the general ranking and once in the winner directory, with every kept Punk grouped in its card. The general overview shows up to five highest usable Spins PnL estimates; Punk winners receive no extra ranking slot. Under Standard estimate, kept Punk backing is removed from the total NFT mark and replaced by the number of kept Punks multiplied by the current native collection floor. Floor and backing are never added as two prizes. This applies to all confirmed kept Punks, not only those backed at 1 ETH. The backing at allocation remains separate information. Floor-valued awards are estimates, not realized sales. The native collection floor is shared and cached; a failed or invalid refresh retains the last valid quote and its date. Profile, ranking and winner card all apply the selected basis and gas. The simulator’s hypothetical mark never enters these results.

The default hourly chart, timeframe tiles and top-spinners ranking use the same successful requests by request time in the rolling interval ending at the activity snapshot. Chart intervals adapt to the selected window: 1 minute for 15m, 2 minutes for 30m, 5 minutes for 1h, 30 minutes for 6h and 1 hour for 24h. Intervals are anchored at the window’s start, which need not be a clock hour. The average is successful spins divided by window hours, rounded up; it is unavailable for incomplete coverage. Calendar history is a separate opt-in view from midnight to midnight UTC, so its daily total differs from the rolling 24-hour total. Its average excludes the current partial hour and uncovered hours, and is also rounded up. The ranking remains on the selected rolling timeframe while calendar history is open. Historical results reflect their stored source snapshot; unresolved requests can become fulfilled later. Ranked ETH spending sums acquisition fees, excluding VRF and gas.

With Recorded backing selected, kept NFTs including Punks use the exact allocation backing. Historical oracle uses the last eligible collection update before settlement, subject to the seven-day observation-age limit and source coverage. Current collection floors applies the available floor to each kept NFT in that collection. Neither reference proves a sale price. ETH and FWA payout choices always use their recorded cash/token receipts rather than also receiving an NFT mark.

The wallet’s biggest-wins list ranks settled payout contributions using ETH received, current FWA marks, or the selected NFT basis. It does not allocate aggregate gas, VRF or rewards to individual wins; those appear separately. An individual win with an unknown mark or unresolved delivery does not receive a numeric payout contribution; it is not treated as a zero-value prize. The wallet can still retain a supported partial estimate. Mean PnL per wallet, mean per spin and the result of the largest spinners are distinct statistics. None is inferred from the activity ranking.

Reference PnL marks FWA settlement proceeds and final purchaser rewards at the latest available FWA/ETH quote; it does not attempt to reconstruct later wallet trades. Holdings displayed separately are not added to PnL. Finalized closed-epoch rewards with verified reward-unit and pot coverage are counted once, including claimed epochs. Closed epochs awaiting finalization or complete source coverage are not yet included. Current-epoch provisional rewards are excluded. Actual economic PnL remains different from this protocol reference.

Cumulative PnL & estimate limits

Definition
The sum of the usable Spins PnL and Deposits PnL displayed in the wallet.
Formula
Estimated cumulative PnL = estimated spins result + estimated deposits result.
Assumptions
The latest available components can have different timestamps or reference blocks. A partial component makes the total partial.
Source
The same underlying component values used in the profile, before display rounding.
How the total and existing ranges work

The total is derived directly from the two component numbers; it does not wait for matching blocks or a separate cumulative recovery. Gas and reward values are already included in the components and are not applied again. Zero and negative results are valid. Missing, null and non-finite values are not zero.

Existing component ranges propagate by adding their endpoints: [a, b] + [c, d] = [a + c, b + d]. A point is added to both endpoints. No midpoint or new uncertainty margin is invented. Incomplete and unvalued-outcome qualifications carry into the cumulative result.

For an identified terminal NFT delivery claim, the full-recovery estimate P assumes recovery at its selected mark M. The existing delivery scenario runs from P − sum(M) to P. A kept spinner NFT is already included in P, so its claim is not added twice. A depositor’s original and returned NFT normally cancel; failure to recover the returned NFT lowers that result by M. This is a conditional delivery scenario, not a confidence interval or a guaranteed bound on final profit. Unmeasured future claim or settlement gas can reduce the result further.

An allocated outcome without a final choice can leave a known subtotal while the remaining outcome is explicitly unvalued. Recorded backing describes its exposure and is not substituted for unknown proceeds. Missing claim marks also remain disclosed. Partial estimates can be shown without declaring them complete; pending onchain actions are distinguished from outcomes that the tracker has not yet reconstructed.

The latest usable component survives incomplete refreshes, timeouts and rate limits. If a component is genuinely absent, a previous usable cumulative estimate can remain with its original date; otherwise no total is invented. The profile’s Updated time refers to the oldest dated component currently combined, not the time of a refresh attempt. Component blocks, timestamps and saved valuation sources appear in Calculation details.

What the percentages mean

Spinner return on spend = displayed net Spins PnL ÷ (acquisition fees paid + VRF paid + covered normalized gas) × 100. The costs belong to that component’s snapshot. Recycled spending remains part of the denominator. This is not return on wallet funding, and there is no percentage for zero spend. Existing ranges propagate into percentages; missing gas remains excluded and disclosed.

The depositor wallet table currently shows ETH PnL rather than a depositor wallet ROI percentage. The Depositors EV percentage elsewhere is a different, forward-looking all-cashout fee-coverage scenario with expected backing consumed as its denominator. Spinner EV is expected payout divided by modeled all-in spin cost. Neither should be read as a wallet’s realized return or an APY.

Rankings sort the current reference result; an existing interval uses its lower endpoint. Profitable and Negative filters require the whole interval to have that sign. Changing valuation or gas settings can change the displayed result and order. All of these calculations concern the main pool only.

Does an incomplete depositor PnL mean an error?

A numeric PnL is a usable estimate, not proof of an exact economic result. Its arithmetic can be correct under the selected assumptions while NFT reference values differ from actual purchase costs or sale proceeds.

Unresolved outcomes or NFT claims indicate an input or delivery exposure that needs clarification, not automatically a calculation error. One wallet can have several unresolved outcomes. The stricter depositor ranking may lack a complete result while the profile already shows a supported partial estimate or a retained snapshot. A count of unreconciled wallets is therefore not a count of incorrect PnLs or empty profiles.

Observed snapshot — 9 October 2026, 15:03 UTC (17:03 in Italy): 12 of 371 depositor wallets, or 3.23% — less than 3.3%, did not have a fully reconciled result under the stricter ranking checks because of 16 unresolved NFT outcomes or delivery claims. Some profiles could already show usable estimates. This is a dated snapshot count, not an average, a live error rate or evidence of 12 incorrect calculations. The denominator is depositor wallets, not all tracker wallets. Six additional depositors had numeric PnL without measured gas; that separate limitation is not included in the 3.23% figure. These observations do not certify every other estimate as economically exact.

Unmeasured gas is a separate limitation. Where no usable gas measurement exists, the result is shown before that cost; this does not mean the transaction was free. Holding everything else constant, adding an omitted positive cost lowers PnL. Measured units priced at the selected gwei are still a normalized estimate.

An older retained snapshot is not inherently wrong, but later activity may change the result. Check the displayed update time and coverage. Counts of affected wallets describe a particular snapshot and settings, not a permanent error rate; overlapping limitations must not be counted twice. None of these categories establishes a guaranteed percentage error.

How much can an estimate differ?

There is no guaranteed universal maximum percentage error for estimated PnL. Close to break-even, a small difference in ETH can create a large relative percentage difference or reverse the sign. For example, a 0.1 ETH difference around a 0.05 ETH result is material even if the wallet’s total activity is much larger.

Complete history and precise valuation are different questions. Even with every event indexed, gas may be normalized, NFT acquisition cost may be unknown and NFT reference prices may differ from a realizable sale. A collection floor estimates a prize’s value; it is not a completed sale or a guaranteed executable price for that NFT.

Main uncertainty sources include missing or delayed source coverage, outcomes not yet linked to their settlement, NFT delivery claims, unknown NFT purchase cost, the selected NFT reference, FWA reward valuation and unmeasured or modeled gas. Latest NFT/FWA quotes can also differ in observation time from the accounting component. These limitations do not imply a fixed 5% discount, a maximum error band or a guaranteed direction of error.

03 / Expected value & Punks

Definition
Expected payout coverage under the displayed main pool assumptions.
Formula
Spinner coverage = expected payout ÷ modeled all-in spin cost. Depositor coverage = net distributable proceeds ÷ expected backing consumed.
Assumptions
100% is expected break-even. Fixed inventory, execution loss and chosen gas are scenarios; they do not guarantee an outcome.
Source
Main pool aggregate state, indexed inventory, Punk floor and executed Lister reductions.
Accounting rules & limitations

Selection probability is listing weight / total active weight. The integer weight is floor(10³⁶ / backing in wei), so it is inverse to backing. Spin price follows weighted expected backing plus the current surcharge; VRF and gas are additional. EV recomputes the spin fee from the same pool aggregate snapshot as its odds, with VRF and request gas both normalized to the selected gwei. The separate latest-quote comparison uses the latest official VRF quote and excludes unknown transaction gas.

Full option EV uses the best modeled value of keeping an NFT, taking ETH, or taking FWA for each possible outcome. The headline spinner percentage is gross expected payout divided by spin fee + VRF + modeled request gas. 100% is break-even; subtract 100 percentage points for net EV (91.74% expected return means −8.26% net). Values are computed from the current scenario, not fixed targets. The “always take FWA” break-even price multiplier is modeled all-in spin cost divided by expected FWA value at entry, after conversion loss. It is an expected average; individual outcomes differ and no return is guaranteed. The budget simulator uses integer-wei division for the number of affordable spins, leaves any remainder unspent, does not reinvest payouts, and freezes its sampled outcomes and valuations for the four-second reveal. Draws are independent with replacement from the observed inventory; the simulated pool and probabilities stay fixed. If inventory coverage is incomplete, sampling is normalized to the observed listings and can differ from full-pool EV. The default best-choice scenario uses FWA-reported indicative collection floors, including the native Punk floor, with 1% FWA conversion loss and unchanged FWA price; the simulator can vary these assumptions. Headline spinner EV and the FWA break-even scenario exclude purchaser token rewards and resale costs. Additional settlement or claim gas is excluded by default; the simulator adds any extra gas units entered by the user. Wallet PnL separately includes verified final rewards and gas within its disclosed coverage. Incomplete inventory or missing NFT marks are labelled as a partial valuation. FWA execution costs are not silently treated as zero.

Chase pulls. The tiles show every CryptoPunk listing that is Active with positive selection weight and backed by exactly 1 ETH, regardless of depositor. Allocated, settled, staged and withdrawn listings are excluded. Count, images and combined probability use one retained inventory snapshot: the sum of the shown listing weights divided by the same total active weight. The contract total active weight is the denominator, not TVL; changes to any active inventory weight can change the displayed odds. A paused pool is labelled separately. Crown is selectable. The winner directory is independent and waits for the NFT-kept settlement; removal from Chase pulls is not proof of a kept win. A zero state requires complete inventory coverage, and failed refreshes keep the previous bundle with its timestamp.

Punks remain in the pool at actual backing, including 1 ETH positions. Their backing is not their collectible market value; the native Punk floor values the NFT option separately. The live EV uses the indexed pool, including executed backing reductions. FwaPunkLister reductions require a successful transaction; time passing does not lower backing automatically. The simulator reads the V2 Lister’s current step, interval and minimum. “One reduction” changes each matching managed position once; “Lister minimum” assumes each survives until its minimum. Both are conditional fixed-inventory scenarios, not forecasts. Unrelated Punks keep their backing. Every scenario recalculates inverse-backing weights, total weight, weighted backing, all listing probabilities and the spin fee; the normalized VRF estimate and chosen gas assumption are held constant. Projections pause if Lister positions and pool backings do not match. Non-atomic pool coverage remains labelled approximate. Executing Lister reductions also depends on crown protection, pending acquisitions and protocol state; these reduction constraints do not make the crown unselectable in a draw.

The depositor headline is an all-ETH-cashout fee coverage ratio: distributable acquisition fees plus any redistributed retained backing, divided by expected backing consumed. Its net margin is that ratio minus 100 percentage points. With a 5% surcharge and 1% owner fee, and retained backing routed to the protocol, coverage is 1.05 × 0.99 = 103.95%, or +3.95% net. This uses expected backing consumed, not total locked capital; it is neither APY nor a promised investment return. The before-gas baseline excludes depositor gas and token rewards. After-gas coverage = (distributable fees + redistributed retained backing − modeled replacement-deposit gas) ÷ expected backing consumed × 100. It keeps the same backing denominator, so after-gas net ETH = distributable fees + retained backing − backing consumed − gas. A fixed pool is assumed to replace one selected listing with one new deposit per draw. This replacement model does not multiply deposit gas by the expected spin waiting time. Entry gas uses a six-receipt median of 408,715 units from five BitMON and one Nakamigos staged deposits, normalized to 0.3 / 0.4 / 0.5 gwei. This small calibration does not cover every deposit path or ordinary active-state listing; approvals, later claims, withdrawals and future FWA rewards are excluded. The listing simulator uses a fixed-pool model, current NFT opportunity value, an explicit keep probability and per-listing fee share divided by selection probability, including the terminal draw.

Inventory refreshes must reconcile unique listing IDs, listing count, inverse-backing weights, total weight, weighted backing and total backing before replacing the cached snapshot. Failed checks retain the previous snapshot and timestamp. These checks do not make pagination atomic; equal-backing replacements can still be indistinguishable from aggregates, so individual odds and floor scenarios remain approximate. The EV breakdown separates the best cash option, CryptoPunk NFT uplift and other NFT uplift. Floors update independently of backing and can change expected return without a formula change. The official aggregate tier snapshot is used for tier probabilities.

04 / Gas, survival & scope

Definition
Normalized covered gas and historical selection exposure along the observed pool path.
Formula
Gas ETH = measured units × gwei × 10⁻⁹. Selection score along that path = 1 − ∏(1 − pₜ).
Assumptions
0.3–0.5 gwei is a sensitivity range, not a measured average. Past misses do not increase the next draw’s odds.
Source
Onchain receipts and ordered main pool structural events.
Accounting rules & limitations

Default normalized gas price: 0.3 gwei, selected by the dashboard owner. The 0.3–0.5 gwei buttons are a sensitivity range, not a measured weekly or monthly average. The overview shows how that range affects gross spinner return while holding the expected payout constant; depositor coverage is shown both before and after modeled replacement entry gas, using the same selected gwei. Wallet reference PnL uses measured role-classified direct-core gas units × chosen gwei × 10⁻⁹ ETH, including failed calls to those classified methods. Mixed or maintenance calls are tracked separately and not assigned to either role; approvals and routed transactions outside that direct-core coverage are excluded. The EV request-gas model uses 402,589 units: the median of five single-action requests in a six-transaction calibration sample; the sixth transaction contains five draws. It is not a protocol-wide average, and separate settlement or claim transactions are excluded. VRF is computed from the latest available parameters of the configured VRF service: floor(serviceGasEstimate × gasPriceWei × (10000 + marginBps) / 10000) + flatWei. Both costs use the same selected gas assumption. The service address is integration configuration, not automatically rediscovered: a protocol service migration requires an integration review. This scenario is not the executable live quote: congestion can materially lower live expected return. The latest official quote is shown separately, before transaction gas.

Gas belongs to its actual payer. Batched actions share one transaction receipt, and failed transactions require separate coverage. A sample is not a wallet’s measured history. When role gas is unavailable, the displayed result is before that unmeasured cost; a displayed gas deduction is limited to the disclosed coverage cutoff.

Sum of past selection odds Σpₜ and survival Π(1−pₜ) use the pool at each eligible processed draw. These describe the observed pool path, not an alternative evolving inventory. The sum is cumulative selection exposure, not the expected number of times one listing would be won: a listing leaves the pool at its first allocation. For example, two opportunities at 50% give a sum of 1 and a 75% chance of at least one selection along that path, not one guaranteed hit. Current odds × all past spins is not that history. Historical rows replay ordered V2 structural events, validate request weight anchors and winning ranges, and exclude known noncanonical records. The displayed mean wait 1/p assumes unchanged odds.

V2 previously split purchased tokens 10% to depositors, 10% to purchasers and 80% to burn. The staking & revenue section reconstructs ETH routing and purchased-token splits from their separate onchain configuration histories. These use different denominators. Routing, funding, reward eligibility and claims are separate stages. Historical rewards and burns use actual V2 events. The shared-token V1 receiver and V1 emission schedules are excluded from V2 accounting. The supply-burn panel is explicitly token-wide: initial supply minus current ERC-20 totalSupply plus tokens held at the dead address. Both components are read directly from the contract; an upstream aggregate burn total is never added to a dead-address balance. V2 buyback burn is a separate subset, not an extra amount to add. The displayed circulating-supply share staked uses total vault assets ÷ (1 billion FWA − token-wide burn). That supply includes staked, custodied and treasury tokens; it is not an independently certified free-float estimate. Queued exits remain included in total staked assets, and source reads can differ by block.

05 / Custom pools · activity only

Separate contracts, records, services and caches

Definition
Successful spins are individual acquisition requests: verified delivery in Standard pools, successful NFT allocation in Buyback pools. A Buyback choice may remain pending. Pending Standard delivery is not yet a successful spin.
Formula
Spins = distinct successful (chain, pool, request ID). Volume = sum of those requests’ actual acquisition fees in wei. Unique purchasers = distinct beneficiary wallets across all included pools. Active pools = pools with at least one included draw.
Assumptions
Activity is assigned to the original request timestamp, with later lifecycle updates applied to that same request. Selected windows end at the snapshot’s common covered timestamp, not the browser clock, including on pool detail pages. VRF and transaction gas are excluded from volume. Wallets are not people or proof of organic growth.
Source
Ethereum factory 0xf5a3a153164791ab579c3d9ba5dbecf7cdfd300c, from block 26,023,011; verified Standard and Buyback implementation events. Official FWA directory supplies identities and images.
Isolation from main pool economics

Custom pools are monitored exclusively for activity and volume. They are excluded from every PnL calculation, profitability ranking, return metric, EV, simulator and main pool aggregate in FWA Tracker. No spinner or creator PnL is calculated. Assigned NFT values, backing, floor values and creator proceeds are never used to reconstruct custom profits.

A wallet active in both products retains its main pool history and PnL. Only custom events are excluded; the wallet itself is not excluded. Profile links open the main pool result. Custom records use separate tables and cache keys; numeric listing or request IDs never enter the main pool ledger.

Lifecycle, Trending & coverage

Each AcquisitionRequested event creates one draw, even when a single transaction requests five. The purchaser event field is the beneficiary, which may differ from the payer. Standard NFTDeliveryCompleted is verified success; it may precede NFTAllocated in the same transaction, so event order never reverses a completed delivery. Retrying delivery updates that same draw. NFTDeliveryRefunded removes it from success and volume. Timeout, no-inventory and slippage refund credits are excluded; later refund withdrawals are not subtracted again.

Buyback NFTAllocated counts once even while the buyer’s choice is pending. NFTOutcomeResolved, BuybackOutcomeResolved and public finalization update its outcome without adding a draw. NFT reloads create new listing episodes, not new purchases. Reserve funding, backing changes, owner withdrawals and settlement receipts do not enter purchase volume. Settlement terms can change for future requests; this tracker does not infer them from documentation defaults.

Trending and All contain the same discovered pools and apply the same search, type and state filters. Trending orders them by unique purchaser wallets descending, then successful spins, then acquisition ETH volume. Pools with no activity in the selected interval remain visible at the end. Equal keys use the contract address for stable ordering. Comparisons use the immediately preceding interval of equal duration only when both intervals have complete coverage. When the previous value is zero and the current value is positive, the label is “New activity”; if both are zero, it is “No change · no activity”. All-time has no previous-period percentage.

Trending / All, search, type, state and sorting affect the directory list only. Headline totals and chart cover all discovered pools. A pool detail page explicitly scopes its metrics to that contract. No verified-collection filter is applied. Current quote, availability and reload reserve are latest getter observations with their own timestamp; inventory weights are reconstructed at the activity checkpoint. These can differ by block.

Factory discovery includes inactive and retired pools. Each pool’s registered implementation must match a supported, verified ABI; unknown implementations stay visible with unavailable activity. Backend cursors fetch incremental logs and paginate. Newly indexed event blocks are checked against canonical hashes. The initial history was reconciled against the official request records and independently checked at checkpoint anchors, not every historical header. A 12-block confirmation lag and a replay window protect recent history. A changed older anchor triggers isolated reindexing. Partial or failed coverage remains labelled, with the last available snapshot and timestamp retained. No missing amount is promoted to zero.

Standard inventory displays owner-assigned values, not ETH backing or market price. Buyback inventory backing and reload reserve are separate. Selection probability uses the current active listing weight divided by total active weight at the checkpoint; staged listings are not eligible. No main pool rewards, EV or PnL formula is inherited.

Staking & protocol revenue

Ethereum contract accounting · an independent scope

ETH routing and purchased-token allocation are different ratios. Current main routing is reconstructed from the verified FWAV2 constructor and every ConfigSet event (key 23: buyback basis points; key 61: payout destination). The ratio applies when payoutFees executes. Historical amounts use actual ProtocolFeesToBuyback and FeesPaidOut events, never today’s ratio applied retrospectively.

Definitions & formulas

Waiting to process: the reward router’s ETH balance, read together with vault and epoch state in two read-only Multicalls whose returned block numbers must match; mismatched observations are rejected. In the pinned ETH-mode router, processRewards forwards the entire balance into vault.fundRewards; receipt alone assigns no reward entitlement. In FWA mode, the router instead records swaps, caller incentives and token funding separately.

Eligible stake: totalEligibleShares when the vault reward epoch matches currentEpoch. Before the next lazy checkpoint, participatingPower is used only when currentEpoch equals stored epoch + 1; otherwise the closedParticipatingPower of the preceding epoch is reconstructed from complete EpochClosed history. Voting qualifies closing stake for the following epoch. New deposits do not enlarge current eligibility, and exits consume eligible shares first. The contract’s currentEpoch/currentEpochBounds getters, including scheduled duration changes, determine transitions; the browser clock never activates them.

Vault allocation: recognized ETH = vault balance − unpaid reward reserve − unforwarded buy-and-burn allocation. With active stake A and eligible stake E, burn allocation = floor(recognized × (A − E) / A); reward reserve increases by recognized minus that allocation. If A = 0, the entire amount goes to buy-and-burn. Thus 20% sent to the router does not guarantee 20% paid to stakers. The official interface withholds processing when no stake is eligible, but the ETH-mode contract does not impose that gate.

Distributed, unpaid and claimed: RewardsFunded.reserved is the allocation to eligible stake; ETHClaimed records payment. rewardReserve is the remaining liability, including conservative rounding. These overlap and must not be summed. An exact global claimable amount is not asserted: wallet pendingETH includes lazy accrual. ETH and FWA reward streams remain separate.

Buyback and burn: funding a buyback reserve is not a swap. Bought.ethSpent excludes the caller’s ETH incentive, while tokensBought includes its token allocations. FWAV2Buyback’s burnedTokens uses token.burn and reduces supply. The downstream FWABuyAndBurn instead sends acquired FWA to the dead address; it does not reduce ERC-20 totalSupply. Vault → buy-and-burn forwarding is an internal transfer, not another protocol revenue event.

Sources, coverage & reliability

Sources: Ethereum logs and atomic contract reads through the shared authenticated Routescan backend; verified Solidity 0.8.26 sources for FWAV2, FWAV2Buyback, FWAVotingVault and FWABuyAndBurn; official FWA deployment and ABIs for voting and its router. Solidity source verification was unavailable for the latter two; their deployed runtime versions are pinned and their relevant paths were inspected. A runtime, reward module or routing destination mismatch requires an integration update, not a fallback percentage.

Fee routing history starts at main V2 deployment. Displayed cash-flow coverage begins at staking deployment block 26,135,694; longer requested windows are explicitly partial. Periods end at the verified snapshot’s block timestamp, not the browser clock. Receipts from unclassified senders are listed as other funding, not automatically called protocol revenue or donations. Router balance less logged funding net of forwarding, swaps and caller incentives is separately disclosed as unattributed funding. The historical screenshot’s amount is not a data source.

Each cycle freezes one common contract-read block, incrementally indexes complete log pages to that block and reconciles integer wei against the vault/router cumulative counters before publication. Event identity includes chain, emitter, transaction and log index. Repeated full-page signatures and out-of-range events are rejected; duplicate individual events are idempotently upserted. Cursor checkpoints persist after those writes. Canonical hash checks detect reorganizations. A mismatch invalidates and rebuilds only the independent protocol revenue index, rather than assuming a maximum fork depth. Twelve confirmations precede publishing. Downstream buy-and-burn period totals come from emitted events; cumulative getter deltas are additionally reconciled from the first verified snapshot onward. Its older lifetime activity is not assumed to start at the staking deployment. Runtime identities are checked at least hourly while recovery is active.

Snapshots are persistent. A failed source retains the last verified values and their original timestamp; a detected invalidated block is withdrawn until replay. Shared leases, provider quotas, identical-query caching and Retry-After/backoff prevent per-visitor full scans. On demand updates are limited to one shared cycle per 64 blocks by default (configurable with the backend REVENUE_REFRESH_BLOCKS setting); the existing owner-connected main recovery job also advances this index while the page is closed. Partial backfills continue at their saved page and fixed target.

Legacy V2 depositor and purchaser FWA claim rights remain in the existing reward contract; changing future routing does not erase them. Protocol revenue accounting is separate from main wallet PnL, rankings, EV and simulators. Custom pools remain activity-only: no custom PnL, ROI or EV is computed or added to main economics, even if a separately identified protocol fee originated in a custom pool.

Official fee documentation ↗ · Buybacks ↗ · Legacy rewards ↗ · Official staking ↗

Source coverage

Dates and blocks describe the stored observations. A successful request does not prove complete history, and upstream components can be updated at different times.

Snapshots, recovery & feed completeness

Deposit account anchors, settlement history, pending ETH/FWA and credited reward balances are reconciled before publishing a verified deposit component. Historical settled plus allocated backing must match the account counter, returned principal must agree, and pending balances must cover active positions. Credited and pending amounts are not freely combined across reads.

Strict verified proofs remain separate from presentation estimates. Spinner overview rows, wallet rankings, Punk winner cards and profiles use the shared spin-estimate selector. It can retain all recorded costs and known receipts in a labelled partial result while prize marks or final reward components are unavailable. Depositor rankings use the stricter reference calculation and retained verified deposit snapshots where available; reconciled but unresolved allocations can remain separate exposure. Profile recovery may also expose a supported partial or delivery estimate. A newer unusable response cannot erase a usable previous component.

History pages and chain ranges have persistent checkpoints. Bounded recovery resumes from saved cursors and deduplicates events rather than starting from zero. Duplicate IDs, stalled cursors and source-count mismatches prevent a complete verification. Opening a profile prioritizes its shared recovery toward one fixed reference block; later cycles default to 128 blocks through the existing PROFILE_REFRESH_BLOCKS setting. Source budgets, concurrency, leases and cooldowns still apply. A retry time means eligibility, not proof that a job ran.

Chain requests share a durable provider quota, bounded concurrency, identical-request deduplication and cooldown handling that respects Retry-After. Explicit quota exhaustion pauses requests; a generic HTTP 429 does not identify daily versus per-second exhaustion. The owner-connected recovery job can continue bounded work while pages are closed. Custom pool records and economic data remain separate; only source transport capacity is shared.

Initial loading, updating, partial coverage, waiting for an onchain action and source errors have different meanings. Snapshot & coverage details and profile Calculation details disclose the stored accounting block, history and gas cutoffs. Source timestamps below are not interchangeable with the profile’s component timestamps.

The live feed keeps fulfilled main-pool requests within its displayed coverage, with pages of 12. Artwork does not determine event eligibility. Supported BitMON SVG animation can display, with a static preview for reduced motion. Missing media leaves the NFT label and transaction link available.

DatasetRetrieved / UTCUpstream as of / blockRefresh status