Ownership

Cancel hosting by not renewing.

There is no cancel flow on x402-hosting, because none is needed. Hosting is prepaid, so it ends when the paid period ends — cancelling is simply not paying again. A thirty-day grace window after expiry gives you time to change your mind.

No dark-pattern cancel flow

Subscription services treat cancellation as a retention problem: hidden menu items, confirmation screens, offers to pause instead. That pattern exists because the default is that they keep charging. Here the default is the opposite. Nothing renews automatically, no card is stored, and the quiet path — doing nothing — is the cancel path. The absence of a cancel button is the honest version of one.

What happens at expiry

Each project has a prepaid expiry recorded in x402-hosting.json and visible with the free status command. When that moment passes, the project goes offline. You are not billed, notified of a charge, or rolled onto a metered plan, because none of those exist on the pricing page.

None of this requires vigilance. The expiry date is recorded in x402-hosting.json the day the project is created, and the free status --json read reports the same timestamp whenever you check. An agent can poll it on a schedule for nothing and only act — renew or let go — when the date actually approaches.

This is what prepaid buys beyond the price itself: the end of the relationship is scheduled at the start of it. Both sides know on day one when hosting stops, and continuing is always an act, never a default.

The 30-day grace window

activeexpiredgrace: 30 daysdeletedRenew while active to extend expiry; renew in grace to republish at the same URL.
Prepaid projects end by expiring, and a 30-day grace window keeps recovery simple.

Expiry is not deletion. For thirty days after the prepaid period ends, the project sits in a grace window: the URL is offline, but a renewal still works and republishes the same deployment at the same URL. Only after the grace window is the project removed, and starting over then means a new URL. So an accidental lapse costs at most a renewal, not a migration.

If you want it gone now

Not renewing ends hosting eventually; deleting ends it immediately. Explicit deletion costs $0.01, must settle from the owner wallet, and removes the project rather than waiting out the clock:

$ npx x402-hosting@latest delete --yes

The delete command reference covers the details. For most projects, letting the period lapse is enough.

The distinction matters for what happens to the URL. A lapsed project keeps its URL through the grace window, so a late renewal restores the exact address people already have. A deleted project is gone on purpose and immediately. Choose lapse when you are unsure; choose delete when you are not.

Key facts

  • Cancelling means not renewing; there is no cancel flow
  • Nothing renews automatically and no card is stored
  • At expiry the project goes offline and enters a 30-day grace window
  • Renewing during grace republishes at the same URL
  • Immediate deletion is $0.01 with delete --yes

Related guides