Skip to main content

List Token Transactions

Retrieves a paginated list of blockchain transactions associated with a specific token. This is the primary mechanism partners use to observe asynchronous state changes — most admin token endpoints (create, list, delist, passive, burn, public transfer, rent, update, open-to-otc, document add) return HTTP 200 immediately while a token_transaction row is enqueued for the wallet pipeline. Polling this endpoint (or Get Token Transaction By ID) is how you tell whether the on-chain operation has settled.

For the user-visible side-effects of confirmed transactions, see Token History By ID — once the wallet cron flips a transaction to Done, the corresponding token_histories row is written and the user overlay starts surfacing the new state.

Request

POST /v2/admin/tokens/{token_id}/transactions/search

Parameters

NameTypeInDescription
token_idstringpathRequired. The ID of the token to search transactions for.
pagenumberbodyOptional. Page number for pagination (default: 1).
per_pagenumberbodyOptional. Number of items per page (default: 20).

Headers

NameDescription
AuthorizationRequired. Bearer token for authentication.
Content-TypeRequired. Must be application/json.

Example

curl --request POST \
--url '\{\{baseUrl\}\}/v2/admin/tokens/67d8774e903bfcbe7eb5d93e/transactions/search' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \
--header 'Content-Type: application/json' \
--data '{
"page": 1,
"per_page": 20
}'

Response

{
"data": [
{
"id": "67d8774f903bfcbe7eb5d941",
"node_id": "67d6c447f47ff3adafda700d",
"user_id": "665b372f3a72d7d0791596ba",
"token_id": "67d8774e903bfcbe7eb5d93e",
"external_id": "wallet-req-9a82",
"type": 1,
"status": 3,
"environment": 0,
"hash": "0x998a217061da05cf1bf1998470613a488b10908f0964e76a123c4063f91d77c4",
"error": null,
"message": null,
"data": null,
"is_api": true,
"created_at": "2025-03-17T19:26:07.042Z",
"updated_at": "2025-03-17T19:26:42.180Z"
}
],
"total": 1,
"page": 1,
"per_page": 20
}

Response Fields

FieldTypeDescription
idstringTransaction ObjectID.
node_idstringNode the transaction was issued under.
user_idstringSupervisor (or system user) that triggered the transaction.
token_idstringTarget token.
external_idstringWallet API request ID — correlates with the wallet service's own logs.
typeintegerTransaction kind (see enum below).
statusintegerLifecycle status (see enum below).
environmentinteger0 = default, 1 = otc, 2 = secondary_market.
hashstring | nullOn-chain transaction hash. Populated once the wallet sends the transaction.
errorstring | nullError message — populated when status = Error.
messagestring | nullInformational message attached by the consumer.
dataobject | nullType-specific structured payload (e.g. document_id for AddDocumentToToken).
is_apibooleantrue when the request originated from the integration API (vs. internal tooling).
created_atstringISO 8601 creation timestamp.
updated_atstringISO 8601 last-update timestamp (status flips bump this).

Status Codes

Status CodeDescription
200Success.
400Bad Request - Invalid parameters.
401Unauthorized - Invalid or missing authentication token.
404Not Found - Token ID does not exist.
500Internal Server Error.

type Enum

token_transactions covers all blockchain operations the integration enqueues against a token. Not every type is producible through the public integration API — deploy-related types are emitted by internal infrastructure code but the wallet pipeline writes them onto the same collection.

Type IDNameProducerDescription
1CreateTokenizationCreate TokenDeploying the token contract for a newly-created token.
2TokenListingList TokenListing the token for primary-market sale.
3TokenRentRent TokenEnabling rental income distribution.
4UpdateTokenSupplyInternal supply re-sync flowAdjusting the token's on-chain supply ceiling.
5UpdateTokenUpdate Token, Update Token MetricOn-chain edit of total_value / supply / purchase bounds while status = listed.
6DelistTokenDelist TokenRemoving the token from the listing.
7PassiveTokenPassive TokenPutting the token into a passive (read-only) state.
8PublicTransferTokenPublic TransferEnabling/disabling holder-to-holder transfers.
9ChangeTokenLaunchpadAddressInternal launchpad migrationMigrating the token to a new launchpad contract.
10BurnTokenBurn Token, user burnBurning supply from a holder.
11OpenToSecondaryMarketOpen to Secondary MarketTracked in secondary_market_transactions, not token_transactions. Listed here for completeness — the same Type constant is shared.
12OpenToOtcOpen to OTCOpening the token for OTC trading.
13AcceptOtcOfferAdmin OTC accept-dealAccepting an OTC counter-offer (tracked separately in OTC transactions for some flows).
14CancelOtcOfferAdmin / user OTC cancel-dealCancelling an OTC deal.
15UpdateRulesOnSecondaryMarketSecondary-market rule updatePushing updated OTC / secondary-market rules to the contract.
16AddDocumentToTokenUpdate Token (document add on listed tokens)Anchoring a document hash on-chain. data.document_id carries the document reference.
17DeployTokenImplWallet infraDeploying the token implementation contract.
18DeployMCImplWallet infraDeploying the master copy implementation.
19DeployTREXAuthorityWallet infraDeploying the TREX claim authority.
20TREXAddAndUseVersionWallet infraBumping the active TREX version on the network.
21DeployMCProxyWallet infraDeploying the master copy proxy.
22DeployTokenProxyWallet infraDeploying the token proxy.
Earlier docs were incomplete

Previous revisions of this page listed only types 1-11. Types 12-22 were already in production (the wallet service writes them to the same collection) but were silently ignored by partner parsers. Any switch / mapping table in your client should be a default fall-through to "unknown async event" rather than throwing on unrecognised values.

status Enum

Status IDNameMeaning
1StartedTransaction request has been queued. The wallet pipeline has not yet picked it up.
2InProgressTransaction is being prepared / signed by the wallet pipeline.
3DoneTransaction confirmed on-chain. The corresponding token_histories snapshot (where applicable) has been written and user reads will surface the new state.
4ErrorTransaction failed. The error field carries a human-readable cause.
5PendingReceiptTransaction has been broadcast on-chain (hash populated) but the receipt-confirmation cron is still waiting for inclusion. Treat as "not yet final"; the cron flips this to Done or Error.

Started, InProgress, and PendingReceipt all count as not yet completed (status.IsNotCompleted() on the server side). Only Done is success; only Error is terminal failure.

Polling Pattern

  1. Trigger a state-transition endpoint (e.g. POST /v2/admin/tokens/{id}/listing). Capture the calling time — there is no transaction ID returned synchronously.
  2. Call POST /v2/admin/tokens/{id}/transactions/search?page=1&per_page=10 and look for the most recent record of the expected type whose created_at post-dates step 1.
  3. Once you know the transaction ID, switch to Get Token Transaction By ID for cheaper single-record polling.
  4. Poll every 5-15 seconds until status reaches Done (success) or Error (with error populated).
  5. After Done, user-facing reads of the token will overlay from the new token_histories row.