Skip to content
Docs

Get started

Wallets and transactions

Which wallets connect, what signing in means and how a transaction settles.

Wallets that connect

The app lists every browser wallet that announces itself through Wallet Standard and can sign Solana messages and transactions. It connects to wallets only through the browser; a hardware key signs through the wallet it is paired with.

The wallet you used last reconnects by itself the next time you open the app, if the wallet allows it. Disconnect in the wallet menu forgets it.

Signing in

Transactions, routes, watches and alerts belong to a signed-in wallet. Signing in is one signed message, not a transaction. The message contains:

  • the app's address, so the signature is good only here;
  • your wallet's address;
  • the network's genesis hash and the Nod program's address;
  • a one-time nonce and an expiry five minutes out;
  • the sentence "This signature creates a session and does not authorize a transaction."

The app checks every line before it asks your wallet to sign. A signed-in session lasts 24 hours. Sign in appears in the wallet menu when there is no session; the dot beside your address fills when there is.

What happens when you press a button

  1. Build

    The app builds the exact instructions with a fresh finalized blockhash and a one-time intent memo.

  2. Check

    The chain simulates it. A refusal comes back as a sentence before any prompt.

  3. Sign

    Your wallet signs. A priority fee or Lighthouse checks the wallet adds are accepted.

  4. Send

    The API keeps the signed bytes and the worker sends exactly those.

  5. Finalized

    The receipt settles at finalized commitment; the index catches up within a cycle.

Every transaction the app sends. Nothing is signed that the chain has already refused in simulation.

Every transaction follows the same path:

  1. The app builds the exact instructions with a fresh finalized blockhash, and adds a one-time intent memo signed by your wallet. Two otherwise identical deposits stay two distinct transactions.
  2. The chain simulates it. If it would fail, the app tells you why and stops.
  3. The API stores the unsigned message and returns it; the app checks that not a byte changed, then your wallet signs.
  4. The API checks the signed message against the prepared one. Wallets may add a priority fee and Lighthouse assertions while signing; anything else changed is refused.
  5. The worker sends exactly those signed bytes and follows them to finalized commitment.

Receipts

StatusWhat it means
Waiting for your signaturePrepared; your wallet hasn't signed yet. It expires after 60 seconds unsigned.
Queued for the chainSigned and stored; the worker is sending it.
SentA node accepted it.
Confirmed, finalizingIt landed; the network hasn't finalized it yet.
FinalizedDone. The index shows the new state within one cycle, about 15 seconds.
FailedThe chain refused it. The app shows the reason.
Not seen on chain yetIts blockhash expired without the network showing it. It stays listed until the chain has a record.

While a transaction you signed for a fund is still settling, the app won't prepare another one for the same fund. Signed transactions stay in the settling list in the bar, across reloads, until they finalize or fail.