Inspiration
Traditional payroll systems are slow, opaque, and expensive when crossing borders. Crypto-native companies and remote teams need a way to reliably and transparently disburse salaries that:
Avoids holding users' funds in a custodial account.
Keeps fees low by leveraging L2 throughput and native token rails.
Provides auditable, verifiable records for compliance and accounting.
We built PayStream to serve on-chain payroll flows for teams that want the benefits of blockchain settlement without sacrificing compliance, traceability, or usability.
What it does
PayStream provides:
Batch salary scheduling: Create payroll batches (recurring or one-off) which atomically settle via wallet-to-wallet transfers.
Non-custodial flow: The platform never custody funds — the payer signs and funds transactions from their wallet; PayStream coordinates and verifies settlement.
Real-time tracking: Live status for each payment (queued, signed, broadcast, confirmed, failed) with block-level references and hashes.
Low-cost settlement: Cost-optimized transactions on StarkNet (bundled where possible to reduce per-payment fee overhead).
Payroll primitives: On-chain payroll objects (payroll batch, recipient line items, scheduled windows, and payment receipts) stored in Cairo contracts for auditability.
How we built it
Architecture Overview Frontend: Nextjs + TypeScript web app for payroll managers to create and manage payrolls.
StarkNet Layer: Cairo smart contracts that represent payroll
Wallet interactions: Connect via Argent, Braavos, or any StarkNet-compatible wallet for signing transactions. Optionally support sponsored transactions / pay-for-gas relayers.
Event indexing: A lightweight indexer (e.g., using The Graph or a custom off-chain indexer) to surface payment statuses and receipts in the app.
Challenges we ran into
Wallet UX differences: Multiple StarkNet wallets behave differently across devnet/testnet/mainnet which made building a unified signing UX challenging.
Gas UX and sponsorship: Ensuring payers could reliably authorize gas sponsorship without exposing private keys required careful relayer design and replay protection.
On-chain indexing: Relying on quick, reliable event indexing required building a robust off-chain indexer to supplement block explorers.
Regulatory clarity: Non-custodial flows are simpler, but some customers asked for escrow. Supporting both models while maintaining clear legal/UX distinctions required additional product and security work.
Cairo toolchain friction: Tooling for building/testing varied across versions; build scripts and CI needed to be resilient to toolchain changes.
Accomplishments that we're proud of
Non-custodial payroll primitives: Designed payroll contracts that keep the platform out of the custody path by default while still providing verifiable receipts.
Batch signing flow: Implemented a batch signing UX that reduces friction for payroll managers while preserving per-payment auditability.
What we learned
UX matters: Wallet inconsistencies are a major source of friction; give users explicit, clear steps and meaningful error messages.
What's next for PayStream
Planned improvements and roadmap items:
Relayer marketplace: Allow companies to choose a relayer or sponsor model for gas payments.
Multi-asset payrolls: Support paying in multiple tokens with an on-chain exchange or payment
Built With
- cairo
- javascript
- nextjs
- tailwindcss
- typescript
Log in or sign up for Devpost to join the conversation.