Reader safe
Atomic requests transaction version 1 explicitly, so V1 traffic cannot break or disappear from the read path.
Solana Transaction V1
The transaction ceiling is now 4 KiB. Atomic inspects a real transaction, plans an exact byte budget before you build one, decodes the raw config mask, diffs legacy against v0 against v1, and tells a sponsor or a wallet exactly what it is agreeing to.
Flight recorder
Decoding the exact wire transaction...
Decoded format
Wire envelope
Resource envelope
Co-signing lens
Pump.fun lifecycle
No pump.fun events in this transaction. Atomic decodes create, trade, graduation, fee-collection, fee-distribution, and GitHub social-fee-claim events from Pump, PumpSwap, and PumpFees. This transaction did not invoke any of them.
Atomic requests transaction version 1 explicitly, so V1 traffic cannot break or disappear from the read path.
V1 caps live in transactionConfig. Atomic never pretends a Compute Budget instruction scan still binds them.
The gauge measures signed wire bytes, not an estimate. Transactions above the old MTU wall become immediately visible.
Bit layout
Every V1 transaction carries a 4-byte TransactionConfigMask right after the version byte and legacy header. Atomic reads those exact bits and the fixed-width values that follow, SIMD-0385, not an estimate.
Reading the config mask bits...
Decoded format
Legacy and V0 carry resource limits as Compute Budget instructions, not a config mask. There is no mask to decode on this transaction.
u32, little-endian
| Field | Bit(s) | Present | Width | Raw bytes | Value |
|---|
Priority fee (bits 0-1, 8 bytes), compute unit limit (bit 2, 4 bytes), loaded accounts data size (bit 3, 4 bytes), and requested heap size (bit 4, 4 bytes).
The priority fee bits must both be set or both cleared. Atomic flags a mask where only one is set as a partial, invalid encoding.
Bits 5-31 are reserved. Atomic calls out any transaction that sets one, since a future SIMD may assign it a meaning this decoder does not yet know.
Before you co-sign
A paymaster or co-signer reads this before it agrees to pay. It shows the exact fee and resource caps the transaction commits to, and whether its static account list holds a duplicate the v1 sanitizer would reject.
Reading the resource caps this sponsor would agree to...
Decoded format
What this sponsor is agreeing to
V1 sanitization rule
Co-signing lens
On V1, a Compute Budget instruction scan sees nothing. The real caps live in transactionConfig, and this view reads them from there.
SIMD-0385 makes a duplicate static account a sanitization failure. This view decodes the wire account list and flags one if present.
An unset V1 compute or data limit resolves to zero, not a legacy default. A sponsor relying on the old default would be wrong to assume otherwise.
Before you build
Compiles your instruction set with the same @solana/kit encoder three.ws ships to real callers and reports the exact wire size. Nothing here is signed, simulated, or broadcast.
Compiling the exact wire transaction...
V1
Resolved resource budget
V1 sanitization rule
Every byte count comes from compiling your instructions with @solana/kit and encoding the result, the same path a real sender would take.
Plan against the 1,232-byte legacy/v0 wall or the 4,096-byte V1 envelope, with the exact headroom or overage reported either way.
Set a µlamports-per-CU price and a compute unit limit; the planner multiplies them into the exact total lamports a V1 sender would commit to.
Same instructions, three envelopes
Compiles the same instruction set three ways and reports the byte-exact total for each, side by side.
Compiling legacy, v0, and v1...
| Metric | Legacy | V0 | V1 |
|---|---|---|---|
| Total bytes | |||
| Envelope ceiling | |||
| Headroom | |||
| Fits? |
One instruction set, compiled once per version with the identical @solana/kit pipeline, so the only variable is the envelope itself.
A tiny transaction can come out larger on V1 once the config mask and its fixed-width values are counted. The diff shows that honestly instead of assuming V1 always wins.
Legacy and V0 share the same 1,232-byte ceiling. The diff flags the first version, if any, that needs V1's room to fit at all.
Before the wallet signs
Connects your injected Solana wallet (no linking, no signature request) and reads its real Wallet Standard feature set to see whether it honestly advertises V1 transaction signing.
Reads wallet.features['solana:signTransaction'].supportedTransactionVersions. Never signs or sends anything.
Asking your wallet what it supports...
Connected wallet
Wallet Standard, verbatim
Only this tab needs a browser wallet. Every other tab works from a pasted signature or wire transaction.
This check calls the same findV1WalletStandardSigner function three.ws uses before it ever asks a wallet for a real V1 signature.
A wallet that does not list version 1 in its signTransaction feature gets reported as unsupported, even if it can technically parse the bytes.