Rent computeby the second

GPUs, CPUs, disks and databases from whoever has them spare.
Escrow USDG, pay only for the seconds you use, and stop the moment
it stops being worth it — every unspent cent comes straight back.

RNODERentnode · RH Chain 4663

Token contract. Verify the address here before you trade it anywhere — this is the only one.

0x954f81c9bdce955619e8533bc5fdd9d0503cf8b4Blockscout ↗
LIVE · CHAIN 4663 · SETTLEMENT ONLY0xd172…2D9d

A lease in front of you: the command types itself out, then elapsed, spent, refundable and runway tick over per second against a consumption bar. The arithmetic is the contract's - same rate, same accrual, same runway.

Lease #0001 · demonstrationmetering
Elapsed00:00:00
Spent0.000000
Refundable14.400000
Runway04:00:00
0.0% of escrow consumedstop now → 14.400000 USDG returned
GPU UTIL86%
VRAM18.5GB
SM CLOCK2423MHz
TEMP60°C
POWER280W
1 SECONDBILLING GRANULARITY
0MINIMUM TERM · DEPOSIT · FEE
100%OF UNUSED ESCROW REFUNDED
6FUNCTIONS, NO OWNER
§01 — The mechanism

Four steps, and none of them need a middleman.

A marketplace like this normally needs an arbiter to settle “the box was down” arguments, and an arbiter is a person who can be captured. Instant closing removes the need for one: a provider who goes dark stops being paid within seconds of being noticed, so the worst outcome is too small to need a judge.

01List

A provider publishes a machine and an hourly price. No deposit, no application, no approval queue. The listing is a claim they make.

02Escrow

A renter funds however many hours they want. The USDG sits in the contract; nobody can move it but the metering.

03Meter

Payment accrues to the provider second by second. They may withdraw the earned part at any moment without ending the lease.

04Stop

Either side closes. Earned goes to the provider, the entire remainder returns to the renter, in one transaction.

§02 — The shelf

Watch it fill.

This is not a mock. The panel on the left reads listingCountoff the contract and shows whatever is there - including nothing, when nothing is there. The ledger on the right is a demonstration of how a provider's side accrues once the shelf is stocked.

Shelf · read from chainreading
Reading the contract…
Provider ledger · demonstrationaccruing
RTX 409024GB / eu-central
0.00100/sec
claimed →
EPYC 935432C / us-east
0.00042/sec
claimed →
NVMe pool8TB / ap-south
0.00013/sec
claimed →
Postgres 164vCPU / eu-west
0.00027/sec
claimed →
earnings withdraw without ending a leaseno deposit · no vetting
§03 — Supply

Put a machine on the shelf.

There is no deposit and no vetting, because a deposit only gates entry unless somebody can judge when to seize it - and nobody here can. Reputation is the lease history, which is public and cannot be edited.

KindGPU · CPU · Storage · Database - one enum, free-text spec
PriceUSDG per hour, 6 decimals. Metered per second from it
EndpointStored in the clear. Publish a hostname, never a key
RepriceBinds new leases only. A live lease keeps its rate
WithdrawAny second, without ending the lease
Cost to listOne transaction of gas. Nothing else
A listing, as storedstruct
struct Listing {
  address provider;      // msg.sender at list()
  Kind    kind;          // GPU | CPU | Storage | Database
  uint96  pricePerHour;  // USDG, 6 decimals
  bool    open;          // provider may close it
  string  spec;          // "RTX 4090 / 24GB / eu-central"
  string  endpoint;      // "ssh://box.example:22"
}
§04 — Lifecycle

From listing to zero balance.

Five moments. Two are transactions the provider sends, two the renter, and one is just the chain's clock. The invariant across all five: the contract's balance for a lease always equals funded minus claimed, and it ends at zero.

01list()Provider

Kind, spec, endpoint and USDG/hour go on-chain. One transaction of gas.

02rent()Renter

Escrows USDG. The rate is frozen at this moment; a later price change cannot touch it.

03tickBlock time

Every second the lease earns pricePerHour / 3600, capped at what was funded.

04claim()Provider

Withdraws earned-so-far. The lease keeps running.

05close()Either side

Earned to the provider, the rest to the renter, contract balance for this lease returns to zero.

§05 — Function set

Six functions.

The whole external surface. No owner-only functions exist because there is no owner. Fourteen tests cover it, including a 256-run fuzz over funding and timing that proves settlement always returns the contract to a zero balance.

FunctionArgumentsEffectCaller
listkind, pricePerHour, spec, endpointPuts a machine on the shelfanyone
updateListingid, pricePerHour, endpoint, openReprices or closes a listing; live leases unaffectedprovider
rentlistingId, amountEscrows USDG and starts the clockanyone
topUpleaseId, amountExtends the runway of a running leaseanyone
claimleaseIdPays the provider what has accruedprovider
closeleaseIdSettles both sides and ends the leaserenter or provider
§06 — Deployment

Nobody owns the clock.

The deployer's key was used once, to deploy, and has no standing afterwards. What is at this address is final - every guarantee on this page, and every bug.

StatusLIVE
NetworkROBINHOOD CHAIN / 4663
Quote assetUSDG · 6 DECIMALS
MeteringPER SECOND FROM BLOCK TIME
Admin keyNONE · NO PAUSE · NO UPGRADE
Settlement · always sums to the escrow14.400000 USDG
Earned → provider0.000000
Refunded → renter14.400000
0.000000+14.400000=14.400000
close() pays both sides in one transactioncontract balance after: 0.000000
§07 — The point

It settles money. It does not run machines.

Worth saying plainly, because most marketplaces bury it: this contract has no way to see the hardware. A listing is a claim its provider makes, not a fact anybody verified. Your protection is that leaving costs you nothing but the seconds spent.

NOWshipped

A settlement rail

Escrow, per-second metering, instant close. Live on RH Chain. The chain settles money; it does not see the machine.

NEXTplanned

Reputation from the ledger

Lease history is public and cannot be edited. A provider page that reads it - hours served, closes by renters, average tenure - with no new trust assumption.

GOALresearch

Receipts for work

A renter-signed attestation that a job completed, anchored on-chain. Still no arbiter: a receipt is evidence a provider can show, not a judgement.

§08 — Roadmap

What ships, in order.

R1 is live. Everything after it adds information around the rail without adding a party who can override it.

R1
The shelf opens
  • Listings, escrow, metering, close - shipped
  • Browser wallet, no login
  • Verified source on Blockscout
R2
Provider pages
  • Ledger-derived reputation
  • Endpoint health pings, off-chain, advisory only
  • Top-up from any address
R3
Receipts
  • Renter-signed completion receipts
  • Job manifests hashed into the lease
  • Provider portfolios built from receipts
R4
Compute you can prove
  • Verifiable execution for narrow workloads
  • Dispute bisection where a proof exists
  • The point at which the chain can see the machine
§09 — The design

Ours, end to end.

One contract, written for this, not forked. Solidity 0.8.28, OpenZeppelin's ReentrancyGuard and SafeERC20, Foundry for the tests, Next.js for the window onto it. The stack is short because the idea is short.

SOLIDITY→FOUNDRY→REENTRANCYGUARD→SAFEERC20→USDG→RH CHAIN 4663→NEXT.JS
Open the market →Contract on Blockscout ↗