Ownership
The wallet that pays owns the project.
On x402-hosting, project ownership is not a database entry — it is cryptographic. The wallet that settles the first $0.01 upload payment becomes the project owner, and every later paid operation must settle from that same wallet or it is rejected with wallet_not_owner.
The first payment binds the owner
A first deployment costs $0.01 for the upload plus $0.20 per project-day. When that upload payment settles, the paying wallet is recorded as the owner, and the deployment writes x402-hosting.json to the project root with the owner address alongside the URL, project id, and expiry. There is no registration step that could disagree with the payment: whoever paid, owns.
Every mutation checks the wallet
Renew, redeploy, rollback, transfer, and delete are all paid mutations, and each one must settle from the owner wallet. A payment from any other wallet is rejected with wallet_not_owner, so possession of the project id or the repository is not enough to change anything. For an agent this is a safety property: it cannot accidentally mutate a project its wallet does not control.
$ npx x402-hosting@latest renew --days 30
Transfer moves ownership
Ownership is not a dead end. The transfer command moves a project to another wallet for $0.01, immediately and without taking the site offline. From that moment the new wallet is the only one that can pay for mutations. Selling a project or handing it to a client is a payment, not a migration.
No support ticket can override it
Because there are no accounts, there is no account recovery, no admin impersonation, and no support process that can reassign a project. The rule is mechanical: the owner wallet signs, or the operation fails. Losing the wallet means losing control of the project — the same trade-off as any cryptographic ownership, stated plainly. The documentation covers payer setup so the owner wallet is the one you intend.
The binding applies from the very first run. A first deployment must activate within thirty minutes of the upload payment, and the wallet that settled it is already the owner at that point. Renewal during the thirty-day grace window follows the same rule — only the owner wallet can republish the expired project at its URL. Free reads, by contrast, belong to everyone: anyone who knows the project can check its status without being the owner.
The model also composes cleanly with agents. An agent operating a project proves its authority with the wallet it already uses to pay, and an agent paying from the wrong wallet is stopped by wallet_not_owner before anything changes — a hard boundary enforced by settlement rather than by policy.
Key facts
- The first $0.01 upload payment binds the owner wallet
- Renew, redeploy, rollback, transfer, and delete must settle from it
- Other wallets are rejected with wallet_not_owner
- transfer --to moves ownership for $0.01 without downtime
- No account recovery or support override exists