This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

Payment Stream NFT Transfer Tool (Stream Ownership Transfer)

NFTs · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — nothing to install.
CategoryNFTs
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

Payment Stream NFT Transfer Tool enables you to transfer ownership of payment stream NFTs from one wallet to another through a secure three-step process: initiate, accept, and cancel. Stream NFTs represent ownership of payment streams that deliver multiple ERC-20 tokens to recipients over time—this tool handles the full lifecycle of transferring those ownership rights. It reads the connected wallet address, stream NFT contract address, current ownership, and complete stream metadata including recipient, token addresses, amounts, start/end timestamps, cliff durations, and vesting schedules. It also displays transfer history, active stream status, and current token balances held in the stream contract. This provides complete visibility into what you are transferring before you commit.

HOW TO USE

Connect your wallet and select your network. Paste the stream NFT contract address you are using—you are vouching for this contract. Enter the stream NFT ID (token ID) and click "Fetch stream details" to load all stream information, including current owner, recipient, tokens, amounts, schedule, and pending transfer status. To transfer ownership, enter the new owner's wallet address and click "Initiate transfer"—this starts the transfer process and marks the stream as pending. The new owner must then click "Accept transfer" from their wallet to complete the transfer. If you change your mind before acceptance, the current owner can click "Cancel transfer" to revert the pending state. The tool checks that the pending owner matches the accepting wallet and verifies that only the current owner can cancel.

THE REAL MECHANISM — TWO-PHASE TRANSFER WITH ON-CHAIN STATE VERIFICATION

Unlike simple NFT transfers that use safeTransferFrom, this tool implements a two-phase ownership transfer pattern that prevents accidental or malicious transfers. The initiateTransfer call updates the contract's pendingOwner mapping and emits a TransferInitiated event, but does not change the actual owner. The contract remains in a "pending" state until acceptTransfer is called. The acceptTransfer function verifies that the caller matches the pendingOwner address, then updates the ownerOf mapping and clears the pending state. The cancelTransfer function only works when called by the current owner and resets the pending owner to address(0). All three operations are atomic and include proper access controls—the contract reverts if conditions aren't met. The tool reads the stream metadata using a single getStream call that returns the full struct in one RPC request, then displays each field individually. For token balances, it makes parallel balanceOf calls using Promise.all, with proper error handling if a token is not ERC-20 compliant. The display uses ethers.js formatUnits with the correct decimals per token, which are fetched dynamically from each token contract.

WHAT IT CANNOT SEE

Cannot verify off-chain stream obligations—this tool has no visibility into employment contracts, grant agreements, or whether a stream payment is actually owed to the new owner. It cannot validate new owner identity or confirm that the receiving wallet belongs to the intended party. The tool cannot ensure stream solvency post-transfer—it does not monitor token liquidity, de-pegging events, or token contract upgrades that could affect the stream. It cannot detect if the stream NFT contract is malicious or compromised, or if the contract owner has upgrade or pause capabilities. The tool does not audit the NFT contract code, verify its implementation against security best practices, or simulate edge-case scenarios like reentrancy or overflow attacks. It cannot recover an NFT sent to an incorrect address or reverse a transfer after acceptance.

PLEASE NOTE — EVM CHAINS ONLY

This tool exclusively supports EVM-compatible chains where ethers.js can connect via standard JSON-RPC. It does not support non-EVM chains such as Solana, Tron, Starknet, SUI, TON, Aptos, Bitcoin, Cosmos, or XRP. The stream NFT contract must implement the specific interface expected by this tool (ownerOf, getStream, initiateTransfer, acceptTransfer, cancelTransfer, pendingOwner). Custom implementations may not work. Always test with testnet streams before transferring mainnet value. This tool is a stream management interface, not a financial advisor or legal counsel.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.