diff --git a/plans/names-codes/2026-10-21-store-api.md b/plans/names-codes/2026-10-21-store-api.md index 0563b1c37c..3991f60df1 100644 --- a/plans/names-codes/2026-10-21-store-api.md +++ b/plans/names-codes/2026-10-21-store-api.md @@ -421,7 +421,7 @@ Both take the read limit. Errors: `404 not_found`, `429 rate_limited`. | `registering` | the register sent | `registered`, `taken` or `failed` | | `registered` | the name is the owner's, `confirmations` blocks after the receipt | final | | `taken` | someone registered the name first | paid: `queued` after `/name`, or `code_issued` after `/code`. A code order ends here, its code released | -| `failed` | the service's retries gave up, or the commitment lapsed | `queued` or `registered` after `/retry`; `queued` after `/name`. A code order keeps its code reserved for 30 days (section 4) | +| `failed` | the service's retries gave up once none of its register transactions can still be mined (each mined, or its nonce taken by another mined transaction), or the commitment lapsed | `queued` or `registered` after `/retry`; `queued` after `/name`. A code order keeps its code reserved for 30 days (section 4) | | `code_issued` | a paid taken order turned into a prepaid code | final | The page follows `taken` and `failed` too, since another browser can move them on. @@ -475,6 +475,7 @@ Finds a name code's orders. Used by Check your code (the name code's verdict and - Message: `simplex.domains name `. An `owner` in the body is ignored. - A body whose fields equal the registration's current ones is a repeat: it answers the view unchanged and counts no move. - Allowed only (manager's ruling, 2026-10-21): for a paid registration in `taken`; for any registration in `failed`; and for any registration in `committed` whose reveal was refused for its links (`invalid_link`, recorded by the reveal). Never from a `committed` registration that has had no such refusal. Else `bad_request`. The new name may be the same name with other links. +- From `failed`, `/name` first runs `/retry`'s check 1 (section 9) on the current name: a register that went through makes the order `registered`, and `/name` answers `409 registration_changed` with that view, so one payment never registers two names. - At most `max_order_moves` (3) successful moves per order over its life, counted on success; past that, `409 {"error": "move_limit", "registration": {…the current view}}`. The order stays as it is (`failed`, `taken`, or `committed` with its links refused); the page shows its state with a line to contact SimpleX support and the order's reference, and support settles it by hand, refunding a paid order. - The order checks run on the new fields: formats, `invalid_name`, existing live orders for the new commitment or this owner and the new hash, other than this registration (`409 order_exists`), the duration for the registration's `years`, `name_taken`, `name_check_unavailable`. - A paid order: the new name's chain price for the registration's `years` must be at most its `price`, else `409 {"error": "price_too_high", "price": }`. A cheaper name refunds nothing, which the page says before the buyer chooses.