What a host earns
What a host earns
stado market readiness --provider vast and stado market readiness --provider stado --peer <name> report whether a host can earn at all. What it
did earn is the marketplace's own statement:
$ stado market earnings --provider vast --target gpu-host --since-days 7
gpu-host (Vast.ai machine 12345), USD gross as Vast states it:
2026-01-01 earned 4.80; cost 1.12; margin 3.68
2026-01-02 earnings not stated by Vast; cost unread: hour 2026-01-02T00:00:00Z was not measured (the beacon keeps one day)
The command finds the host's Vast.ai machine by its hostname (or
WC_VAST_MACHINE_ID), asks Vast for that machine's machine-earnings
(GET /users/me/machine-earnings, days since the Unix epoch, the record
vastai show earnings reads) and prints each day's GPU, storage, upload and
download income as Vast states it, gross of Vast's service fee. A day Vast
lists no row for is not stated, never zero. Every stated day is kept in the
fleet store under market/earnings/vast/<host>/<day>.json, replaced while
Vast restates a day that is still accruing, so the ledger outlives Vast's own
window. Beside each day is what the day of the host cost: the energy its
boards drew in all 24 hours, as its beacon measured them, at its USD
power_tariff (costs),
and the margin when both are known. A day with an unmeasured hour, a host
with no tariff, or a tariff in another currency without a declared
usd_rate prints cost unread: <cause>. The host's token payouts kept with
stado market payout record are added to the day they were paid (UTC):
<n> token payout(s) worth <usd> joins the day's income, and a payout with
no usable rate is printed as unpriced: <amount> <token> from <source>: <cause> and leaves that day without a margin, since its income is not known.
What outside callers were charged for the host's inference deployments through
stado inference gateway joins the day too, as inference sold <usd>: each
caller's kept hours of that day at the price declared for it
(inference). A caller whose hours carry tokens
and who has no declared price is printed among the unpriced and leaves the
day without a margin. --json prints stado.market-earnings.v1 with every
day's stated figures, gross, payouts, payouts_usd, payouts_unpriced,
inference_sold_usd, inference_unpriced, cost or cost_unread, and
margin. Refusals: a host the registry
does not hold, no Vast.ai key (Vast.ai cannot be asked what <host> earned: <cause>), no Vast.ai machine for the host (<host>'s Vast.ai machine cannot be named: <cause>), and Vast refusing the read (Vast.ai did not state <host>'s earnings: <cause>). --provider stado is refused: a peer fleet
states no income of its own, and what a host lent it is read with stado market status --provider stado --peer <peer>.
Stado Desktop's Earning screen shows the readiness answer as the CLI wrote
it, and when it has none it says which of three states it is in: Reading
while stado market readiness --provider vast --json runs, Readiness could
not be read with the command's own refusal when it refused, and Readiness
not read yet before the first refresh; a refusal is never shown as a screen
that was not refreshed. The Registry screen's operations run stado market earnings --provider vast and stado cost host for the host and window
entered and show each command's own table.
Source: this website