Track a transfer
Decode TransferSent from the source router receipt and retain its GUID. Poll GET /messages/{guid} until settlement.
Persist the source receipt
Filter logs by the configured router address before decoding. Save chain ID, source transaction hash, asset ID and GUID. A timeout after wallet submission is not proof of failure: look up that hash before asking the user to send again.
The runnable starter prints the GUID after source confirmation. The API reference documents base URLs, response envelopes, filters, null fields, pagination, rate limits and polling guidance.
Read API
| Endpoint | Purpose |
|---|---|
| GET /assets?creator=0x… | Cursor-paginated creator-scoped assets |
| GET /assets/{assetId} | Asset detail and registered tokens |
| GET /assets/{chainId}/{token}/{creator} | Exact origin identity; 404 before creation |
| GET /tokens/{chainId}/{address} | Original-token assets or local facade lookup |
| GET /transfers?assetId=0x… | Transfers and restores |
| GET /messages?assetId=0x… | Includes syncs and owner actions |
| GET /wallets/{address}/activity | Wallet-related messages |
| GET /chains | Deployment metadata; deployed=false is not live |
Lists return { items, page: { nextCursor, hasMore } }. Pass the cursor unchanged. Amounts are raw integer strings, and fees are source-chain native units.
Status
pending, delivered, failed and restored are derived from observed router events. Indexing can lag. restored links to restoreGuid; only that message's delivery confirms return of funds.
The API is a history index, not transaction authority. Read current asset configuration, approvals, balances and fees on-chain before sending. Distinguish API unavailability from a confirmed absence.
Confirm the user's outcome
For a plain transfer, destination TransferReceived and MessageDelivered confirm router credit. For compose, additionally track your application event. For enablement or remote owner actions, read the destination configuration and check rejection/stale-update events. For a restore, track the new return GUID until delivery. Never collapse these different outcomes into one generic success indicator.