DenLabs Lab · Product · Multi-chain Cross-chain bridge console and batch payroll — moves USDC from EVM to Stacks with verifiable receipts.
DenBridge Console is a testnet-first, cross-chain payroll stack that moves USDC from EVM to Stacks and executes batch payouts with real transaction receipts. It’s built for teams that need transparent treasury funding, fast payroll runs, and verifiable on-chain reporting.
- Web Console (Next.js): the operator dashboard and 3‑stage wizard for wallet setup, funding, and payroll execution.
- Relayer (Node): a lightweight status service that validates EVM confirmations and detects Stacks USDCx mints via Hiro API, powering real-time progress and receipts.
- Contracts (Clarinet): batch payout smart contract(s) for Stacks, emitting structured events for receipt parsing.
- Cross-chain clarity: track funding from EVM to Stacks with explicit, verifiable status.
- No custody: transfers are user‑signed; the system doesn’t hold funds.
- Operational speed: upload CSVs, validate, execute, and export receipts in minutes.
Batch payouts for grants & payroll on Stacks. Non-custodial, wallet-signed transfers using USDCx (SIP-010).
# Install dependencies
pnpm install
# Run everything (devnet + web)
pnpm dev
# Or run individually:
pnpm web # Next.js app at http://localhost:3000
pnpm devnet # Clarinet devnetstacks-hackathon/
├── apps/
│ └── web/ # Next.js 15 + TypeScript (App Router)
├── contracts/
│ └── usdcx-payout-engine/ # Clarinet project + devnet
├── design/ # UI source of truth (do not modify)
├── pnpm-workspace.yaml
└── package.json # Root scripts
| Route | Description |
|---|---|
/ |
Marketing landing page |
/app |
Create Payout Batch (CSV upload, preview, validation) |
/app/sign |
Execution & Signing (transaction queue, live event log) |
/app/complete |
Receipt (success summary, export CSV/JSON, print) |
- CSV upload with drag & drop
- Automatic validation of Stacks addresses
- Safety limits (configurable):
- Max 50 recipients per batch
- Max 100,000 USDCx total
- Max 10,000 USDCx per recipient
- Live preview table with row management
- Transaction queue with status indicators
- Live event log (terminal-style)
- Network fee estimation
- Verification checkbox before signing
- Success rate and statistics
- Transaction history with search
- Export to CSV or JSON
- Print receipt functionality
The expected CSV format:
recipient,amount,memo
SP2J6ZY48GV1EZ5V2V5RB9MP66SW86PYKKNRV9EJ7,500.00,Dev Grant - October
SP1HTBVD3JG9C05J7HBJTHGR0GGW7KXW28M5JS8QE,1250.00,Design Bounty
SP3FGQ8Z7JY9BWYZ5WM53E0M9NK7WHJF0691NZ159,750.00,Community LeadDownload a template from the app or use the format above.
See contracts/usdcx-payout-engine/README.md for contract details.
MVP Approach: Non-custodial wallet-signed transfers. Each transfer is signed individually by the user's wallet (Leather). The contract provides optional batch tracking and event logging.
Uses @stacks/connect for Leather wallet integration:
- Connect/disconnect wallet
- Display truncated address
- Network status indicator
- Sign and broadcast SIP-010 transfers
- Node.js 18+
- pnpm 8+
- Clarinet (for contract development)
- Leather wallet (browser extension)
Create apps/web/.env.local (optional):
NEXT_PUBLIC_STACKS_NETWORK=mainnet# Contract tests
cd contracts/usdcx-payout-engine
npm install
npm test
# Web tests (if added)
cd apps/web
pnpm test- Maximum batch size: 50 transactions
- Maximum total amount: 100,000 USDCx
- Maximum per recipient: 10,000 USDCx
- Transactions are simulated in MVP (real broadcast coming soon)
- UI Design:
/design/**(HTML + screenshots) - Do not modify - Protocol: Stacks Connect + SIP-010 transfers
MIT