Onchain alpha curated daily by fund managers on pooled positions using self-custodial liquidity.
Signalflo turns a fund manager's alpha into human-verified, self-custodial liquidity. The manager's "Alpha Desk" composes a market call — a BTC market-making band, a MORPHO conviction buy, an AAVE carry — which is narrated and published as a shareable "round" and dropped into the group by a Telegram bot.
A member opens the round's public link, reads/listens to the thesis, verifies once with World ID (one human, one signal), and backs the strategy by shipping self-custodial liquidity into a 1inch Aqua maker position. Funds never leave the member's wallet until a swap matches, and an EIP-7702 mandate lets them dock to exit.
Signalflo is a TypeScript pnpm monorepo: a Next.js 16 / React 19 web app on Supabase (Postgres), a grammy Telegram bot (apps/bot) that drops each round's public link into the group, an agent service (apps/agent) that compiles the maker positions, and a Foundry/Solidity contract (contracts/PositionMandate.sol).
World ID (Worldcoin) gates humanity: the server mints a World ID 4.0 RP signature (/api/rp-signature), the client runs IDKit, and we cloud-verify the proof and dedupe on the nullifier — so each unique human can back a call once, and a fund manager must be World-ID-verified to publish.
Backing a call runs through 1inch Aqua. Our own SwapVM package (packages/swapvm, @1inch/aqua-sdk) compiles a salt-less maker-position program that each member re-salts for their own instance and ships as self-custodial liquidity on Base via viem/wagmi. Funds stay in the member's wallet until a swap matches. The onchain innovation: contracts/PositionMandate.sol is an EIP-7702 delegate, so a member can authorize the fund manager to CLOSE (dock) their position without handing over custody for set and-forget exits.
The other hack is the content bridge: the manager authors alpha in an external provider (storyflo) consumed purely over a public partner API (packages/storyflo-client). It narrates each call in a consistent host voice and returns an MP3 + waveform, which we render in a custom-built branded audio player. So the feed is authored, narrated, and human-gated end-to-end while signalflo never holds the content IP.

