# 异常订单与资产恢复

因买家超时、网络重组或广播失败导致的未结订单如何安全取回资产。

> Source: bitcoinuniverseio/stampdex (private application source), settlement worker failure path, mempool accelerate and rebroadcast routes, collateral diagnosis. Applicable release continuous deployment, verify with GET /api/version. Last verified 2026-09-01. Chain bitcoin/mainnet.

> [!NOTE]
> **简体中文官方文档**：30分钟宽限期到期后，卖家可通过取回脚本单方面提取资产并释放资金。 核心交易规则为非托管模式，买卖双方按标准费率收取服务费，并于比特币主网进行原子结算。



import ProductShot from '../../../../components/screens/ProductShot.astro';

Every way a trade can stop has a named end state and a path out of it. None of them
involve your funds disappearing.

## Start here: read the state

Open the order page, or read it directly:

```bash
curl "https://stamp.api.bitcoinuniverse.io/api/v1/orders/ORDER_ID"
```

The `status` field is the answer. Match it against
[Order states](/docs-stampdex/zh-cn/reference/order-states/), then use the matching section
below.

## An order shows Failed

<ProductShot id="fixture-failed-order" />

**What it means.** Your payment confirmed, but the expected token balance did not
appear on the index within the grace period. Settlement refused to release funds
against a balance it could not verify.

**Where your money is.** In the listing's escrow address. Not spent, not swept. The
order page shows the address and the transaction ids, and any block explorer will show
you the balance sitting there.

**What resolves it.** An operator completes or returns the trade. This is a manual path
by design: there is no automatic refund worker, because releasing funds automatically
is exactly the thing the failed check was protecting against.

**What you do.** If a Failed order does not resolve, open a
[GitHub issue](https://github.com/bitcoinuniverseio/stampdex/issues) with the order id.
Do not send a second payment.

## The order is stuck in Awaiting transfer

Bitcoin confirmation time is set by the fee rate you chose and by demand. The order
page links the transaction; any explorer shows its confirmations.

If the transaction is genuinely stuck at a low fee rate, StampDEX can help it along:

- **Fee bump by child pays for parent.** Spends a change output at a higher rate to pull
  the parent transaction in.
- **Rebroadcast.** Puts the transaction back in front of nodes that dropped it.

Both are rate limited more tightly than ordinary reads, because both touch the network.

## A listing vanished from the book

Two different causes, and they are not the same thing.

| Message | Cause | What it means |
| --- | --- | --- |
| "seller collateral UTXO has been spent" | The output backing the listing was spent | The listing was genuinely invalid and was removed |
| "seller no longer holds ..." | The tokens moved | The listing was genuinely invalid and was removed |
| "Could not verify the seller collateral right now" | The index did not answer | The listing may be perfectly good. StampDEX blocked the fill rather than guessing |

The third is a refusal to act on missing information, not a verdict about the listing.
Wait a few minutes and try again.

If you are the seller and want to know precisely what is wrong with your own listing,
the diagnosis route reports the specific condition: a missing signed listing, a missing
fingerprint, missing execution addresses, a spent or missing anchor, an insufficient
token balance, or an unavailable collateral check.

## A settled trade was reorganised

StampDEX records where a trade settled and re-checks trades settled in the last 24
hours. A settlement transaction that has left the chain sends the order back to
awaiting confirmation, and the normal settlement pass drives it again.

Honest limits: the ecosystem registry records `reconcile` as unsupported for both
protocols and no local rollback worker in Universe, and the reorg path has unit tests
but no recorded end-to-end exercise. See
[Settlement lifecycle](/docs-stampdex/zh-cn/concepts/settlement-lifecycle/).

## A stamp purchase did not arrive

A stamp purchase has no StampDEX escrow. Either the transaction confirmed and the
dispense happened, or it did not confirm and nothing happened. Check the transaction in
an explorer. If it is stuck, use the fee bump or rebroadcast paths above.

## What never helps

- Sending the payment again. Repeating a payment confirmation with the same transaction
  id is safe and returns the recorded answer; sending a **new** payment to the same
  order is refused, and a second payment to a different address is simply lost value.
- Typing a recovery phrase into anything. StampDEX never asks for one, and no recovery
  path here requires one.
- Cancelling an order that already has a payment against it. Settlement owns it.

## Reporting

- Bugs and stuck orders:
  [GitHub issues](https://github.com/bitcoinuniverseio/stampdex/issues), with the order
  id.
- A suspected security problem: email `legal@bitcoinuniverse.io`, and do not open a
  public issue.

## Related

- [Where your funds are](/docs-stampdex/zh-cn/concepts/custody/)
- [Order states](/docs-stampdex/zh-cn/reference/order-states/)
- [Troubleshooting](/docs-stampdex/zh-cn/troubleshooting/)