Reference
Transaction lifecycle
Prepared, submitted, finalized: how an operation moves through Scrip.
Every operation moves through the same states, in the app and through the API.
The states
| State | What it means |
|---|---|
| Prepared | The API has built the transaction for your wallet. Nothing has been sent. |
| Submitted | Your wallet signed it and Scrip has stored the signed transaction and sent it to Solana. |
| Finalized | Solana finalized it, and Scrip checked that it succeeded with exactly the message you approved. |
| Failed | Solana finalized it with an error. Nothing moved except the network fee, and the reason is shown in words. |
The app follows a submitted transaction until Solana finalizes it, usually in under a minute.
Before anything is sent
Before storing a signed transaction, Scrip asks Solana to simulate its message. If Solana would reject it, for example because a balance doesn't cover the amount or a route's waiting period is still running, Scrip says why and sends nothing. The transaction stays a prepared plan, and you can try again at once.
One at a time per wallet
While a transaction from your wallet is still settling, Scrip waits for its outcome before preparing another one from the same wallet, and it doesn't prepare a replacement while the first might still land.
Retrying safely
Each operation carries an idempotency key. Repeating a request with the same key returns the same transaction instead of building a second one, which makes a retry after a dropped connection safe. The app manages keys for you.
On chain
Every submitted transaction has a Solana signature, and the app links each one to Solana Explorer. Scrip marks an operation finalized only after reading the finalized transaction back from Solana.