ScripDocs

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.

Preparedthe API plans itSignedyour wallet approvesSubmittedsent to SolanaFinalizedsettled on chain
The app shows the same progression as a level filling under the button you pressed.

The states

StateWhat it means
PreparedThe API has built the transaction for your wallet. Nothing has been sent.
SubmittedYour wallet signed it and Scrip has stored the signed transaction and sent it to Solana.
FinalizedSolana finalized it, and Scrip checked that it succeeded with exactly the message you approved.
FailedSolana 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.