Sharpfi is a two-sided protocol: liquidity providers put up capital and become the house, bettors place on-chain bets with signed quotes and IPFS receipts. Same infrastructure, same smart contracts, same math.
From USDC deposit to Aave yield + trading fees, all the way to $SHARP staking. You're the other side of every bet, without ever running a single market.
The LP deposits USDC into Sharpfi's global pool and receives LP shares representing their proportional stake of the house.
deposit(USDC) → mint(shares)Funds not actively locked as collateral are routed by the keeper into Aave V3. The pool earns base yield 24/7 with or without betting volume.
keeper.supply(Aave V3)Every bet opens a position against the pool: LMSR prediction, sport with EIP-712 signed quotes — all backed by the same shared liquidity.
BettingEngine.openBet()LMSR spread, sport flat fees and cashout fees are credited to the pool block by block. LP shares appreciate automatically.
shares.value↑ (fees + yield)At event settlement the keeper repays or withdraws from Aave to cover payouts. The pool stays solvent by design.
keeper.rebalance()The LP can exit anytime (burn shares → USDC + yield + fees) or stake their shares to earn additional $SHARP emissions.
burn(shares) → USDCFrom market selection to settlement, every step is signed, recorded and verifiable. No account, no custodian: just wallet and smart contracts.
The bettor picks an LMSR prediction market or a sport event. Odds are live: LMSR-derived for prediction, signed bookmaker feed for sport.
marketId, side, stakeThe backend signs the quote off-chain with EIP-712. The bettor receives a payload with price, deadline and nonce: gas-less to generate, on-chain to execute.
sign(Quote) → 0x…sigThe bettor sends the signed quote to BettingEngine. The contract verifies the signature, locks the stake and opens a position against the pool.
BettingEngine.bet(quote, sig)Stake, price, potential payout and terms are pinned to IPFS. The hash is emitted on-chain: a receipt verifiable forever, independent of Sharpfi's servers.
emit BetOpened(ipfsCid)At any time the bettor can close the position: live LMSR for prediction, live odds − haircut for sport. Liquidity always available.
engine.cashout(betId)Once the oracle confirms the outcome, the contract pays out in USDC to the bettor's wallet. No manual claim, no operational risk.
auto-payout(USDC)Bettor fees flow into the LP pool. LP liquidity makes instant bettor execution possible. It's not a market metaphor: it's literally the same BettingEngine.sol.