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