Sluice
Streaming payroll · Arc L1

Payroll that flows,
block by block.

Sluice streams USDC salaries every second on Arc. Taxes split themselves, future income becomes a sellable asset, and a staked pool insures every paycheck against employer default.

Live on Arc Testnet - grab gas USDC at faucet.circle.com and connect any EVM wallet.

Stream #1 · monthly salary
0xf39F…2266 → 0x7099…79C8
InsuredStreaming
Streamed so far
1,284.000000USDC
25.68% of 5,000.00 vested0.001929 USDC/s
Tax auto-split (8%)
102.72 USDC
Auto-trigger
20% → EURC
-
USDC streamed
-
USDC settled
-
Users
-
Revenue earned
Live contract state · Arc Testnet
0xE4B8…BCE4 · verified ↗
StreamEmployer → RecipientSizeUSDC / secVestedProgressProof
Reading streams from Arc…
How it works

From escrow to paycheck in three moves

No pay cycles, no batch files, no bank rails. One contract holds the water; the sluice gates do the rest.

01

Employer escrows once

Fund a stream with USDC, set a duration and a tax split. The escrow starts flowing the same block - on Arc, gas is USDC too, so payroll never touches another token.

02

Salary vests every second

The stream is minted to the employee as an ERC-3525 token whose value is the USDC left to flow. No pay cycles, no batch runs - balance grows block by block.

03

Employee withdraws - or automates

Withdraw any vested amount; the tax share routes itself to the vault. Auto-trigger rules convert a slice of every paycheck with Circle Swap Kit on the way out.

Features

Income as a programmable asset

Five primitives, one ERC-3525 contract. Everything below is live in this build - click through after connecting.

ERC-3525

Streams are semi-fungible tokens

Each salary is an SFT: token value equals the remaining streamable USDC. Split part of a stream to another address, merge same-schedule streams, or transfer the whole thing - vesting math carries over pro-rata.

transferFrom(streamId, to, value)
Tax rails

Compliance splits, enforced onchain

Every withdrawal automatically routes the configured basis points to a tax vault before the employee sees a cent. Set it per stream: 8% payroll tax, 0% for contractors.

withdrawFromStream(streamId, amount)
Factoring

Sell future income for cash today

List a stream at a discount and any liquidity provider can buy it - payment goes straight to the seller, the SFT and all future flow transfer atomically to the buyer.

listStreamForSale · buyStream
Advances

Payday loans without the loan shark

Borrow up to 50% of your unwithdrawn stream value instantly. No interest, no liquidations - the advance repays itself as salary keeps vesting.

borrowSalaryAdvance(streamId, amount)
Insurance

Credit-default pool for salaries

Pay a one-time 0.5% premium and your stream is covered: if the employer cancels early, the unvested remainder is claimable from a pool underwritten by USDC stakers who earn the premiums.

insureStream · claimDefaultCoverage
Swap Kit

Stream-to-DeFi auto-triggers

Per-wallet rules run after every withdrawal - swap 20% to EURC, stack WBTC, dollar-cost-average by paycheck instead of by calendar. Powered by Circle Swap Kit through your own wallet.

web/src/lib/automation.ts
Business model

Free for payroll. Revenue is the float.

The same model payroll processors have run for decades - earn on the pre-funded window - except here the numbers are onchain and anyone can audit them.

Float yield

Idle escrow earns while salaries vest

Employers pre-fund streams, so roughly half the payroll sits idle at any moment. Anyone can sweep it to the treasury, which routes it across yield venues on Arc and, via CCTP, on other chains. Every dollar of NAV above swept principal is protocol revenue.

SluiceTreasury.claimYield(to)
Take rate

0.5% when future income trades hands

Selling a stream is a windfall moment - a seller accepting a 5% discount for instant cash pays 50bps of the ask to the protocol at purchase. Streams, withdrawals and advances stay free; the fee sits only on the liquidity event.

MARKET_FEE_BPS = 50
Free to use

No fees on payroll itself

Creating streams, withdrawing salary and borrowing advances carry zero protocol fee, and insurance premiums accrue entirely to the stakers who underwrite the risk. Adoption first; revenue rides the float, not the paycheck.

createStream · withdraw · advance — 0 bps
Who it's for

Three sides of every salary

For employers

  • One escrow transaction replaces the entire pay run
  • Tax withholding enforced by the contract, not the back office
  • Cancel anytime - vested pays out, unvested refunds
  • Idle escrow routes to cross-chain yield via CCTP, live on Arc

For employees

  • Get paid every second, not every month
  • Sell or split your stream when life needs liquidity
  • Insure your income against employer default for 0.5%
  • Auto-route each paycheck into savings or DeFi

For liquidity providers

  • Buy discounted streams - collect the full face value
  • Stake the insurance pool and earn every premium
  • Sub-second finality on Arc keeps positions atomic
  • All positions are onchain, transferable, composable
Built on
Arc L1· USDC-gas chain, sub-second finality
Native USDC· 6-decimal payroll & gas token
ERC-3525· semi-fungible salary streams
Circle Swap Kit· paycheck auto-conversion
CCTP v2· cross-chain treasury routing
Foundry· 50 tests across payroll and cross-chain

Open the sluice.

Open the app to stream your first salary, trade future income on the marketplace, and watch idle escrow earn yield - live on Arc Testnet.