Shore Connect test harness
Run the wallet-verify flow end to end and watch the events your app would receive: onConnect / onSign / onIncome / onExit. No wallet, no chain calls, fully offline mock with sample positions.
Run the flow No wallet
A faithful re-creation of Shore Connect: pick a wallet, sign, scan chains, get verified income back. Fires the same callbacks your integration expects.
Sample wallet earns staking + DeFi yield across ETH & SOL.
What Shore returns income/v1
On success, useShore() resolves with a tax-grounded income object plus a provenance certificate, in a schema your underwriting reads.
monthlyQualifying: 1855, monthlyGross: 2060, seasoningMonths: 24, taxBasis: "ordinary_income_at_receipt", taxRef: "IRS Rev. Rul. 2023-14", positions: [ "Lido", "Rocket Pool", … ], certificate: { verified: true }
How Shore Connect maps to the real thing
In production, the borrower connects a real wallet (MetaMask, Coinbase Wallet, Phantom, WalletConnect) and signs a SIWE-style message. Shore reads public on-chain data only, prices positions against a market oracle, classifies the yield as ordinary income at receipt (IRS Rev. Rul. 2023-14), seasons it over the lookback, and returns the income object above with a verifiable provenance certificate. No private keys, no approvals, no transactions, the signature only proves wallet ownership.
This harness mocks the wallet and the chain reads so you can wire and watch your onIncome handler today, the same way Brook's harness mocks Plaid Link.