Choose a market
Select the company or ETF vault that fits your interests.
Vesica brings tokenized-stock liquidity strategies, vaults, and lending into one onchain experience. This guide explains the essentials without the protocol jargon.
Deposit USDG into a vault and receive vault shares in return. The strategy supplies liquidity around a tokenized stock market, collects trading fees, and adjusts its range as the market moves.
Select the company or ETF vault that fits your interests.
Your vault shares track your portion of the vault.
See holdings, fees, activity, and your position in one place.
Use the available withdrawal path shown by the app.
Vesica combines live market data with onchain limits and clearly separated controls. If required information is not available, sensitive actions wait instead of guessing.
Every vault operates within defined limits for price movement, trade size, and acceptable execution loss.
Day-to-day operation, emergency controls, and protocol treasury responsibilities use separate roles.
Important configuration changes follow a review window instead of taking effect immediately.
Vaults include multiple withdrawal and recovery paths so users are not dependent on a single trade route.
The fee split applies only to liquidity fees earned by the vaults, not to deposits or withdrawals. Seven tenths of every claimed fee stays with vault participants, two tenths buy back and burn the Vesica token, and one tenth goes to the protocol treasury. The split is enforced by the vault contract and visible in its counters.
Compounds back into the position for vault participants.
Reserved to buy the Vesica token and permanently burn it.
Funds keepers, oracles and development of the protocol.
Tokenized-stock markets follow a 24/5 schedule. Vesica uses Chainlink as an independent reference before accepting a price-dependent action, rather than trusting a pool price by itself.
A deposit proceeds only when the Chainlink price is fresh and the pool remains within its permitted range.
When stock feeds stop updating, deposits and other price-dependent actions can pause until fresh pricing returns.
Users can withdraw their proportional underlying tokens without waiting for a stock sale. A one-click USDG conversion waits for a live protected price.
Rebalances compare current pool conditions with Chainlink before assets are repositioned.
The ten user-facing vault contracts. Each row opens that vault in the list; in a real deployment the address would open in Robinhood Chain Blockscout, with its matching source through Sourcify.
0xd48f999937cd0122794c282c357c87d999b77a7fPlaceholder
TSLA0xd82dcac32e50386211e1dc4e273209b3306cb263Placeholder
HOOD0xb859fb1ef223c8ba667087b3269e42bf28092cf1Placeholder
COIN0x8beee26c887f9c2c6b883792f59c3c7095f54b38Placeholder
AAPL0xab246ddb0ac6bdfe64999dfffc468616a83c5bdaPlaceholder
MSFT0x989f8dedee6fd8edc00fd25ec4b804af42e07d0dPlaceholder
AMZN0x3f81f66e999363a21c8a753a982ecd2251de6cbfPlaceholder
META0xb392cc6142a9b0544ead3abdfbc1e8b0ddf6cfd7Placeholder
GOOGL0x281f03e4944389f3289d8121ba66cdea468c50d3Placeholder
PLTR0x541d62e6649a2f6778190412ca8438f9aeb8c2bePlaceholder
Two directories: the contracts, and the site that talks to them. No build step and no framework — the site is HTML, CSS and plain JavaScript, so what a browser runs is what is written. The proof page carries the test output in full, including what is not built yet.
The ERC-4626 vault, the Chainlink gate that stands in front of it, and the concentrated Uniswap position behind it. vesica-contracts/src/
131 assertions on a real EVM, named after the promises rather than the functions, so a failure says which promise broke. vesica-contracts/test/
The vault list, the deposit drawer, the swap routing and the wallet connection — plain JavaScript, no build step. vesica-site/*.js
Eleven browser suites driving the real pages: the deposit arithmetic, every link, and the money fields handled badly. vesica-site/test/
toBuyback = received.mulDiv(BUYBACK_BPS, BPS, Floor);
toTreasury = received.mulDiv(TREASURY_BPS, BPS, Floor);
compounded = received - toBuyback - toTreasury;
token.safeTransfer(buyback, toBuyback);
token.safeTransfer(treasury, toTreasury);
// `compounded` is already here. Leaving it is the
// point: it raises totalAssets against an
// unchanged share count.
function totalAssets() public view {
uint160 sqrtOracle = oracleSqrtPriceX96();
(amount0, amount1) = _positionAmounts(sqrtOracle);
// never pool.slot0(): spot is whatever the
// previous line of the same transaction left
// behind, and a flash loan can leave behind
// anything.
The roadmap connects liquidity, credit, and strategy automation into a broader onchain financial toolkit.
Grow supported markets carefully, deepen the lending experience, and make portfolio management feel seamless across both products.
Introduce a strategy designed to collect opportunities from the market while reducing directional exposure.
Combine vault positions with lending in a guided looping strategy built to pursue a higher blended return.
A new feature is being built around AI, DeFi, and Uniswap V4 hooks. Development is expected to take about 30 days, with more revealed closer to release.
An ERC-4626 vault share. It is your claim on the vault's liquidity position, it moves with the Stock Token price, and it is the thing you redeem later.
Trading fees paid by people swapping in that pool. Seven tenths of every claimed fee compounds back into the position, which is what lifts the share price.
Chainlink stock feeds follow a 24/5 schedule. When they stop updating, price-dependent actions can pause until fresh pricing returns — but proportional withdrawals stay available.
Two tenths of every claimed fee buys the token on the open market and burns it, permanently reducing supply. It is enforced by the vault contract and visible in its counters.
You can supply USDG for interest paid by borrowers, or pledge eligible vault shares and borrow against them. Each market has its own cash, its own limits and its own oracle.
The roadmap above is kept current, and every contract change lands in the repository first.