Token Streaming Payment Explainer
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
Token Streaming Payment Explainer takes a token streaming contract address (e.g., Sablier, Superfluid, LlamaPay) and provides a complete, plain‑language breakdown of the stream’s current state. It reads the contract’s state via public view functions—sender, recipient, token, startTime, endTime, cliffDuration, amountPerSecond, totalAmount, streamedAmount, withdrawnAmount, cancelled, and isActive. It fetches the current block timestamp and computes the elapsed time, remaining time, streamed amount, and the amount currently withdrawable (streamed - withdrawn). It also retrieves the token’s symbol and decimals for human‑readable amounts. Historical streaming events (StreamCreated, StreamWithdrawn, StreamCancelled) are fetched using chunked, backoff‑aware log scanning to provide context on past withdrawals and cancellations. The output includes the sender and recipient addresses, token name, total stream value, stream rate (amount per second), amount already streamed, amount already withdrawn, currently withdrawable amount, start and end dates, remaining time, a visual progress bar, and a plain‑language explanation of the stream’s status and whether a withdrawal transaction will succeed.
HOW TO USE
Paste a token streaming contract address into the input field, select the network, and click "Explain stream". The tool connects to your wallet via the EVM bridge (read‑only; it never signs or sends anything) to fetch the contract’s state. It attempts multiple common streaming function signatures to maximize compatibility with different implementations (Sablier V1/V2, Superfluid, LlamaPay, and others). It fetches the current block timestamp for schedule calculations. Historical events are fetched in chunks (500 blocks per request) with automatic backoff and halving on failure to avoid public RPC caps. The AI layer generates a plain‑English summary of the stream state, including whether a withdrawal transaction would succeed. A visual progress bar shows how much of the stream has elapsed. You can click on the contract address or any address to view them on the block explorer.
CHUNKED LOG SCANNING WITH BACKOFF FOR STREAMING EVENTS
Streaming events (StreamCreated, StreamWithdrawn, StreamCancelled) are essential for confirming withdrawals and detecting cancellations. However, public RPCs aggressively cap eth_getLogs block ranges; a full‑range request over 10,000 blocks will fail with a "block range too large" error. This tool automatically chunks log requests into 500‑block slices to stay within safe limits for all major RPC providers. If a chunk fails (due to timeout or provider‑specific caps), it halves that chunk and retries recursively—ensuring that even with aggressive caps, the tool reliably retrieves all relevant streaming events. The tool also caches the current block timestamp at the start of the scan to maintain consistency across all calculations and event fetches, preventing off‑by‑one errors when the chain advances during the scan. This is essential for accurately computing the streamed amount and withdrawable balance.
WHAT IT CANNOT SEE
This tool cannot detect streaming payments that depend on off‑chain state (e.g., streams that are funded by an off‑chain service or based on external data feeds). It cannot predict future stream cancellations or modifications that might occur before the transaction is mined—the check reflects the current state, not the future. It cannot verify that the sender intended to interact with the stream—the tool reads what is on‑chain, not the user's intent. It cannot detect streaming payments in contracts that use non‑standard patterns (e.g., custom stream logic that is not exposed via view functions, or streams that use complex vesting calculations). It cannot guarantee that a withdrawal transaction will succeed even if tokens are withdrawable, as other conditions (e.g., paused state, balance, allowance) may also need to be met. It cannot detect if the stream has been cancelled unless the contract exposes a public isActive() or cancelled() view function. It cannot detect token transfer restrictions that may prevent withdrawal (e.g., frozen tokens). It cannot detect streams where the sender has insufficient balance to fulfill the remaining stream, as the contract may allow the stream to continue even if the sender’s balance is insufficient for future payments. It also cannot detect streams that are paused unless the contract exposes a public paused view function.
PLEASE NOTE
This tool works only for EVM‑compatible chains (Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche C‑chain, etc.) and relies on standard streaming function signatures (sender, recipient, token, startTime, endTime, amountPerSecond, totalAmount, streamedAmount, withdrawnAmount, cancelled, isActive). It does not support custom streaming logic that does not expose these functions as public view methods. All explanations are AI‑generated from data the app reads on‑chain—the AI synthesizes the stream state, rate, timeline, event history, and transaction context into plain English, but it does not have special access to private contract logic or off‑chain data. Always review what you are actually signing in your wallet before approving any transaction; a streaming explanation does not replace your own verification of the transaction details, including the target contract and the function you are calling. This tool is provided free of charge, with no warranty of accuracy or completeness.