Reserve now.
Settle later.

The customer sets aside a maximum in USDG. The merchant charges what the service actually cost, and the rest goes back to the customer.

Court bookingUSDG
Reserved20 USDG
Paid to merchant14 USDG
Back to customer6 USDG

Who can move the money

Customer
Deposits USDG and reserves a maximum for one merchant, with an expiry. Reserved funds can't be withdrawn until the hold settles.
Merchant
Captures up to the remaining maximum before expiry, in one charge or several. Releasing closes the hold and returns what's left.
After expiry
Captures stop. Anyone can release the remainder back to the customer, so funds never stay locked.

ONE REFERENCE SERVICE

A timed session with a clear rate.

Approve the provider and billing terms first. Cova reserves your selected budget, then settles from the confirmed onchain session time.

QUOTE›RESERVE›RUN›SETTLE
HOW BILLING WORKSUSDG · 6 decimals
Quoted rateUSDG / minute×confirmed time=final charge

The provider receives the agreed rate for elapsed session time. The budget is only the maximum you approve.

If you stop early, the remainder returns to your available Cova balance after settlement.

CHECKOUT

Start a compute session

ARB SEPOLIA
USDG
Maximum duration40 minutes
Available in Cova—

The onchain clock records session duration. It does not independently verify offchain work. Session start and settlement use a dedicated testnet relayer; customer signatures approve the exact quote.

Playground

Arbitrum Sepolia. Actions send real testnet transactions from your wallet.

Available-USDG
Reserved-USDG
Total-USDG

Reserve for a service

USDG

Reserve 20 for merchant, expires in 1h.

Customer-signed authorization

Sign a maximum charge for your merchant to submit. Funds become reserved only after submission confirms.

This vault uses direct authorizations. Signed authorizations require the version 2 deployment.

Your holds

0

No holds yet.

Authorize a service above.

One vault for bookings, rentals, and metered usage.

CovaVault on Arbitrum Sepolia. Four calls cover the whole lifecycle.

createHold(merchant, amount, expiresAt, referenceId)
capture(holdId, amount)
release(holdId)
releaseExpired(holdId)