# Integrating vault status

If you display Unvault collections, read vault state before you show a "buy" button or a balance:

- A locked original at home is **not for sale** and must not be listed; show where the active copy is.
- A mirror on the active chain is the tradable copy; treat it like any ERC-721 on that chain.
- An item `in_transit` or `stuck` should show a pending state with the tracking link.

## Reading state on-chain

Each vaultable collection exposes a view returning the active chain and lock status for a token ID; the exact interface is published with the contracts. Off-chain, `GET /vault/status/{chain}/{contract}/{tokenId}` returns the same information plus pending-move details.

## Tracking a move

A move record includes the origin transaction hash, the messaging-protocol message ID (with a LayerZero Scan link), and the destination transaction once delivered. Poll `GET /vault/moves/{id}` or the item's status endpoint until `state` leaves `in_transit`.

## Retries

When delivery fails on the destination, anyone can retry execution by paying destination gas; the tracking page exposes the retry. Unvault's support team can assist with moves that cannot be retried.
