Transaction statuses
The consensus contracts define 15 numeric status values. APIs can return the stored status or an effective status calculated from the current time, such as ReadyToFinalize after an appeal window expires.
| Code | Status | Meaning |
|---|---|---|
| 0 | Uninitialized | No transaction is initialized for this ID. |
| 1 | Pending | The transaction is queued and waiting for activation. |
| 2 | Proposing | A leader is assigned and must propose an execution receipt. |
| 3 | Committing | The committee is submitting encrypted vote commitments. |
| 4 | Revealing | Committee members are revealing their committed votes. |
| 5 | Accepted | The committee accepted the proposed receipt; the appeal window is open. |
| 6 | Undetermined | The round did not reach a result and no funded rotation remained; a leader appeal is possible. |
| 7 | Finalized | The appeal process is complete and finalization was recorded. |
| 8 | Canceled | The transaction was canceled before completing consensus. |
| 9 | AppealRevealing | A fresh validator-appeal committee is revealing votes. |
| 10 | AppealCommitting | A fresh validator-appeal committee is committing votes. |
| 11 | ReadyToFinalize | The effective appeal window elapsed and the transaction can be finalized. |
| 12 | ValidatorsTimeout | A validator majority reported that validation timed out; the appeal window is open. |
| 13 | LeaderTimeout | The leader reported an execution timeout; the appeal window is open. |
| 14 | LeaderRevealing | The leader must reveal execution data and keys before committee vote reveals. |
Status is not execution success
Accepted means the validator committee reached consensus on the receipt. The receipt itself can represent a successful return, a user error, a GenVM error, or a timeout. Inspect the receipt's execution result in addition to its consensus status.
Similarly, Finalized means the decided receipt is no longer appealable. It does not convert an error result into a successful contract call.
Stored and effective status
Some view functions accept a timestamp and derive the status that applies after a deadline. A transaction whose stored decision is Accepted, for example, can be reported as ReadyToFinalize after its appeal window elapses even before a finalization transaction updates storage to Finalized.
Use the numeric codes for program logic and display the names to users. See gen_getTransactionStatus.