From 4cfbf713d12477019a3ec20062328f4586b54654 Mon Sep 17 00:00:00 2001 From: 0xSoju2 <155345966+0xSoju2@users.noreply.github.com> Date: Thu, 29 Aug 2024 17:36:21 +0800 Subject: [PATCH 1/2] add instant routing --- guides/2-jupiter-spot/3-jupiter-routing.md | 62 +++++++++++++++++++++ guides/2-jupiter-spot/image-1.png | Bin 0 -> 31086 bytes 2 files changed, 62 insertions(+) create mode 100644 guides/2-jupiter-spot/3-jupiter-routing.md create mode 100644 guides/2-jupiter-spot/image-1.png diff --git a/guides/2-jupiter-spot/3-jupiter-routing.md b/guides/2-jupiter-spot/3-jupiter-routing.md new file mode 100644 index 00000000..236943a4 --- /dev/null +++ b/guides/2-jupiter-spot/3-jupiter-routing.md @@ -0,0 +1,62 @@ +--- +sidebar_label: "Jupiter Routing" +description: Learn about Jupiter Routing, how Jupiter aggregates all the markets and tokens on Solana. +title: Jupiter Routing +slug: /jupiter-routing +--- + +The key to Jupiter Swap, is Jupiter Routing. + +### Jupiter Routing + +- Offers the best price swapping between any token to any token on Solana +- With wide token selection, supporting new tokens and markets immediately when launched, +- Functions as the universal liquidity layer of Solana, such as Phantom, Birdeye, etc. + +Our promise of Best Price & Best Token Selection meant that we needed to ensure that we only used liquid tokens for complex routing for better and reliable prices, while also adding new tokens and new markets super quickly. + +:::tip **Note:** Our infrastructure is “markets” focused, primarily used in routing. +::: + +### Routing Groups + +Routing Groups (0-4) is a way to label markets and treat them differently in routing. + +- RG 0: Markets dropped from Jupiter Routing but still exist on-chain. +- RG 1: Also known as Simple Routing, Routing without ALTs. +- RG 2: full liquidity, ALT created, price impact, price difference (either) +- RG 3: full liquid, intermediate list. + +Note: We create [Address Lookup Tables (ALTs)](https://solana.com/docs/advanced/lookup-tables) for markets to add them to full routing. ALT creation requires time + SOL, which is why we only promote tokens to full routing after 14 days and a set criteria. + +### Market Indexer & Crawler + +We have 2 ways of a market being added to routing: + +1. Market Indexer — Using Triton Yellowstone Geyser RPC plugin, we query all the transactions related to the programs supported by instant routing, with a custom parser to look for the market ID, and immediately add to RG 1. +2. Market Crawler (Cron Job) — that runs every 30mins to check every markets to check the liquidity and classify the pool as RG 0, 2 and 3. + +### Instant Routing + +With Instant Routing, we wanted to support new tokens with routing immediately. Swap for any shitcoin that launched on any AMM, immediately using any input token. + +We did this by creating a middle ground (Routing Group 1), which offers simplified routing without ALTs. + +When new markets are launched, we immediately add the market to Routing Group 1, without ALTs. Tokens launched with Routing Group 1 enjoy multi-hop/splits as per normal. + +Example: USDC → Market A (RG 3) → SOL → Market B (RG 1) → New Token + +![Simplified Routing](image-1.png) + +When a token launches, it is immediately supported with Routing Group 1, if it is launched on one of the AMMs supported with Instant Routing. + +:::tip +Note: We currently support Fluxbeam, Meteora DLMM, 1Intro, Pump.Fun, Raydium CLMM, Raydium CP, Raydium V4, Whirlpools for Instant Routing. +::: + +**Criteria:**After 14 days, we apply a criteria to determine if a pool is graduated to full routing / RG 2. + +- Price Impact on $500: Less than 30% price impact after buy → sell or sell → buy in the same pool, ensuring there is sufficient liquidity, using $500 size +- Price Difference: Variance of less than 20% between new pool and pool existing in Routing (important for additional markets on already supported tokens) + +If it passes, it will be added to Routing Group 2 and ALTs will be created. diff --git a/guides/2-jupiter-spot/image-1.png b/guides/2-jupiter-spot/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..49ed68ecb3c25a00426d11b97cb66be87f8f3db9 GIT binary patch literal 31086 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�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 Date: Mon, 2 Sep 2024 16:47:34 +0800 Subject: [PATCH 2/2] trigger vercel build --- guides/2-jupiter-spot/3-jupiter-routing.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/2-jupiter-spot/3-jupiter-routing.md b/guides/2-jupiter-spot/3-jupiter-routing.md index 236943a4..7adb2224 100644 --- a/guides/2-jupiter-spot/3-jupiter-routing.md +++ b/guides/2-jupiter-spot/3-jupiter-routing.md @@ -24,8 +24,8 @@ Routing Groups (0-4) is a way to label markets and treat them differently in rou - RG 0: Markets dropped from Jupiter Routing but still exist on-chain. - RG 1: Also known as Simple Routing, Routing without ALTs. -- RG 2: full liquidity, ALT created, price impact, price difference (either) -- RG 3: full liquid, intermediate list. +- RG 2: Full liquidity, ALT created, price impact, price difference (either). +- RG 3: Full liquid, intermediate list. Note: We create [Address Lookup Tables (ALTs)](https://solana.com/docs/advanced/lookup-tables) for markets to add them to full routing. ALT creation requires time + SOL, which is why we only promote tokens to full routing after 14 days and a set criteria.