Candela documentation
Candela — named for the SI unit of luminous intensity — is a concentrated-liquidity platform built for the Robinhood Chain ecosystem and powered by Uniswap v3. Concentrated liquidity is focused light: the way a lens gathers light into a focal region, Candela gathers your capital into a precise price aperture.
You provide liquidity into an aperture — a window of prices you choose, visualized as bands. While the market trades inside your aperture, your capital earns swap fees; outside it, your position sits idle in a single token. Candela gives you the tools to focus well: a band-level liquidity spectrum, a draggable aperture, liquidity profiles, single-token zap-in, and one-click position management.
Every action is a real on-chain transaction against audited, battle-tested Uniswap v3 contracts. Candela deploys no custody contracts — your positions are standard Uniswap v3 NFTs in your own wallet, visible and manageable from any Uniswap interface too.
Bands & apertures
Uniswap v3 divides each pool's price axis into ticks; each pool has a tick spacing set by its fee tier. Candela groups the price axis into bands of one tick-spacing each — discrete steps of liquidity along the price axis. One tick ≈ 0.01% of price, so a band in a 0.05% pool (spacing 10) covers ≈ 0.10% of price movement.
The spectrum on the Create tab shows how much liquidity other LPs have placed in every band around the current price. Lime bands sit below the current price (they hold the quote token); bronze bands sit above it (they hold the base token); the bright active band is where trading happens right now — only liquidity in the active band earns fees at any given moment.
Your aperture is a contiguous run of bands. A narrow aperture concentrates your capital — more fees per dollar while price stays inside, but the position falls out of range sooner. A wide aperture earns less per dollar but stays active through bigger moves.
Creating a position
- Pick a pool on the Discover tab (ranked by 24h volume, with TVL, fees, and estimated APR) or search on the Create tab. This opens the pool page: stats on the left, price chart in the middle, deposit panel on the right.
- Open your aperture. Drag the bronze Min Band / Max Band lines directly on the candlestick chart (they snap to band boundaries), drag the handles or slider on the spectrum, use the +/− steppers, or type exact min/max prices. Hover any band for its price window and liquidity share. Everything stays in sync, and handles also move one band at a time with the arrow keys.
- Choose a profile — how your liquidity is distributed across the aperture (see below).
- Deposit. Enter one amount and Candela computes the other side from the aperture math. If your aperture sits entirely above or below the current price, the deposit is single-token. Approve each token once, then confirm the mint.
Multi-element profiles are minted in one transactionvia the position manager's multicall, so Focal and Fringe don't cost you extra confirmations.
Liquidity profiles
A Uniswap v3 position is uniform across its aperture. Candela controls the distribution by splitting your aperture into up to five weighted elements:
- Field — uniform liquidity across your aperture. Steady fees wherever price sits. Lowest gas, simplest to manage. The default.
- Focal — concentrated at the center. Maximum depth at the current price, with weights falling off toward the edges; ideal for stable pairs and calm markets.
- Fringe — weighted to the edges. Positioned for moves and reversals: it effectively scales into dips and out of rips — a two-sided DCA that profits from volatility passing through your aperture.
The dashed outline on the spectrum previews the chosen profile before you deposit. Each element appears in your portfolio as its own entry (they share the pool and can be closed individually or together).
Zap in
Hold only one of the pair's tokens? Zap-in computes the exact portion that must be swapped so your deposit matches the aperture's required ratio, quotes it via Uniswap's QuoterV2, executes the swap through SwapRouter02 with your slippage limit, then mints the position — swap and mint as separate confirmations, deposit itself always as one multicall.
Note: the swap pays the pool's fee tier and moves the price slightly, so zap-in on thin pools with large size will shift your own entry. For size, prefer depositing both tokens.
Fees & APR
Swappers pay the pool's fee tier (0.01%–1%) on every trade. Fees accrue to positions whose aperture covers the active band at the moment of each swap, pro-rata to their share of that band's liquidity. Fees are not auto-compounded — claim them from the Portfolio tab whenever you like.
The Est. APR column on Discover is fee tier × 24h volume × 365 ÷ TVL — a pool-wide, full-range estimate. A well-focused concentrated position can earn a large multiple of it; an out-of-range position earns zero. Treat it as a compass, not a promise.
Managing positions
The Portfolio tab reads your position NFTs straight from the chain:
- Status — in range (earning) or out of range (idle), with the aperture bar showing where price sits relative to your bounds.
- Claim fees — collects accrued fees to your wallet. One transaction.
- Remove — withdraw 25/50/75/100% of liquidity. Decrease and collect are batched into one transaction.
- Close position — removes all liquidity, collects everything (principal + fees), and burns the empty NFT. One transaction, one click.
- PnL vs entry— each position shows profit or loss against what you deposited. WETH-paired pools are valued in WETH; other pools in their quote token. For v3 positions opened elsewhere, Candela recovers your entry basis on-chain (“calculating…” while it works); if it can't, it shows “entry unavailable” rather than a fake number. v4 positions record entry at mint, so PnL appears for positions created after this feature shipped.
- Add— jumps to the Create tab pre-loaded with the position's pool.
Architecture
Candela is a thin, honest layer over public infrastructure:
- Contracts — the official Uniswap v3 deployment on Robinhood Chain: Factory, NonfungiblePositionManager (mint/increase/decrease/collect/burn, multicall), SwapRouter02 (zap swaps), QuoterV2 (zap quotes), TickLens (band liquidity map).
- Market data— GeckoTerminal's public API for pool discovery, TVL/volume, and price history; all position math and liquidity state read directly from the chain via multicall.
- No backend, no custody — the app is a static frontend; every write is signed by your wallet, every read is public data.
Robinhood Chain
Candela runs on Robinhood Chain mainnet — an Arbitrum Orbit L2 (chain id 4663, ETH gas) focused on tokenized real-world assets — against the official Uniswap v3 deployment there. Transactions confirm in about a second and cost a fraction of a cent; the explorer is Blockscout (robinhoodchain.blockscout.com). As tokenized stocks come on-chain, the same bands, apertures, and profiles apply to them directly — concentrated liquidity on equities, through the same lens. Arbitrum One remains available as a config-flip fallback (NEXT_PUBLIC_ACTIVE_CHAIN=arbitrum).
Risks
- Impermanent loss, amplified. Concentration multiplies fee income and divergence loss. A position that exits its aperture has fully converted into the less valuable token of the pair.
- No auto-rebalancing. Candela does not move your aperture for you. Out of range means zero fees until you reposition or price returns.
- Estimates are estimates.APR figures derive from yesterday's volume; tomorrow disagrees routinely.
- Smart-contract risk. Mitigated by using canonical, audited Uniswap v3 contracts — but never zero.
FAQ
- Is Candela its own AMM?
- No. Candela is an interface layer: it maps bands, profiles, and a draggable aperture onto Uniswap v3's tick model. All liquidity lives in canonical Uniswap contracts.
- Why do I see positions I didn't open in Candela?
- Portfolio reads every Uniswap v3 position NFT in your wallet, wherever it was minted. Your Candela positions are equally visible in other Uniswap frontends.
- What does “1 band ≈ 0.10%” mean?
- Each tick is a 0.01% price step and this pool's tick spacing is 10, so one band spans ten ticks ≈ 0.10% of price. Pools with other fee tiers have wider or narrower bands.
- Are there protocol fees?
- Candela adds no fees in v1. You pay only Uniswap pool fees (when zapping) and gas.
- Which wallets work?
- Any injected EVM wallet — MetaMask, Rabby, OKX, Brave, and friends. WalletConnect lands with v2.
- What about Uniswap v4 pools?
- Both v3 and v4 are first-class. Discover lists both (badged), and you can create and manage positions on either. v4 mints go through the singleton PositionManager (all elements batched into one modifyLiquidities call, with native ETH pairs supported directly); v3 mints through the NonfungiblePositionManager multicall. Your Portfolio shows v3 and v4 positions in separate, badged sections.
- How does the Token Safety check work?
- Each pool page checks the pair's non-major token via GMGN: honeypot detection, buy/sell tax, contract verification, renounced ownership, blacklist functions, liquidity lock/burn status, top-10 holder concentration, and launchpad origin. Discover also flags pools with many buys but zero sells — the classic honeypot pattern. Signals reduce risk; they never eliminate it.