Skip to main content
An activation is final when the network has agreed it will not be reverted. On the Grid, finality is deterministic, not probabilistic. There is no confirmation count to wait through, and there is no reorg risk after the activation is final. This page explains what finality means, how Grid achieves it, and what that means for your client integration.

What finality means

Deterministic vs. probabilistic finality. On chains like Ethereum, finality is probabilistic: the longer you wait for confirmations, the lower (but nonzero) the chance of a reorg. You choose a confirmation count (6, 12, 32) based on your risk tolerance. On the Grid, finality is deterministic. Once an activation reaches the success status, the network has reached Byzantine consensus that it will never be reverted, regardless of how many blocks have passed since. You do not count blocks. You do not have reorg risk. Two settlement modes. the Grid offers two paths:
  1. Optimistic acknowledgement: under ~50 ms. The leader cluster receives and accepts your activation for immediate execution. This fits inside a normal HTTP round-trip, so an agent can submit a payment and continue in the same request.
  2. Deterministic finality: 400–800 ms. The activation has completed execution, replicated to follower clusters, passed Byzantine consensus, and is final.
Choose based on your use case. For a 402 payment challenge (submit payment, verify, serve content in one request), optimistic is enough. For settlement-grade guarantees where you need to be certain the payment will never revert, wait for deterministic finality.

How the Grid delivers it

Grid finality is built on two layers: GridBFT (consensus) and GridSMR (replication and execution).

GridBFT: Consensus

GridBFT is a leader-based Byzantine fault tolerance protocol. Blocks are proposed every 10 milliseconds. The protocol is pipelined: multiple blocks move through different stages of consensus simultaneously, so block proposal is not gated on the previous block’s full finalization. This keeps the pipeline full and latency low. Finality is global, not per-shard. An activation is final when the entire network reaches consensus, not when a single shard agrees.

GridSMR: Execution and replication

The leader cluster executes activations immediately (at execution speed, not consensus speed) and propagates resulting cross-shard continuations. It produces an optimistic execution view of the next block and sends that proposal to follower clusters. Followers independently reproduce and verify that execution. Only after verification does GridBFT finalize the replicated state. Why this matters: consensus is removed from the critical path of execution. The system reacts at execution speed and only commits what replicates correctly. Causal compression. When execution on one shard produces a continuation for another shard, the entire cross-shard causal chain finalizes in a single consensus round. Not one round per shard hop. A multi-hop workflow stays as fast as a single-shard one.

What this means for your client

Waiting for finality

There are two ways to wait for an activation:
  1. Poll for deterministic finality:
    gen client get-activation --activation-id <id>
    
    Repeat until status is success (final and applied) or failed (final and rejected). This is the settlement-grade path.
  2. Use optimistic acknowledgement: The activation submission RPC returns once the leader cluster has accepted the activation. Use this if your flow can tolerate the small risk that the activation might not finalize (rare but possible). Deterministic finality follows shortly after.

Status values

  • pending: the activation is in the leader’s queue or is executing.
  • success: the activation has executed successfully and is deterministically final.
  • failed: the activation has been rejected and is deterministically final. Check the error details to see why (e.g., balance too low, delegation exceeded).

No confirmation-count pattern

Do not wait N blocks. Do not count blocks. Poll for status: success or failed.

Next steps