Skip to main content
A token’s trading status is a set of restrictions in force, each with an explicit start and end, plus the hours of the underlying market. Restrictions arrive as events; the effective status of a token is one read away.

The effective status

  • reason mixes two vocabularies: the restriction reason codes when a restriction decides the status, and the market’s own reasons otherwise. Branch on marketStatus first.
  • Never OPEN by default. When the market status cannot be read, the token is UNAVAILABLE with MARKET_STATUS_UNKNOWN.
  • SPECIAL_RESTRICTION is listed, not enforced. It appears in activeRestrictions (for example removals-only during an election window) but does not by itself make the token UNAVAILABLE. Read its reasonCode and act on it.
  • Asset-level view: GET /assets/{assetId}/status lists the ASSET and UNDERLYING_MARKET restrictions only, with no market status.
  • Filter your tokens by status: GET /tokens?status=UNAVAILABLE or status=OPEN&status=CLOSED filters on marketStatus. It is not the token object’s status (ACTIVE/RETIRED): status=ACTIVE answers 400.

Restrictions as events

Each restriction is one object with its own restrictionId and version, published on every token stream it applies to:
Apply restriction events like any other: deduplicate, keep the highest version per restrictionId, replace with data. A restriction is in force from the moment you hold a version without removedAt until you hold one with it.

What to do when one arrives

  1. On ca.restriction.added, stop trading the tokens in scope: the one named for TOKEN, every token of the asset for the other two. Confirm with GET /tokens/{tokenId}/status if you want the computed answer.
  2. On ca.restriction.updated, update what you show; nothing resumes.
  3. On ca.restriction.removed, resume, for that restriction. Another one may still be in force: read activeRestrictions, or keep your own set keyed by restrictionId.

Underlying market signals

For UNDERLYING_MARKET restrictions, Securitize’s events follow the listing exchange’s halt and resumption and can arrive with a short delay. They are best effort: halts and suspensions are published when known to Securitize, and short limit-up/limit-down pauses are not. Your obligation to stop trading alongside the exchange stays with you and your own market data; use these events for confirmation and audit, and marketStatus for the computed answer at any moment. Market-wide halts arrive as one UNDERLYING_MARKET restriction per asset you hold, all with the same reasonCode MARKET_WIDE_CIRCUIT_BREAKER, and are lifted together.