Gas is 4% of revenue, and $0.01 of it was burned on lost races. Average $0.00 per won document. 1164 relay(s) carried no rates and are missing from the revenue; the --rewardUsd, --cxoPrice and --polPrice flags can fill them in.
Earnings over time
Period
Won
FFA
Reserved
CXO
Revenue
Gas (POL)
Gas (USD)
Net
Today
25
1
24
3.69
$0.55
2.2992
$0.02
$0.53
Yesterday
48
7
41
–
–
4.6250
–
–
Last 7 days
242
21
221
3.69
$0.55
22.8827
$0.02
$0.53
Last 30 days
971
61
910
3.69
$0.55
84.0601
$0.02
$0.53
Since 2026-08-13
1166
70
1096
3.69
$0.55
100.5434
$0.02
$0.53
Days are your local calendar days. The 7 and 30 day rows are
rolling windows, so they cover the same amount of history on any date. The last
row covers everything in the event log, which begins on 2026-08-13;
relaying that happened before the log existed is not counted anywhere in this
report.
Averages
Measure
Value
Basis
Net per day with relays
$0.01
37 day(s) had at least one win
Net per won document
$0.00
revenue minus the gas it took, including lost races
Current run rate
$0.08/day
last 7 days divided by 7, idle days included
Projected 30 days
$2.26
run rate held flat, not a forecast
Net earnings per day
Liveness
Measure
Value
Heartbeats recorded
97
Beats with no successful poll
0
Last heartbeat
2026-09-18T14:11:02.271Z (84 min ago)
Longest gap between heartbeats
33 min ending 2026-09-18T13:19:12.393Z
Wallet balance, last / lowest
990.0174 POL / 990.0174 POL
A gap much longer than the 60 s beat is downtime, measured
from the log itself. Beats with no successful poll mean the process was alive
but blind, which is the case a plain uptime check would miss.
How races were lost
Attribution failed on all 2 attempt(s), so this section has no data — it does not mean no races were lost. Last reason: bad response. A provider that rejects or throttles wide eth_getLogs queries is the usual cause.
Win rate by contention level
times_shown
Sent
Confirmed
Reverted
Win
Skipped as too contested
0 (reserved)
2
2
0
100%
0
1
2
0
2
0%
0
4
0
0
0
–
1
8
0
0
0
–
2
13
0
0
0
–
1
15
0
0
0
–
4
16
0
0
0
–
1
17
0
0
0
–
1
20
0
0
0
–
2
21
0
0
0
–
3
26
0
0
0
–
1
30
0
0
0
–
1
37
0
0
0
–
1
53
0
0
0
–
1
58
0
0
0
–
1
70
0
0
0
–
1
74
0
0
0
–
1
75
0
0
0
–
2
76
0
0
0
–
1
94
0
0
0
–
1
96
0
0
0
–
1
106
0
0
0
–
1
150
0
0
0
–
1
190
0
0
0
–
1
402
0
0
0
–
1
A bid breaks even at a win rate of roughly reverted-gas divided
by reward, which is under a few percent at normal gas prices. Any bucket above
that is worth contesting, so a non-zero skip count next to a viable win rate
means --ffaMaxShown is discarding money.
Discovery
Measure
Value
Polls completed
7144
Ticks dropped because a cycle overran
0 (0%)
Fetch duration p50 / p95
32 ms / 68 ms
Actual gap between polls p50 / p95
1001 ms / 1012 ms
Age of the freshest document when first seen, median
No Age header seen, so there is no shared HTTP cache to phase-lock against; the 1-minute window is applied inside the application. If Vary names the rewardRecipient query
parameter, the cache window belongs to this relayer alone and the request that
triggers revalidation is the one that gets origin-fresh data.
Daily outcomes
ConfirmedReverted (lost race)Win rate labelled on the busiest and latest day