Contracts not configured: set NEXT_PUBLIC_FACTORY, NEXT_PUBLIC_ROUTER and NEXT_PUBLIC_HOOK.
Manual · v1

No permission.
Just paint.

SPRAY is a token launchpad on Ink. Every token gets its own Uniswap v4 market against the asset you pick: ETH, a tokenized stock from Kraken's xStocks, tokenized gold or $SPRAY.

01

Pick a pair

ETH, TSLA, NVDA, AAPL, SPY, QQQ, MSTR, gold, SPRAY… Every pair opens at roughly the same dollar valuation, priced live.

02

Spray it

1B tokens are minted and all of them go into the pool as single-sided liquidity. No presale, no team bag, no LP to pull: the position has no exit.

03

Trade & earn

The price climbs along the curve as people buy. The creator earns a fee in the pair asset on every trade, forever.

Fees

Protocol0.5% of each trade, in the pair asset
Creator0% to 2%, chosen at launch, can never change
Launch heatStarts at 40% and drops to 0 over the first 60 seconds. Hits sniper bots, not the community.
Dev buyThe creator can buy in the launch transaction at the opening price, without launch heat

Why stocks work as pairs

The xStocks you pair with are the wrapped versions (wTSLAx, wNVDAx…). They don't rebase: corporate actions are absorbed by the wrapper's exchange rate, not by changing balances. That is what lets them sit inside a Uniswap pool.

The issuer can still pause transfers or block addresses at the token level. If that happens, markets paired with that stock pause too.

Contracts

SprayFactory opens markets and permanently holds every liquidity position. SprayHook is the shared Uniswap v4 hook that charges fees and the launch heat. SprayRouter handles buys and sells, including native ETH on ETH pairs. Quotes come from the official Uniswap v4 Quoter on Ink.

Start spraying →