Solana mainnet · Streamflow contracts decoded from raw bytes
Is it really locked? And until when?
“Team tokens are locked” is a sentence. Lockproof turns it into evidence: it reads the lock contract from mainnet, checks who can cancel it, confirms the escrow still holds the tokens, and draws exactly when every part unlocks.
Verify a lock by its address.
Paste a Streamflow contract address or link. Lockproof fetches the account, decodes every field from the raw bytes, then checks the four things that make a lock real: nobody can cancel it, nobody can redirect it, the escrow actually holds the tokens, and the end date is what was promised.
The unlock schedule, to the second.
Computed with the contract’s own rule: nothing before the cliff, the cliff amount at the cliff, then a fixed amount every period until the end. Hover the chart to read any date. Decoding a contract in 01 redraws it.
Next unlocks
Locked, against supply and the biggest holders.
A lock of 2% means little if one unlocked wallet holds 30%. This reads total supply and the largest token accounts, marks the contract’s escrow among them, and shows what is still locked next to what already moves freely.
Decode a contract in 01 first, then this panel compares it with the token’s holders.
Find the locks behind a wallet or token.
There is no public index of every lock, so Lockproof reads the address’s 25 most recent transactions, picks out calls to the Streamflow program, and decodes every contract they touched. Connect a wallet to search your own.
Put the unlock dates in your calendar.
Pick which moments matter and Lockproof writes a standard .ics file in your browser: the cliff, the end, and optional checkpoints when a share of the deposit becomes free. Each event links back to the contract on Solscan.
Events in the file
Four tumblers make a lock real.
- Nobody can cancel. If the sender can cancel, the “lock” is a promise they can take back at any moment.
- Nobody can redirect. If the sender can transfer the contract, the tokens can be sent to a new recipient before they unlock.
- The escrow holds the tokens. The contract’s escrow token account must hold at least what is still locked.
- The dates are fixed. No top-ups, no rate changes, no pauses: the schedule you read today is the schedule that runs.
Reading the specimen…
How Lockproof reads a contract.
- A
Fetch the raw account
getAccountInforeturns the contract’s bytes and its owner. Lockproof only decodes accounts owned by the Streamflow programstrmRqUC…g5m. - B
Decode the layout
Every field (amounts, timestamps, parties, permission flags) is read at its fixed offset, following the program’s published layout. Nothing comes from an indexer.
- C
Check the escrow
The escrow token account is read separately. If it holds less than the amount still locked, Lockproof says so in red.
- D
Compute the schedule
Unlocked amounts are computed with the same cliff and period rule the program uses, so the chart matches what a withdrawal would release.
Questions.
Which locks can Lockproof read?
Streamflow contracts on Solana mainnet, which covers both its token locks and its vesting streams. Other lockers use different layouts; pasting one of those shows which program owns the account instead of guessing.
What is the difference between a lock and vesting?
A lock releases everything at one moment (the cliff equals the deposit). Vesting releases a fixed amount every period after an optional cliff. Lockproof labels each contract by the same rule Streamflow’s own tools use.
Why can’t it list every lock for a token?
Listing all accounts of a program needs a heavy RPC call that public endpoints do not offer. The finder searches an address’s recent history instead, and you can always paste a contract address directly.
Is “cancelable by recipient” a risk?
Less so: the recipient cancelling ends the stream early and returns the unvested part to the sender. The risk to holders is the sender being able to cancel or transfer it.
Does Lockproof sign anything?
No. It is read-only. Connecting a wallet only shares your public key so the finder and the “you are the recipient” marks can use it.
How accurate are the dates?
They are the contract’s own unix timestamps, shown in your local time zone. The calendar file stores them in UTC so every calendar app places them correctly.