Uptick

Connect a wallet

Uptick reads your balance and asks you to sign each transaction. It never holds your keys.

Docs ยท Overview

Docs

Put stock tokens to work

Uptick turns a Robinhood Stock Token into a share of a Uniswap v3 pool against USDG. Each vault is one ERC-4626 contract, one managed position, and one published gate.

The product is deliberately narrow. Uptick does not pick stocks, lend them out, or take a directional position. It provides liquidity in one pair, holds the range it was given, and reports the result of a replay that anyone can inspect.

The three parts

A vault is the visible part of three systems. The evidence engine decides whether the pool is worth a vault and how large it can be. The contract holds the position and prices every entry and exit. The keeper moves the band and serves the evidence that the app and agents read.

PartWhat it does
Evidence engineReplays 30 days of swaps for each eligible pool, sizes the vault to at most 20% of in-range liquidity, and assigns the gate state.
StockVaultHolds one Uniswap v3 position in a plus or minus 5% band around Chainlink. Fees accrue to the share price.
Keeper and evidence APIRecentres each vault at 02:00 UTC after each NYSE session, simulates every rebalance before sending it, and serves the JSON evidence and MCP tools.
The 17 eligible Stock Tokens share this pipeline; each has its own vault, pool and gate.

What a vault holds

Every vault holds the same three things: idle balances of the Stock Token and USDG, both legs of a Uniswap v3 position, and fees earned but uncollected. Shares are priced in the Stock Token, so the share price rises as fees accumulate and falls when the position loses to informed flow.

HoldingHow it is valued
Idle Stock Token and USDGFace value, expressed in the Stock Token.
Both legs of the Uniswap v3 positionPool TWAP over at least 10 minutes.
Fees earned but not collectedChainlink for USDG at $1, then the Stock Token.
Share price = totalAssets / totalSupply, with shares denominated in 24 decimals.

How the gate decides

The gate is a replay measurement, not an opinion about the token. A 30-day window of swaps runs in two halves: the first 15 days select the pool, and the second 15 days are held out. The weaker half decides the state. A vault needs net fees at or above break-even in both halves to open.

StateWhen the replay puts the vault thereWhat deposits can do
OpenBoth halves keep at least break-even.Full vault cap.
ReducedThe weaker half sits between -20% a year and break-even.Up to $25,000 per transaction.
ClosedThe weaker half is below -20% a year.Deposits are refused.
Net fees are fees earned minus losses to informed traders and rebalancing cost, measured in the Stock Token.
StateVaults today
OpenAAPL, NVDA
ReducedSPY, QQQ, GOOGL, AMZN, PLTR
ClosedUSO, MSTR, META, GME, TSLA, AMD, MU, SPCX, INTC, CRCL
Current gate states for the 17-vault universe.

Where the numbers come from

The universe starts from 3,357,382 replayed swaps over 30 days. Each vault gets the largest position that stays at or below 20% of in-range liquidity, under a $100,000 ceiling. A pool whose depth would carry less than $10,000 is left out; a pool between that floor and the ceiling gets the largest size it can carry. The fee APR and kept APR you see on a vault page are the replay outputs for that size.

Read the gate
const base = "https://uptick-evidence.earn-shield-alerts.workers.dev";
const vaults = await (await fetch(`${base}/vaults`)).json();

for (const vault of vaults) {
  console.log(vault.id, vault.open, vault.deposit_cap_usd);
}

const nvda = await (await fetch(`${base}/vaults/nvda`)).json();
console.log(nvda.open, nvda.kept_apr_pct, nvda.pools.length);

The list carries each vault's open flag, deposit cap, fee APR and kept APR. The per-vault response adds the name, token, feed and the pool table the choice came from. The open flag is the gate's verdict; kept APR is the held-out half it was measured on.

All docs

Sources

README.mdUptick repository. Vault universe, replay window and fee figures.

web/public/llms.txtCanonical gate states, caps and evidence API.

contracts/README.mdStockVault mechanics and the oracle gate.