chain.lifecycle.v1.LifecycleReadService
GetFlowById
GetFlowById retrieves one lifecycle flow by public flow id.
Request
curl --request POST \ \
--url 'https://api.testnet.polyester.com/chain.lifecycle.v1.LifecycleReadService/GetFlowById' \
--header 'Content-Type: application/json' \
--header 'Connect-Protocol-Version: 1' \
--data '{
"flowId": "flow_7YWHMfk9JZeLMgZauHuiSxhJ"
}'Responses
{
"flow": {
"fromLiveState": false,
"observedSteps": [
{
"activities": [
{
"amountE18": {
"hi": "1",
"lo": "1"
},
"approveCount": 1,
"currentConfirmations": 1,
"kind": "ACTIVITY_MINTED",
"ledgerTransferId": "9155001234568",
"lifecycleReason": "ZIPPER_VALIDATION_REJECTED",
"lifecycleSource": "SOURCE_RELAYER",
"occurredAtUnixMs": "1",
"rejectCount": 1,
"requiredApprovals": 1,
"requiredConfirmations": 1,
"requiredRejections": 1,
"sequence": 1,
"txChainId": 1,
"txRef": "0xabc123def4567890abc123def4567890abc123def4567890abc123def4567890",
"validatorCount": 1,
"zipperReason": {
"code": "DEPOSIT_WAIT_EXPIRED",
"message": "value",
"reasonId": "value"
}
}
],
"amountE18": {
"hi": "1",
"lo": "1"
},
"approveCount": 1,
"assetIds": {
"unifiedAssetId": 100,
"zippedAssetId": 100
},
"blockTimeMovingAverageMs": "1",
"currentConfirmations": 1,
"lifecycleReason": "ZIPPER_VALIDATION_REJECTED",
"lifecycleSource": "SOURCE_RELAYER",
"milestoneTxChainId": 1,
"milestoneTxRef": "0xabc123def4567890abc123def4567890abc123def4567890abc123def4567890",
"occurredAtUnixMs": "1",
"polyesterChainId": 1,
"rejectCount": 1,
"requestFee": {
"amountE18": {
"hi": "1",
"lo": "1"
},
"assetIds": {
"unifiedAssetId": 100,
"zippedAssetId": 100
},
"recipientAddress": "0x3333333333333333333333333333333333333333",
"status": "REQUEST_FEE_STATUS_LOCKED"
},
"requiredApprovals": 1,
"requiredConfirmations": 1,
"requiredRejections": 1,
"sequence": 1,
"step": "FLOW_STEP_SOURCE",
"validatorCount": 1,
"zipperReason": {
"code": "DEPOSIT_WAIT_EXPIRED",
"message": "value",
"reasonId": "value"
}
}
],
"summary": {
"amountE18": {
"hi": "1",
"lo": "1"
},
"assetIds": {
"unifiedAssetId": 100,
"zippedAssetId": 100
},
"currentProgress": {
"approveCount": 1,
"currentConfirmations": 1,
"currentStepExpectedDurationMs": "1",
"currentStepStartedAtUnixMs": "1",
"rejectCount": 1,
"requiredApprovals": 1,
"requiredConfirmations": 1,
"requiredRejections": 1,
"validatorCount": 1
},
"currentStep": "FLOW_STEP_SOURCE",
"currentStepSequence": 1,
"destinationAddress": "0x3333333333333333333333333333333333333333",
"destinationDomain": "DOMAIN_EXTERNAL_CHAIN",
"estimatedCompletionUnixMs": "1",
"flowId": "flow_7YWHMfk9JZeLMgZauHuiSxhJ",
"flowKind": "KIND_DEPOSIT",
"isDelayed": false,
"isOpen": false,
"isTerminal": false,
"lastActivityAtUnixMs": "1",
"latestLifecycleSource": "SOURCE_RELAYER",
"latestTxRef": "0xabc123def4567890abc123def4567890abc123def4567890abc123def4567890",
"lifecycleReason": "ZIPPER_VALIDATION_REJECTED",
"ownerAccountId": "7563897446546",
"polyesterChainId": 1,
"progressTimeline": [
{
"expectedDurationMs": "1",
"sequence": 1,
"status": "TIMELINE_STATUS_COMPLETED",
"step": "FLOW_STEP_SOURCE"
}
],
"requestFee": {
"amountE18": {
"hi": "1",
"lo": "1"
},
"assetIds": {
"unifiedAssetId": 100,
"zippedAssetId": 100
},
"recipientAddress": "0x3333333333333333333333333333333333333333",
"status": "REQUEST_FEE_STATUS_LOCKED"
},
"smartAccountAddress": "0x2222222222222222222222222222222222222222",
"sourceAddress": "0x4444444444444444444444444444444444444444",
"sourceDomain": "DOMAIN_EXTERNAL_CHAIN",
"sourceTxHash": "0xabc123def4567890abc123def4567890abc123def4567890abc123def4567890",
"startedAtUnixMs": "1",
"terminalAtUnixMs": "1",
"txOccurrenceIndex": "1",
"updatedAtUnixMs": "1",
"zipperReason": {
"code": "DEPOSIT_WAIT_EXPIRED",
"message": "value",
"reasonId": "value"
}
}
}
}chain.lifecycle.v1.GetFlowByIdRequestchain.lifecycle.v1.GetFlowResponsePublic, URL-safe lifecycle identifier returned by list/search responses.
Public account identifier for the root account or subaccount the flow belongs to.
Smart-account address for the account the flow belongs to. This is the stable address selector equivalent of `owner_account_id`; do not derive it from source or destination display addresses.
Public, URL-safe lifecycle identifier for display, URLs, and user search.
Product flow family.
Current user-facing progress step for this flow. This may be derived from the flow state before a matching factual observed step exists.
Zipped asset identifier for the chain-specific asset mapping row. This is the canonical id from `chain_zipped_assets`, which already represents the source-chain asset metadata plus its mapped zToken relationship when relevant.
Unified asset identifier for the uAsset used by funding or trading flows when relevant. This is the canonical Polyester asset identity used by FundingAccount, TradingGateway, Lending, and other downstream product domains.
Polyester Chain id associated with this flow when known.
Most significant 64 bits.
Least significant 64 bits.
Zipped asset identifier for the chain-specific asset mapping row. This is the canonical id from `chain_zipped_assets`, which already represents the source-chain asset metadata plus its mapped zToken relationship when relevant.
Unified asset identifier for the uAsset used by funding or trading flows when relevant. This is the canonical Polyester asset identity used by FundingAccount, TradingGateway, Lending, and other downstream product domains.
Most significant 64 bits.
Least significant 64 bits.
Fee recipient address when settled on chain.
Current state of the fee snapshot.
First observed source transaction hash for the flow when known.
Stable occurrence discriminator within a transaction. For source-chain deposits this is the batched leg index; for on-chain facts it is the log or equivalent per-tx occurrence index when available.
Source address to show for the overall flow. For internal transfers this is the source smart account address.
Destination address to show for the overall flow. For internal transfers this is the destination smart account address.
Latest transaction reference associated with the current visible state.
Product domain where the overall flow starts. Use with `destination_domain` for route labels such as Funding to Trading.
Product domain where the overall flow ends or currently settles. Do not derive route labels from per-step settlement activity.
Provenance of the latest meaningful lifecycle activity reflected in this summary. This is not necessarily the source of the entire flow.
Product-facing reason for failed, dropped, or otherwise notable flows.
Stable code assigned to the specific outcome.
Stable reason identifier suitable for localization lookup.
User-displayable English explanation of the outcome.
First observed business timestamp in milliseconds since epoch (UTC).
Last summary update timestamp in milliseconds since epoch (UTC).
Terminal timestamp in milliseconds since epoch (UTC), or zero while open.
Timestamp used for list ordering in milliseconds since epoch (UTC).
True when the flow is still progressing.
True when the flow reached a final state.
One-based sequence of `current_step` in `progress_timeline`.
Timestamp when the current visible step started, in milliseconds since epoch (UTC).
Expected duration for the current visible step in milliseconds.
Current source confirmation count when confirmations apply.
Required source confirmation count when confirmations apply.
Current approval count when validation applies.
Current rejection count when validation applies.
Validator set size when validation applies.
Approval count required for the current validation step.
Rejection count that would fail the current validation step.
One-based sequence within the expected timeline.
Visible lifecycle step.
Progress status for this timeline item.
Expected duration of this visible step in milliseconds, derived from recent observed timing data for the same flow type.
Estimated Unix completion timestamp in milliseconds. Zero while `is_delayed` is true, because no reliable estimate exists then.
True when an open flow has made no progress for well beyond the expected time of its current step. Show the flow as delayed instead of an ETA; it still completes normally once progress resumes. Always false for terminal flows.
One-based observed step sequence for display and audit.
Business-facing observed step.
Zipped asset identifier for the chain-specific asset mapping row. This is the canonical id from `chain_zipped_assets`, which already represents the source-chain asset metadata plus its mapped zToken relationship when relevant.
Unified asset identifier for the uAsset used by funding or trading flows when relevant. This is the canonical Polyester asset identity used by FundingAccount, TradingGateway, Lending, and other downstream product domains.
Polyester Chain id associated with this step when known.
Most significant 64 bits.
Least significant 64 bits.
Zipped asset identifier for the chain-specific asset mapping row. This is the canonical id from `chain_zipped_assets`, which already represents the source-chain asset metadata plus its mapped zToken relationship when relevant.
Unified asset identifier for the uAsset used by funding or trading flows when relevant. This is the canonical Polyester asset identity used by FundingAccount, TradingGateway, Lending, and other downstream product domains.
Most significant 64 bits.
Least significant 64 bits.
Fee recipient address when settled on chain.
Current state of the fee snapshot.
Transaction reference most relevant to this step.
Chain that holds `milestone_tx_ref`, as the `chain_id` of a chain returned by `GetDepositWithdrawConfig`, the same id space as `polyester_chain_id`. Link the transaction with that chain's `explorer_url`. Polyester Chain transactions name Polyester Chain, a deposit's source-chain transaction names its source chain, and a withdrawal's delivery transaction names its destination chain. Zero when `milestone_tx_ref` is empty or is not a chain transaction, such as a ledger settlement identifier.
Source that produced this visible step.
Product-facing reason for failed, dropped, or otherwise notable steps.
Stable code assigned to the specific outcome.
Stable reason identifier suitable for localization lookup.
User-displayable English explanation of the outcome.
Current source confirmation count when confirmations apply.
Required source confirmation count when confirmations apply.
Current approval count when validation applies.
Current rejection count when validation applies.
Validator set size when validation applies.
Approval count required for this validation step.
Rejection count that would fail this validation step.
Step occurrence timestamp in milliseconds since epoch (UTC).
Source-chain block time moving average in milliseconds when known.
Sequence of the underlying activity within the flow.
Transaction reference associated with this activity.
Chain that holds `tx_ref`, with the meaning of `FlowStepView.milestone_tx_chain_id`. Zero when `tx_ref` is empty or is not a chain transaction.
Activity occurrence timestamp in milliseconds since epoch (UTC).
Source that produced this activity.
Product-facing reason for notable activity states.
Stable code assigned to the specific outcome.
Stable reason identifier suitable for localization lookup.
User-displayable English explanation of the outcome.
Current source confirmation count when confirmations apply.
Required source confirmation count when confirmations apply.
Current approval count when validation applies.
Current rejection count when validation applies.
Validator set size when validation applies.
Activity kind for display grouping.
Approval count required for this activity.
Rejection count that would fail this activity.
Most significant 64 bits.
Least significant 64 bits.
Ledger transfer identifier for ledger-sourced settlement activities.
True when this detail was served from live in-memory state rather than historical terminal state.
| Key | HTTP status | Connect code | Error | When |
|---|---|---|---|---|
| unauthenticated | 401 | unauthenticated | Unauthenticated | Authentication required. |
| permission-denied | 403 | permission_denied | Permission Denied | Permission denied. |
| invalid-argument | 400 | invalid_argument | Invalid Argument | Invalid argument. |
| not-found | 404 | not_found | Not Found | Not found. |
| unavailable | 503 | unavailable | Unavailable | Service unavailable. |