What it is
HoffStock is a non-custodial interface to Morpho Blue on Robinhood Chain. Morpho Blue is a lending primitive where each market pairs one collateral asset with one loan asset, an oracle, an interest-rate model and a liquidation LTV. HoffStock lists a curated set of USDG markets, prepares the exact contract calls for deposit, borrow, repay and withdraw, checks them, and hands them to your wallet to sign. It never holds funds or keys.
The core flow
- Connect an injected wallet (EIP-6963). HoffStock reads your positions from the Morpho singleton.
- Pick a market on Markets.
- On Positions: deposit collateral (approve exact amount → supplyCollateral), borrow (borrow), repay (approve → repay; “All” repays by shares so no dust remains), withdraw (withdrawCollateral). Each action shows the projected loan-to-value and liquidation price before you sign.
- Use the borrowed USDG on Swap (KyberSwap) or Pay (ERC-20 transfer), and follow everything on Activity.
Numbers, exactly as the contract computes them
- Collateral value (loan units) = collateral × oracle price ÷ 10³⁶, rounded down.
- Debt = borrow shares × (total borrow assets + 1) ÷ (total borrow shares + 10⁶), rounded up, after projecting interest to the current block with the IRM’s rate.
- Protocol limit = collateral value × LLTV. Health factor = protocol limit ÷ debt; below 1.0 the position is liquidatable.
- HoffStock limit = 90 % of the liquidation threshold: new borrows and withdrawals may not push the position beyond it. It is stricter than the protocol, never looser.
- Borrow APY = e^(rate × seconds per year) − 1 for the IRM’s per-second rate; suppliers earn borrow APY × utilisation × (1 − fee).
- Liquidation incentive = min(1.15, 1 ÷ (1 − 0.3 × (1 − LLTV))).
Oracle freshness policy
Every Chainlink feed on this chain publishes a 24 h heartbeat. HoffStock treats a feed as fresh while it is younger than 1.5 × its heartbeat (36 h). When any feed an oracle reads is older, or answers a non-positive price, HoffStock blocks new borrowing and collateral withdrawal on that market and keeps repaying and adding collateral available. Constant-price and vault-rate oracles have no feed to age. Morpho Blue itself never checks feed age.
Market listing rules
A market is listed only if its on-chain parameters match the typed configuration, its IRM is the official AdaptiveCurveIrm, its oracle is a factory-created MorphoChainlinkOracleV2 over directory-listed Chainlink feeds (or a vault rate, or a Sourcify-verified meta-oracle), and its collateral is canonical, Morpho-listed, or a registry-verified Robinhood Stock Token. The app re-checks the parameters on every load and marks a mismatching market unavailable.
Listed on this network: USDe / USDG (LLTV 91.5 %), WETH / USDG (LLTV 77.0 %), spUSDG / USDG (LLTV 91.5 %), NVDA / USDG (LLTV 62.5 %), TSLA / USDG (LLTV 62.5 %), AMZN / USDG (LLTV 62.5 %).
What is checked before your wallet opens
- Target address is on the signing allow-list (Morpho singleton for lending, the KyberSwap router for swaps, the token contract for transfers).
- The market and your position are re-read; the call is prepared again; if the amount or projected LTV is worse than reviewed, you review again.
- Approvals are exact by default (repay-all covers up to 15 minutes of interest).
- The exact call is simulated from your account with eth_call and gas is estimated; a failing simulation is never sent.
- A hash means submitted. Status changes only on a receipt (confirmed / reverted), a nonce replacement (replaced) or a dropped transaction (unknown).
Administrative permissions and liquidation rules
Morpho Blue’s owner can enable IRMs and LLTVs, set a market fee up to 25 % of interest and change the fee recipient. Nobody can change an existing market’s parameters, pause it or move user funds. Liquidation is permissionless: any address may repay up to 100 % of an unhealthy borrower’s debt and seize collateral at the incentive; when collateral runs out the remaining debt is written off against suppliers (bad debt).
Networks
- Robinhood Chain (4663): production Morpho Blue, Chainlink feeds, KyberSwap.
- Robinhood testnet (46630): no Morpho or Chainlink deployment — nothing to list.
- Local Anvil (31337): Morpho Blue compiled from source plus dev fixtures; the same interface, with prices set by the operator. Marked “local — experimental” everywhere.
See also: risk information · transparency report.