Real-time, per-second money streaming protocol built on Arbitrum Network.
Traditional crypto and Web2 payment systems rely on one-time, lump-sum transfers, which are inefficient for recurring or time-based payments such as salaries, subscriptions, creator support, and DAO contributor rewards. These systems require trust, manual intervention, and off-chain coordination, leading to delayed payments, lack of transparency, and poor capital efficiency.
There is no simple, decentralized way for users to continuously distribute funds in real time, with fine-grained control over who receives what, when, and for how long. Existing solutions either lack multi-recipient flexibility, real-time settlement, or are too complex for everyday use. ArbiStream solves this by enabling trustless, on-chain, per-second payments, giving senders full control and recipients instant, transparent access to earned funds—without intermediaries.
Real-time, per-second money streaming protocol built on Arbitrum Network.
ArbiStream enables users to create continuous USDT payment streams that distribute funds every second to one or multiple recipients, with support for pausing, cancelling, claim transfers, and recipient redirection — all fully on-chain.
ArbiStream is a smart contract protocol that allows a sender to lock USDT and stream it continuously over time, instead of sending lump-sum payments.
Salaries & payroll
Creator subscriptions
Freelance milestone payments
Revenue sharing
DAO contributor compensation
Funds accrue per second
Claimable balances increase in real time
Stream funds to multiple recipients
Custom percentage allocation (basis points)
Percentages must sum to 100% (10,000 bp)
Recipients can:
Withdraw funds to their wallet
Transfer claims to another address
Redirect future claims to a new recipient
Sender can pause and unpause streams
Sender can cancel streams at any time
Fair settlement on cancellation:
Earned funds go to recipients
Unearned funds are refunded to the sender
Uses ReentrancyGuard
Safe ERC-20 transfers
Strict validation and access control
Framework: React js
Language: TypeScript
Styling: Tailwind CSS v4
Animations: Framer Motion
Icons: Lucide React
Smart Contracts: Solidity ^0.8.20
Contract Framework: OpenZeppelin Contracts
Ethereum Library: Ethers.js v6
Package Manager: npm
Linting: ESLint
Type Checking: TypeScript
Node.js 18+
npm or yarn
MetaMask or compatible Web3 wallet
Mantle Sepolia testnet configured
Clone the repository
git clone https://github.com/OdionOseiwe/Arbitrum-APAC-Mini-Hackathon.git
cd Arbitrum-APAC-Mini-HackathonInstall dependencies
Start development server
npm run devOpen your browser
http://localhost:5173/Deploy MockUSDT contract
forge create src/MockUSDT.sol:MockUSDT --rpc-url <YOUR_RPC_URL> --private-key <YOUR_PRIVATE_KEY> --broadcastDeploy GiftVoucher contract
forge create src/ArbiStream.sol:ArbiStream --rpc-url <YOUR_RPC_URL> --private-key <YOUR_PRIVATE_KEY> --constructor-args [MockUSDT] --broadcastUpdate contract addresses in src/constants/Address.ts
Connect Wallet: Click "Connect Wallet" and authorize your Web3 wallet (MetaMask / WalletConnect).
Enter Recipient: Input the recipient's Ethereum address.
Enter Amount: Specify the USDT amount to stream.
Select Duration: Choose the duration for your stream (seconds, minutes, hours, or days).
Add Message: Include a message to the recipient.
Create Stream: Approve the transaction in your wallet and create the stream.
Enable Batch Mode: Toggle the multi-recipient option
Add Recipients: Enter multiple recipient addresses
Set Percentages / Amounts:: Allocate the stream amount across recipients (percentages must sum to 100%).
Add Messages: Personalize each recipient with a message.
Send Stream: Approve the transaction to create all streams in one batch.
📝 Smart Contracts (Arbitrum Sepolia):
• Service Ledger (ArbiStream): 0x4927CCbEcbc74B440ae93Acff465f94E88b45cF6
• Mock USDT Token (ERC20): 0xDCBbde31e98A9a190C3932e562Dc723Bf56b87f8
🔗 Live Demo: https://ArbiStream.netlify.app/
🌐 GitHub: https://github.com/OdionOseiwe/Arbitrum-APAC-Mini-Hackathon