Peer-to-peer options and lending with zero owners, no admin keys, no proxy, no pause, and no upgrade mechanism. Immutable smart contracts that run forever.
Repay or default — Borrower repays principal + interest to reclaim collateral. No mid-term liquidation. Ever.
Frequently Asked Questions
Onchain DeFi is a peer-to-peer options and lending protocol on Ethereum. It lets you write and buy covered options (calls and puts) on WETH and WBTC, and create or fill fixed-rate loan offers — all without any middleman, algorithm, or centralized operator. The smart contracts are fully immutable: once deployed, no one can change, pause, or upgrade them. There is no owner, no admin, no governance token, and no multisig. The code runs exactly as written, forever.
A covered call means the option writer deposits the full underlying asset as collateral. "Covered" means the collateral is always sitting in the contract — no risk of the writer failing to deliver.
Example: You hold 1 WETH and you think ETH will stay below $5,000 for the next 90 days. You write a covered call: deposit 1 WETH, set a strike price of 5,000 USDC, set a premium of 500 USDC, and set expiry to 90 days from now. A buyer pays you ~490 USDC (500 minus 2% total fee). If ETH stays below $5,000, the buyer doesn't exercise, the option expires, and you reclaim your 1 WETH — keeping the 490 USDC profit. If ETH goes to $6,000 and the buyer exercises, they send you 4,950 USDC (5,000 minus 1% fee) and receive 0.99 WETH (1 WETH minus 1% fee). You gave up the upside above $5,000 but earned the premium.
A covered put is the opposite direction. The writer deposits quote tokens (USDC/USDT/DAI) as collateral and gives the buyer the right to sell the underlying asset at a set price.
Example: You want to buy ETH at $3,000 and you're willing to wait. You write a covered put: deposit 3,000 USDC, set a strike of 1 WETH, premium of 200 USDC, expiry in 60 days. A buyer pays you ~196 USDC. If ETH drops to $2,500 and the buyer exercises, they send you 0.99 WETH and receive 2,970 USDC. You effectively bought ETH at $3,000 minus the premium you earned — a net cost of about $2,800. If ETH stays above $3,000, the option expires and you keep your 3,000 USDC plus the 196 USDC premium.
Go to the Options tab, click "Browse," and you'll see all open option offers. Each listing shows the type (call or put), the pair, collateral, strike price, premium, and expiry. When you find one you like, click "Buy." Your wallet will prompt you to approve the premium amount, then confirm the transaction. Once confirmed, the option is yours — you now have the right (not obligation) to exercise it before expiry.
Example: You see a call option: 1 WETH collateral, 5,000 USDC strike, 400 USDC premium, expires in 30 days. You pay 400 USDC. If ETH goes to $7,000, you exercise: send 5,000 USDC, receive ~0.99 WETH (worth ~$6,930). Your profit: roughly $1,530 on a $400 investment. If ETH stays below $5,000, you just don't exercise and you're out the 400 USDC premium.
Nothing bad. The option simply expires. The writer reclaims their collateral after the expiry date. You lose the premium you paid — that's your maximum loss, and you knew that upfront. There is no penalty, no margin call, and no additional cost. Your premium is non-refundable once paid.
Example: You bought a call for 300 USDC with a 4,000 USDC strike on 1 WETH. ETH is at $3,800 at expiry. Exercising would mean paying $4,000 for something worth $3,800 — that makes no sense. So you do nothing. The writer gets their WETH back. You're out 300 USDC. That's it.
Lending is peer-to-peer with fixed rates and fixed terms. The lender creates an offer specifying everything: which token they're lending, how much collateral the borrower must post, the interest rate (APR), and the loan duration. No algorithm sets rates — it's all human-to-human negotiation via open offers.
Example: You have 10,000 USDC and want to earn yield. You create a loan offer: lend 10,000 USDC, require 5 WETH as collateral, 10% APR, 90-day term. A borrower sees your offer, deposits 5 WETH, and receives 9,900 USDC (10,000 minus 1% lender-side fee). After 90 days, the borrower repays 10,346.58 USDC (10,000 principal + 246.58 interest + 100 borrower fee) and gets their 5 WETH back. You earned 246.58 USDC in interest.
Go to the Lending tab, click "Browse," and look at open loan offers. Each shows the loan amount, required collateral, APR, and duration. Click "Borrow" on any offer that works for you. Your wallet will prompt you to approve the collateral token, then confirm the transaction.
Example: You see a loan offer: 5,000 USDC available, requires 2 WETH collateral, 8% APR, 60-day term. You deposit 2 WETH, receive 4,950 USDC (5,000 minus 1% fee). Before 60 days is up, you repay 5,115.89 USDC (5,000 + 65.89 interest + 50 fee) and get your 2 WETH back. If you don't repay by the deadline, the lender claims your 2 WETH — no grace period.
No. There is zero liquidation mechanism in this protocol. This is fundamentally different from Aave, Compound, or MakerDAO where your position can be liquidated mid-term if your collateral drops in value. Here, your collateral is locked for the full loan term regardless of price movement. Even if your collateral drops 90%, you cannot be liquidated before the loan expires.
Example: You borrow 10,000 USDC against 5 WETH (ETH at $3,000, so $15,000 collateral). ETH crashes to $1,500. On Aave, you'd be liquidated instantly. Here, nothing happens — your loan continues normally. You still have until expiry to repay 10,000 USDC + interest + fee and get your 5 WETH back. The lender accepted this risk when they set the collateral requirement.
Yes, you can repay any time before the loan expires. However, the full interest for the entire loan duration is still owed — there's no discount for early repayment. This keeps the math simple: the lender knows exactly what they'll earn, and the borrower knows exactly what they'll owe, from the moment the loan is filled.
Example: You took a 90-day loan for 10,000 USDC at 10% APR. After 10 days, you want to repay. You still owe the full 90 days of interest (246.58 USDC) plus the 1% borrower fee (100 USDC). Total repayment: 10,346.58 USDC. You get your collateral back immediately.
If the borrower doesn't repay before the loan expires, the lender can claim the borrower's collateral. There is no grace period. Once the expiry timestamp passes, the lender clicks "Claim" and receives the full collateral amount — no fee is charged on default claims.
Example: You lent 10,000 USDC against 5 WETH for 90 days. The borrower doesn't repay. After 90 days, you click "Claim" and receive 5 WETH. If ETH is at $3,000, your 5 WETH is worth $15,000 — a profitable outcome. If ETH dropped to $1,500, your 5 WETH is worth $7,500 — a loss compared to your original 10,000 USDC. This is why setting appropriate collateral ratios matters.
No. The protocol has zero oracle dependency. This is a deliberate design choice that eliminates an entire class of attacks (oracle manipulation, stale prices, flash loan exploits on price feeds).
For options: the buyer decides whether to exercise based on their own market view. If you hold a call with a $5,000 strike and ETH is at $6,000 on your favorite exchange, you'll exercise. If it's at $4,000, you won't. Your economic incentive IS the oracle.
For lending: the lender sets collateral requirements upfront based on their own risk assessment. If you're lending USDC against WETH, you decide how much WETH to require. You're pricing in your own volatility expectations.
Fees are 1% per side on every transaction. The fee rate is hardcoded in the smart contract as a constant and can never be changed by anyone.
Options fees: • When a buyer purchases an option: 1% from buyer + 1% from writer on the premium. So if the premium is 500 USDC, 10 USDC total goes to fees, writer receives 490 USDC. • When a buyer exercises: 1% from the strike amount (buyer side) + 1% from the collateral (writer side). • No fee on expiry or cancellation.
Lending fees: • On loan fill: 1% of loan amount deducted (lender side). So if the loan is 10,000 USDC, borrower receives 9,900 USDC. • On repayment: 1% of loan amount added (borrower side). So borrower repays principal + interest + 100 USDC. • No fee on default claim or cancellation.
Nobody. There is no owner, no admin, no governance, no multisig, no proxy, and no upgrade mechanism. The contracts are deployed once to Ethereum and run forever exactly as written. There is no function in the code that allows anyone to change fees, pause trading, freeze funds, add tokens, or modify any parameter. This isn't a promise — it's a mathematical fact enforced by the Ethereum Virtual Machine. You can verify this yourself by reading the contract source code on Etherscan.
Five tokens are hardcoded in the contract: WETH (Wrapped Ether), WBTC (Wrapped Bitcoin), USDC, USDT, and DAI. These are the canonical Ethereum mainnet addresses for each token. No other tokens can ever be added — the whitelist is defined as constants in the Solidity code, not as a changeable list. This prevents interaction with non-standard, malicious, or rebasing tokens that could exploit the contract logic.
The fundamental difference is architecture. Aave, Compound, and dYdX are pool-based protocols with governance tokens, admin keys, upgrade proxies, oracle dependencies, and automated liquidation engines. They're powerful but complex, with many potential points of failure.
Onchain DeFi is peer-to-peer and fully immutable. No pool, no algorithm setting rates, no oracle, no liquidation bot, no governance vote that can change parameters, and no proxy that can swap the contract logic. Your counterparty is one specific person, and the contract between you is enforced by immutable code.
Think of it like this: Aave is a bank with a board of directors that can change the rules. Onchain DeFi is a vending machine welded shut — it does exactly one thing, and no one can change what it does.
Any EIP-6963 compatible Ethereum wallet works — MetaMask, Rabby, Coinbase Wallet, Rainbow, Frame, and others. When you click "Connect Wallet," the site detects all installed wallets and lets you choose. You must be on Ethereum Mainnet (Chain ID 1). If you're on the wrong network, the site will ask you to switch.
Go to the Options tab, click "Write Option." Choose your option type (call or put), select the underlying token (WETH or WBTC), choose a quote token (USDC, USDT, or DAI), and fill in the amounts.
Step by step for a covered call: 1. Select "Covered Call" and WETH as underlying 2. Set your collateral amount (e.g., 1 WETH — this is what you deposit) 3. Set the strike price (e.g., 5,000 USDC — what the buyer pays if they exercise) 4. Set the premium (e.g., 500 USDC — what the buyer pays you upfront) 5. Set the expiry date 6. Click "Write Option" — your wallet will ask to approve WETH, then confirm the transaction
Your option is now live and visible in the Browse tab. Anyone can buy it by paying the premium.
Yes — but only if no one has filled it yet. If your option is still in "OPEN" status (no buyer), you can cancel it and get your collateral back with zero fees. Same for loans: if the loan is still "OPEN" (no borrower), you can cancel and get your deposit back. Once an option is bought or a loan is filled, it cannot be cancelled — the contract must play out to exercise/expiry or repayment/default.
For option writers: You risk losing your collateral if the market moves against you and the buyer exercises. For call writers, you miss upside above the strike. For put writers, you may end up buying the asset at above-market prices.
For option buyers: You risk losing your entire premium if the option expires worthless. The premium is non-refundable.
For lenders: If the borrower defaults, you receive the collateral — which may be worth less than the loan amount if prices moved. Set collateral ratios accordingly.
For borrowers: If you don't repay by expiry, you lose your entire collateral with no grace period.
Smart contract risk: While the contracts use battle-tested OpenZeppelin libraries (ReentrancyGuard, SafeERC20) and follow checks-effects-interactions patterns, all smart contracts carry inherent technical risk. The contracts are verified and readable on Etherscan.
Since there's no liquidation, collateral ratios are your primary risk management tool. You're essentially pricing in the worst-case scenario for the entire loan term.
Example — conservative: Lending 10,000 USDC for 90 days against WETH. ETH is at $3,000. You require 5 WETH ($15,000 = 150% ratio). ETH would need to drop below $2,000 (a 33% crash) for the collateral to be worth less than the loan. This gives you a significant safety buffer.
Example — aggressive: Same loan, but you only require 3.5 WETH ($10,500 = 105% ratio). You earn a higher effective yield (borrowers prefer lower collateral) but a 5% ETH drop puts the collateral underwater. High risk, higher demand.
General guidance: 130-200% for 30-day loans, 150-250% for 90+ day loans, depending on your volatility outlook.
Simplicity and predictability. When a lender creates a loan offer at 10% APR for 90 days, they've committed their capital for that period based on that expected return. Allowing pro-rated interest on early repayment would let borrowers "pick off" lenders during favorable conditions — borrowing at high rates, then repaying early when rates drop elsewhere. Fixed interest regardless of repayment timing means both sides know exactly what to expect from the moment the loan is filled.
Yes. On both the Options and Lending pages, there's a "Lookup by ID" bar at the top. Enter any option or loan ID number and click "Look Up" to see full details — type, amounts, strike, premium, expiry, status, writer/lender address, and buyer/borrower address. Every position has a unique numeric ID starting from 0.
P2P Options
Fully collateralized covered calls and puts on WETH and WBTC. No oracle, no liquidation, no greeks — just clear terms.
Connect wallet to interact
Open Options
📋
No open options yet. Be the first to write one.
Write a New Option
Example — Covered Call: Deposit 1 WETH and set a strike of 5,000 USDC with a 500 USDC premium, expiring in 90 days. A buyer pays you 490 USDC (after 2% fee). If WETH goes above 5,500 USDC before expiry, the buyer exercises and you receive 4,950 USDC. If WETH stays below, you keep the premium and reclaim your 1 WETH.
Example — Covered Put: Deposit 5,000 USDC and set a strike of 1 WETH with a 300 USDC premium. A buyer pays you 294 USDC. If WETH drops below 5,000, the buyer exercises — sending you 0.99 WETH and receiving 4,950 USDC. If WETH stays above, you keep the premium and reclaim your 5,000 USDC.
Amount of WETH/WBTC you deposit
What buyer sends on exercise
Upfront cost for the buyer
My Options
👤
Connect wallet to see your options.
P2P Lending
Fixed-rate, fixed-term loans. No liquidation, no oracle, no margin calls. Lender sets all terms.
Connect wallet to interact
Open Loan Offers
💰
No open loan offers yet.
Create Loan Offer
Example: Lend 10,000 USDC for 90 days at 10% APR, requiring 5 WETH as collateral. A borrower deposits 5 WETH, receives 9,900 USDC (after 1% lender fee). At repayment, they pay back 10,346 USDC (10,000 principal + 246 interest + 100 borrower fee) and get their 5 WETH back. If they don't repay, you claim the 5 WETH.
Total amount you're lending
Collateral borrower must deposit
Annual rate — max 1000%
Loan term in days
My Loans
👤
Connect wallet to see your loans.
Whitepaper
The philosophy, mechanics, and security model of Onchain DeFi.
1. Philosophy
Onchain DeFi is built on one principle: once deployed, no one can change anything, ever.
No owner. No admin keys. No multisig. No proxy. No pause. No upgrade path. No governance token controlling parameters. The smart contracts are deployed to Ethereum mainnet and run forever exactly as written.
2. Protocol Overview
Onchain Options — Peer-to-peer covered options supporting fully collateralized calls and puts on WETH and WBTC, with premiums and settlement in USDC, USDT, or DAI.
Onchain Lending — Peer-to-peer fixed-rate lending with no liquidation, no oracle, and no margin calls. Lenders set all terms. Borrowers can never be liquidated before expiry.
Writer deposits underlying (WETH/WBTC), sets strike in quote tokens, premium, and expiry. Buyer pays premium for the right to purchase the underlying at strike before expiry. On exercise, buyer sends strike amount and receives collateral. If unexercised, writer reclaims after expiry.
Covered Put
Writer deposits quote tokens, sets strike in underlying tokens. Buyer pays premium for the right to sell underlying at the agreed price. On exercise, buyer sends underlying and receives the quote collateral.
No Oracle
Zero oracle dependency. The buyer's economic incentive to exercise only when profitable IS the oracle. This eliminates oracle manipulation, stale prices, and flash loan attacks on price feeds.
5. Lending Mechanics
Lender creates offer with all terms. Borrower fills by depositing collateral, receiving loan tokens minus 1% fee. Repayment is principal + full interest + 1% fee. Default means lender claims collateral after expiry.
No Liquidation
No mid-term liquidation. The lender sets collateral requirements upfront, pricing in volatility risk. Borrowers can never be liquidated before expiry.
6. Fee Structure
Options Premium: 1% from buyer + 1% from writer
Options Exercise: 1% from buyer's strike + 1% from writer's collateral
Lending Fill: 1% of loan amount (lender-side, deducted from borrower's receipt)
Lending Repay: 1% of loan amount (borrower-side, added to repayment)
7. Security Model
No owner, no admin, no governance, no oracle, no proxy, no selfdestruct, no delegatecall. Hardcoded 5-token whitelist. ReentrancyGuard on all state-changing functions. SafeERC20 for all transfers. Checks-effects-interactions pattern throughout. Each position is fully isolated.
8. Immutability Guarantees
Owner: None
Admin functions: None
Proxy/Upgrade: None
Pause mechanism: None
Fee rate: 1% per side, hardcoded constant
Fee recipient: Set at deployment, immutable forever
Token whitelist: Hardcoded constants, 5 tokens