Help Center

Frequently Asked
Questions

Everything you need to know about ZendIQ Lite, Pro and the Agent API

Getting Started Protection Profiles Smart Routing Auto-Optimise MEV Protection Fees & Pricing Activity Tab Token & Bot Risk Privacy Troubleshooting
1

Getting Started with Pro

4 questions

Lite is a warning tool — it tells you about risk before you sign. Pro is an execution layer — it actively intervenes and can replace Jupiter's default route with a better one, add Jito MEV bundle protection, and, with Auto-Accept on, send the improved transaction straight to your wallet when the math works out. Your wallet always signs; ZendIQ never does.

FeatureLitePro
Token risk scoring (16 signals)✓✓
Wallet security audit✓✓
Risk overlay before signing✓✓
Smart routing (Jupiter Ultra API)—✓
Auto-optimise swap routes—✓
Jito MEV bundle protection—✓
Live savings tracker (on-chain verified)—✓
Bot Attack Risk score—✓
Protection profiles—✓
PriceFreeFree in beta · 0.05% at paid launch

Think of it this way: Lite catches the trap. Pro routes around it.

Pro is live on the Chrome Web Store — one-click install:

  1. Visit the ZendIQ Pro Chrome Web Store page
  2. Click "Add to Chrome"
  3. Confirm the permission request
  4. Open a supported DEX (jup.ag, raydium.io, or pump.fun), connect your wallet, and try a swap

You can also load it manually from GitHub if you prefer to inspect the source first.

No — run only one at a time on the same DEX pages. Both extensions intercept wallet signing, and running them simultaneously will cause conflicts. Disable Lite before enabling Pro.

DEXs: jup.ag (Jupiter), raydium.io, pump.fun

Wallets (tested and verified):

  • ✅ Phantom  ·  ✅ Backpack  ·  ✅ Solflare
  • ✅ Brave Wallet (built-in)  ·  ✅ Jupiter Wallet
  • ✅ Glow  ·  ✅ Coin98  ·  ✅ OKX  ·  ✅ Any Wallet Standard compatible wallet
2

Protection Profiles

4 questions

Three built-in profiles control when ZendIQ intervenes:

  • Auto-Profit (recommended) — ZendIQ intercepts every swap and fetches a ZendIQ route in the background. If there's no net benefit, the DEX's route passes through silently and you never see the widget. If there is, the Review & Sign panel opens so you can approve it. Turn on Auto-Accept as well and ZendIQ skips that panel and goes straight to your wallet.
  • Always Ask Me (great for learning) — Every swap opens the full risk and savings review panel for manual confirmation. You see every signal and choose: Sign & Send with ZendIQ, or continue with Jupiter's route.
  • Major Wins Only — Only intercepts HIGH/CRITICAL risk trades or those with estimated loss exceeding $10 / 2% slippage. Low-risk ordinary swaps pass through silently.

You can also set a Custom threshold profile (minimum risk level, minimum loss in USD, minimum slippage).

  1. You click Swap on Jupiter
  2. ZendIQ intercepts the transaction before your wallet opens
  3. ZendIQ fetches quotes from Jupiter Ultra API and Raydium (typically 300–800ms, longer on a slow connection)
  4. Computes: net = routing gain − priority fee − Jito tip + MEV protection value
  5. If net > 0: opens the Review & Sign panel — or, with Auto-Accept on, presents the ZendIQ route straight to your wallet
  6. If net ≤ 0: releases the original transaction immediately — you never knew ZendIQ checked

When you sign ZendIQ's route, the widget opens at the success/review screen so you can see the savings. When ZendIQ steps aside, trading speed is unchanged (typically <1s delay).

The review panel has four card sections:

  • Quote — rate, amount being sold and bought, price impact, and the route ZendIQ found
  • Token Risk Score — CRITICAL/HIGH/MEDIUM/LOW with all 16 contributing signals
  • Bot Attack Risk — MEV risk score, estimated % loss to bots, key MEV signals; collapses to N/A for RFQ/gasless fills that have no mempool exposure
  • Savings & Costs — Routing Gain vs Jupiter's baseline, priority fee, Jito tip, and the final Est. Net Benefit

The main action is Sign & Send (ZendIQ's route). A second button returns you to the DEX's own route — it is shown on the Always Ask Me profile, and whenever the net benefit is negative, so you can always decline a worse route. On Auto-Profit with a positive net benefit that button is not shown, because a negative-benefit trade would already have been released to the DEX without opening the panel at all. Cancel is available in every state.

Yes. Choose the Custom profile in Settings and set three independent thresholds:

  • Minimum Risk Level: All / Medium+ / High+ / Critical only
  • Minimum Estimated Loss: e.g. $5
  • Minimum Slippage: e.g. 1%

The overlay opens only when a trade exceeds all three thresholds at once. They combine with AND, not OR — so raising any single threshold makes ZendIQ intervene less often, not more. A trade below even one of them passes through uninterrupted.

3

Smart Routing

4 questions

When Pro detects your swap, it calls Jupiter's Ultra API with your token pair, exact amount, and wallet address. This returns a fully-constructed, ready-to-sign transaction using the best available route Jupiter can find across all sources — Raydium, Orca, Phoenix, AMM pools, and more.

It compares that output against the DEX's concurrent live quote and shows you the difference in tokens and USD. If ZendIQ's route yields more tokens after all fees, it offers to replace the transaction.

Jupiter's execution-layer API (lite-api.jup.ag/ultra/v1/order), distinct from Jupiter's older quote API (deprecated May 2025). It returns a fully-built, signable VersionedTransaction — not just a quote. This includes the blockhash, compute budget, and fee configuration already set correctly.

ZendIQ uses two parameters unavailable on the old quote API:

  • priorityFeeLamports — set the compute unit price for faster landing
  • jitoTipLamports — add a Jito validator tip routed through Jupiter's execution engine

ZendIQ always steps aside when the DEX's route is as good or better. Specific cases:

  • ZendIQ's route yields fewer output tokens than the DEX's baseline
  • Net benefit after fees is negative (fees cost more than routing gain)
  • The DEX's fill is RFQ or gasless — a direct off-chain market-maker fill with zero mempool exposure and optimal price. Already the best possible execution.
  • The quote expired before signing (blockhash ~45s lifetime)

In all these cases, the original transaction proceeds immediately — trade speed is not affected.

Yes, on both — with nuances:

  • Raydium — Pro compares Raydium's own compute output against a Jupiter Ultra quote. The better option wins. When Raydium wins, its transaction is submitted as a Jito bundle rather than through the public mempool; a bundle lands whole or not at all, and can fail to land. The tip is sized from the trade's estimated sandwich exposure. Each side's tip is subtracted from its own output before the two are compared. Raydium's bundle is additionally credited for the sandwich exposure it removes, which can decide a close comparison in its favour.
  • Pump.fun — there is no alternative route to offer on pump.fun, so Pro does not swap venues. It rewrites the slippage limit inside the buy instruction to a tighter value derived from the transaction itself, and submits the trade as a Jito bundle when your estimated sandwich exposure justifies the tip. When it doesn't, the trade is submitted directly with no tip.
4

Auto-Optimise

4 questions

A toggle in Settings that makes Pro automatically present the optimised route transaction to your wallet — without opening the Review & Sign panel — when the estimated net benefit is positive. When off, Pro always shows the review panel for manual confirmation.

Important: Auto-Optimise fires when the estimated net benefit is positive. It also fires when the benefit cannot be determined — for example when no USD price is available to value the difference — because refusing to act on missing data would mean never optimising those pairs. It does not fire when ZendIQ's route is measurably worse than the DEX's. The toggle is separate from the protection profile — you can have it on with any profile.

No. Every transaction requires your wallet's signature. When auto-optimise fires, ZendIQ presents the improved transaction to your wallet extension — your wallet's approval popup opens and you confirm as normal. The only difference is you're signing ZendIQ's route instead of Jupiter's default route.

ZendIQ cannot sign on your behalf. Private keys live exclusively inside your wallet extension, inaccessible to any page script or browser extension.

When enabled (default ON), if the output token scores HIGH or CRITICAL risk, auto-accept is bypassed regardless of net benefit. The Review & Sign panel opens with a banner explaining that the pause was triggered by token risk.

This ensures you make an informed decision before signing a transaction involving a high-risk token — even when ZendIQ found a better route. You can disable it in Settings.

Solana blockhashes expire after roughly 45 seconds. If you take a while reviewing the panel, Pro detects the expired quote on the execute response (-2005 error code) and automatically re-fetches a fresh quote. A banner reads "Quote expired — click Sign & Send again." Your savings estimate refreshes with the updated pricing.

The Review & Sign panel also auto-refreshes ZendIQ's quote every 10 seconds silently while it's open, so the displayed figures stay current.

5

Jito MEV Protection

4 questions

MEV (Maximal Extractable Value) is profit extracted by bots that watch the public mempool and front-run or sandwich your transaction.

In a sandwich attack:

  1. Bot sees your pending swap in the mempool
  2. Bot buys the output token before your swap — pushing the price up
  3. Your swap executes at the higher price (you receive fewer tokens)
  4. Bot immediately sells — pocketing the spread at your expense

ZendIQ's Bot Attack Risk score estimates your exposure based on trade size, token liquidity, price impact, and market conditions. Even small trades ($50–500) can be targeted on low-liquidity pairs.

For trades with bot risk score ≥ 25 (MEDIUM or higher), ZendIQ includes a jitoTipLamports parameter in the Jupiter Ultra order. Jupiter routes tip transactions through Jito's block engine, delivering them as atomic bundles:

  • Bundles are invisible to the public mempool
  • Cannot be front-run or sandwiched
  • Either execute completely or not at all (atomic)

On Jupiter, the tip is paid to Jito validators through Jupiter's execution engine, and ZendIQ does not assemble the bundle itself — Jupiter handles routing. On Raydium and pump.fun, ZendIQ does build and submit the bundle directly to Jito's block engine, because those venues have no execution API to do it for them. The tip amount scales with your estimated MEV exposure and is shown in the Review & Sign costs breakdown before you sign.

A 0–100 score estimating how exposed your specific trade is to MEV bots:

ScoreLevelWhat it means
0–19LOWMinimal bot attention — routine trade
20–39MEDIUMModerate exposure — Jito tip added
40–69HIGHNotable risk — elevated priority fee + Jito
70–100CRITICALSignificant sandwich risk — max protection applied

Key signals: high price impact, low liquidity relative to trade size, memecoin/high-volatility token, network congestion. The estimated loss % on the card reflects the expected value of bot extraction, not a guarantee.

Yes. In Settings → Jito Mode:

  • Auto (default) — Jito tip added when bot risk score ≥ 25
  • Always — Jito tip on every trade regardless of risk
  • Never — Jito disabled; standard priority fees only

"Always" applies a flat 200,000 lamport Jito tip and a 500,000 lamport priority fee to every trade, regardless of risk — roughly $0.10 at $80 SOL. That is considerably more than Auto would spend on a low-risk swap, so it is worth choosing deliberately rather than as a default.

6

ZendIQ on Axiom (coming soon)

10 questions

Axiom support is not yet available. This section describes how it will work once it is released.

Axiom is different from Jupiter, Raydium and pump.fun. On those venues ZendIQ builds its own route and offers it to you as an alternative. Axiom executes through its own infrastructure, so there is no alternative route to offer. What there is — and what determines how much a bot can take from you — is Axiom's own trade settings.

So on Axiom, ZendIQ does two separate things:

Always onOnly if you turn it on
Scoring. Token risk, bot-attack risk, and your current Axiom fee and slippage settings, shown in the widget while you look at a token. Read-only. Nothing is changed and nothing is delayed. Optimising. When you click Buy, ZendIQ holds the click, tightens three Axiom settings for that one trade, lets the trade through, then puts your settings back.

Optimising is off by default. The first time you open ZendIQ on Axiom you are asked, and nothing is written to Axiom until you say yes. If you never answer, ZendIQ stays a read-only risk display.

Three fields on your currently-selected Axiom preset. These, and nothing else:

Axiom fieldShown in Axiom asWhat ZendIQ sets it to
slippageSlippage %10, 15 or 20 — sized to the risk of the token you're buying
enhancedMevProtectionMEV Protection: Securetrue
mevProtectionMEV Protection: Fastfalse — "Secure" is the enhanced flag on its own

ZendIQ never loosens a setting. If your slippage is already tighter than the target, it is left alone. If Secure is already on, it is left alone. If both are already where ZendIQ would put them, no write happens at all and your trade goes straight through.

Before writing, ZendIQ checks that all three fields exist on both your local settings and Axiom's server copy. If Axiom has renamed or removed a field, ZendIQ refuses to write anything and hands the trade back to you.

It takes the worse of two scores — bot-attack risk and token risk — and sizes the tolerance to it:

Worse of the twoSlippage target
CRITICAL10%
HIGH / MEDIUM15%
LOW20%

These are deliberately not tiny numbers. Memecoin launches move fast, and a 1% tolerance on a volatile token is a failed trade, not a protected one. The point is to cap how much a sandwich bot can profitably extract while still letting the trade land. Your slippage is the ceiling on that extraction: the tighter it is, the less a bot can take before the trade reverts on them.

If your own setting is already at or below the target, ZendIQ leaves it where it is.

No. ZendIQ never writes a fee field on Axiom. Not priority fee, not bribe, not the max-fee cap, and it never turns Auto Fee on or off. Fees are yours to set; ZendIQ's job is to make sure you can see what they cost you.

What it does instead is read them and show them as a risk factor, because a venue fee is a certainty in a way that slippage is only a tolerance:

  • Auto Fee off — ZendIQ reads your priority fee and bribe, adds them together, and scores the total as a percentage of the trade you're about to make.
  • Auto Fee on — Axiom sizes the real fee live and does not write it back to your settings, so ZendIQ genuinely cannot know the amount in advance. It falls back to your max fee cap and scores that as a ceiling, at half weight, with the risk level shown one band lower. A ceiling is not a charge, and it is labelled as a ceiling.
  • Auto Fee on with no cap set — ZendIQ shows a row saying the fee is automatic and not known yet, and scores it at zero. It will not invent a number.

If Axiom's settings panel happens to be open, ZendIQ will read the live priority and bribe values straight off the screen and use those instead of the cap, because that is the real figure.

Risk scoring adds no delay. It runs while you're looking at the token, before you ever click.

Choosing to optimise does add a delay — around a second. That second is spent reading your current settings, recording how to undo the change, writing the tighter values, and waiting for Axiom to confirm they have actually taken effect. The confirmation step matters: Axiom builds the order from its own in-memory state, so releasing the click before the change lands would mean trading on your old settings while believing you were protected.

The exact figure depends on how quickly Axiom's servers respond, which is outside our control.

That second is what it costs to be able to put your own settings back afterwards. A tool that changed your settings without first recording how to undo them would be faster and considerably worse.

It applies only when you choose to optimise. Declining costs nothing — your trade fires exactly as it would have without ZendIQ installed.

Because the undo is written down before the change is made, not after. The sequence is:

  • 1️⃣ Read your current values from both your browser's copy of the settings and Axiom's server copy.
  • 2️⃣ Write an undo record listing every field, its old value and its new value, and store it in the extension. If that record cannot be saved, ZendIQ does not make the change at all.
  • 3️⃣ Apply the change and wait for Axiom to confirm it.
  • 4️⃣ Let your trade through.
  • 5️⃣ Restore the old values once the trade settles.

The restore has several independent triggers, so one failing does not strand you: when the trade settles, on a 45-second fallback timer if it never does, when you close or navigate away from the tab, and on the next page load if an undo record is still outstanding. Both surfaces — your browser's copy and Axiom's server copy — are settled separately, because either one can succeed while the other fails.

Only one browser tab can be mid-optimisation at a time. A shared lock stops two Axiom tabs from writing over each other's undo records.

It tells you. A tool that quietly leaves your settings changed is worse than one that never changed them. ZendIQ shows what it changed, what it could not restore, and the values to put back by hand.

Two limits exist to stop the undo itself becoming a problem:

  • Five attempts. A restore that keeps failing stops retrying. It would otherwise keep sending requests from your logged-in Axiom session indefinitely.
  • 48 hours. After two days ZendIQ will ask before restoring rather than writing silently. By then you may well have changed those settings yourself, and 10, 15 and 20 are round numbers a person might plausibly have typed — so a matching value is not proof the change was ours.

If ZendIQ detects that something else changed the same field after it did, it treats your newer value as authoritative and does not overwrite it.

Solana only. ZendIQ identifies the chain from the token address in the page URL. An Ethereum-style address means a chain ZendIQ does not cover; a Solana-style address means it does.

On anything that is not Solana, ZendIQ is fully stood down: no click interception, no settings written, no Solana network calls, and the widget says "Solana only" rather than pretending to protect you. If the chain cannot be determined at all, it says "Not checking". You are never left thinking a trade was covered when it wasn't.

The optimisation consent prompt is also suppressed on chains ZendIQ has already ruled out — there is no point asking permission for something that cannot run.

ZendIQ intercepts the Buy and Sell buttons on a token page, where it can identify the token and score it before the trade. Quick-buy buttons on discovery and list views fire instantly by design and are not held.

Sells are treated more cautiously than buys. Blocking someone's exit from a position is actively harmful, so if anything in the optimisation path is uncertain, ZendIQ lets the sell through rather than holding it.

If an optimisation is attempted and Axiom ends up trading on the old values anyway, ZendIQ records that in your Activity rather than claiming a protection that did not land.

WhatWhy
Your Axiom preset settings — slippage, MEV mode, fee fieldsTo score them, and to know what to change back
Your connected wallet addressTo read your on-chain trade result and check it against the quote
The token address in the page URLTo identify the token and the chain
The buy amount in Axiom's Buy boxTo size fees and risk against the actual trade
Axiom's own trade-result messagesTo show the outcome, the fees actually paid, and whether the optimisation landed

Reads of Axiom's settings use your existing Axiom session, the same way the site itself does. ZendIQ has no account with Axiom, cannot log in on your behalf, and never sees your private keys or moves your funds.

Token risk scoring also queries public data sources — RugCheck, DexScreener and Solana RPC — with the token address only. GeckoTerminal's historical price lookup is skipped on Axiom, so the long-range price-change signals do not contribute to the score there. Full detail is in the Privacy Policy.

7

Fees & Pricing

4 questions

You are charged only when ZendIQ's optimised route is signed and confirms on-chain. No charge in any of these cases:

  • ❌ Jupiter's original route passes through (no optimisation)
  • ❌ You click "Use Jupiter's route" on the review panel
  • ❌ You cancel before signing
  • ❌ The transaction fails on-chain
  • ❌ Net benefit is negative and ZendIQ defers automatically
  • ❌ During the Open Beta period (currently free)

This is how the fee will work at paid launch. Nothing is charged today — the extension contains no code that constructs a transfer to ZendIQ.

Example: You swap $1,000 SOL → USDC. ZendIQ's route returns $1,001.50 USDC. Jupiter's baseline quote was $1,000.50 USDC. Routing gain = $1.00.

  • ZendIQ protocol fee: 0.05% × $1,000 = $0.50
  • Priority fee + Jito tip (if any): ~$0.10–0.30 (shown in Review & Sign)
  • Net to you: ~$0.20–0.40 extra vs Jupiter's route

At paid launch the protocol fee will be deducted as a standard token transfer inside the signed transaction, visible in your wallet's signing preview before you confirm — not billed separately and never taken from a stored payment method.

Yes — $10 maximum per transaction. On a $50,000 trade, standard 0.05% would be $25 — but it's capped at $10. No trade ever costs more than $10 in ZendIQ protocol fees, regardless of size.

Priority fees and Jito tips are paid to Solana validators / Jito, not to ZendIQ. They improve transaction landing speed and provide MEV protection.

ZendIQ sizes both from the measured risk of the trade and its size, not from the routing gain — so on a trade where the gain is very small, the fees can exceed it. When that happens ZendIQ tells you: the Review & Sign panel shows a warning that fees exceed the routing benefit and the sign button turns amber, and on the automatic profiles the trade is released to the DEX instead. The full breakdown is shown every time before you sign — no surprises.

8

Activity & Savings Tracker

4 questions

A full history of every swap you've made with Pro active — covering both ZendIQ Optimized and Not optimized trades. Each entry shows:

  • Token pair and amounts (sold / received)
  • Exchange / route type (AMM, RFQ, Gasless, Raydium bundle)
  • Risk score at time of trade
  • Actual Gain (est.) — the net benefit frozen at the moment you clicked Sign & Send
  • ZendIQ Quote Accuracy — once the transaction is confirmed and readable on-chain, how close the signed quote was to actual delivery. The first check runs a few seconds after confirmation and retries for up to about a minute if the transaction is not yet visible, so the row reads "pending…" until then.
  • Solscan signature link

The net benefit figure frozen at the moment you clicked Sign & Send — comparing ZendIQ's route output against Jupiter's concurrent live quote at that exact instant, minus all fees.

It's frozen at click-time to prevent Jupiter's live quote from advancing during the ~1–5 seconds it takes for your transaction to confirm on-chain. The "(est.)" prefix is removed and the label upgrades to "Actual Gain" when Quote Accuracy reaches ≥99%, confirming the on-chain delivery matched the estimate.

After your transaction confirms, ZendIQ polls the Solana RPC for the actual token delta and compares it to what the signed quote promised. 100% means you received at least what was quoted — the figure is capped at 100%, so receiving slightly more than quoted also shows as 100%.

RFQ and gasless fills routinely hit 100% because market makers guarantee exact delivery. AMM routes may vary slightly (<1%) due to price movements between signing and landing.

When you click "Use Jupiter's route" on the review panel, or when ZendIQ determines the routing gain is negative and automatically defers to Jupiter, the original Jupiter transaction is recorded as a "Not optimized" amber card.

This gives you a complete picture of all your swaps — not just the ones ZendIQ improved. Quote Accuracy for non-optimized trades reflects Jupiter's delivery vs ZendIQ's concurrent snapshots.

9

Token & Bot Risk

3 questions

Yes — Pro uses the same 16-signal token risk engine as Lite, with the same thresholds and risk level definitions. Both products share the scoring logic. Pro surfaces the score in richer context:

  • Re-scored when the output token changes; results are cached for 5 minutes per token, so the score does not move on every tick
  • Shown in the Monitor overlay, Review & Sign panel, and Activity history
  • The Pause on high token risk setting acts on the score to bypass auto-accept

Fees are driven by a combined score, not the bot risk score alone. ZendIQ takes the overall trade risk score and adds half the bot risk score to it (that boost capped at +30). The result selects the tier:

Combined ScorePriority Fee CeilingJito Tip
< 25None (Jupiter auto)None
25–3950k lamportsDynamic (if ≥35)
40–59150k lamportsDynamic
60–79300k lamportsDynamic
≥ 80500k lamportsDynamic

A Jito tip is also added independently whenever the bot risk score alone reaches 25, regardless of the combined score — Jito protects against bots specifically, so it fires whenever bots are the concern. Trades under $5 never escalate past the 25–39 tier.

Priority fee tiers are further capped at 0.5% of trade value, with a 10,000 lamport floor — small swaps never overpay relative to trade size.

Yes. The bot risk score runs on every detected swap regardless of DEX. On Raydium, a ZendIQ route you sign is normally submitted as a Jito bundle rather than through the public mempool, with a tip sized from the trade's estimated sandwich exposure — though ZendIQ falls back to a standard submission when a bundle isn't possible, such as a route that needs more than one transaction or one whose simulation fails. On pump.fun, ZendIQ intercepts the network request to extract swap parameters, scores the token, and presents the risk overlay before your wallet is asked to sign.

10

Privacy & Security

6 questions

During swap execution, Pro makes calls to external services. Swap details stay in your browser — only what's listed here leaves it:

  • Jupiter Ultra API — your wallet address is required as the "taker" so Jupiter can build a valid transaction for your account. Token pair and amount are also sent.
  • Solana RPC — for on-chain data (token info, transaction confirmation). Public network.
  • RugCheck / DexScreener / GeckoTerminal — for token metadata. Token mint address only.

In addition, Pro sends anonymous analytics events to ZendIQ's backend. Every event carries an anonymous install_id (a UUID generated once per install). The Privacy Policy lists every category in full — the main ones are below.

Install — fired once on first install or extension update

FieldWhy
OS (windows / mac / linux)Understand platform distribution
Browser (brave / chrome)Understand browser distribution
Locale (e.g. "en-US")Aggregate language distribution — no sub-region precision
Country (2-char ISO from browser locale)Derived by the browser, not geolocation — understand global reach
Reason (install / update) + previous versionTrack upgrade paths

Session — fired when a wallet is detected on page load and on page close

FieldWhy
Type (start / end)Measure session duration
Wallet adapter name (e.g. "phantom")Which wallets are most used — never the public key
DEX (jup.ag / raydium.io / pump.fun / axiom.trade)Which DEX the session was on

Trade — fired after the user makes a swap decision (optimise, proceed, or cancel)

FieldWhy
dexWhich DEX executed the trade
input_mintToken sold — needed to measure routing gain accuracy
output_mintToken bought — needed for risk signal accuracy
trade_usdTrade size in USD — capped at $50k
user_actionWhat the user chose: optimised / proceeded / cancelled
successWhether the transaction landed on-chain
tx_sigTransaction signature — deduplication + on-chain verification. Publicly visible on Solana.
bot_risk_scoreMEV / sandwich risk score (0–100)
token_risk_scoreOutput-token risk score (0–100)
net_benefit_usdEstimated routing gain minus fees at time of sign
routing_gain_usdRaw routing gain vs Jupiter's concurrent quote
mev_value_usdStatistical MEV protection value from Jito tip
fees_usdPriority fee + Jito tip cost
jito_tip_lamportsJito tip used — verifiable on-chain
profileWhich protection profile was active
auto_signWhether auto-accept fired
exec_pathHow the transaction was submitted: direct / jito / rfq / gasless / axiom_mev / axiom_direct
route_chosenRoute type: AMM / RFQ / gasless / bundle
tx_classificationRisk band at decision time: safe / caution / danger
data_jsonExtra fields not in fixed columns — future-proofs schema (≤4KB)

Not collected: wallet public key, full transaction bytes, counterparty wallet.

MEV detection — fired when a sandwich attack is identified around a swap

FieldWhy
tx_sigTransaction signature of the user swap being attacked — deduplication; publicly visible on Solana
detectedWhether an attack was confirmed
loss_usdEstimated USD loss from the attack — measures real-world impact
loss_bpsAttack severity in basis points
attacker_hashSHA-256 of the attacker's wallet, truncated to 12 hex chars. A deduplication token, not anonymisation — the hash is unsalted and Solana addresses are public, so a candidate address can be matched against it. Never published.
methodDetection method: vault_neighbor / bonding_curve_pda / front_run_only
prevented_countAttacks in the same block that Jito tips blocked

Not collected: user wallet address, transaction bytes, victim identity beyond the public tx signature.

Error — fired when an internal failure degrades protection (e.g. wallet hook failure)

FieldWhy
categoryError class — wallet_hook or injection
detailThe error message, truncated to 120 characters — no stack traces, no user data

Funnel — key UX steps in the widget flow

FieldWhy
eventwidget_shown — the only funnel event currently sent
dexWhich DEX

Heartbeat — once per UTC calendar day on service-worker wake

FieldWhy
dayCalendar date (YYYY-MM-DD) — deduplication key: one install = one heartbeat/day
siteWhich DEX site triggered the wake

Never sent in any analytics event:

  • ❌ Wallet public key or address
  • ❌ Private keys or seed phrases
  • ❌ Token balances or portfolio data
  • ❌ Full transaction bytes or content
  • ❌ Browser history, or any activity on sites other than jup.ag, raydium.io, pump.fun and axiom.trade — on those four, the site name is recorded, never the full URL
  • ❌ IP address (used for rate-limiting only, never stored in our database)
  • ❌ Any personal or identifying information

Every event carries an install_id — a UUID-v4 generated once on fresh install and stored in chrome.storage.local. It is:

  • ✅ Not tied to any account, wallet, or identity
  • ✅ Not transmitted off-device other than in event payloads to our backend
  • ✅ Reset on extension uninstall — a reinstall is a new install_id
  • ✅ Not exposed to any website — it lives only in extension storage

Its sole purpose is to group events from the same installation for aggregate analytics (e.g. "how many installs have made ≥3 trades?"). It cannot be linked to your wallet, browser fingerprint, or any personal identity.

No. Private keys live exclusively inside your wallet extension (Phantom, Backpack, Solflare, etc.) — inaccessible to any page script or browser extension. ZendIQ calls wallet.signTransaction() which opens your wallet's native signing UI. You see the full transaction. You choose to approve or reject.

Automatic signing is not possible without your wallet's approval flow.

The transaction signature (tx_sig) is a public on-chain identifier — already visible to anyone on Solana block explorers like Solscan. It does not contain your wallet address, amount, or any personal data on its own.

We use it for two purposes:

  1. Deduplication — prevents the same trade from being counted twice if the extension fires the event more than once
  2. Outcome verification — confirms that a trade we recorded as successful actually landed on-chain, so our own success figures are not self-reported

The Quote Accuracy figure you see in the Activity tab is not why we store it. That comparison is performed on your device, against a Solana RPC, and the result stays on your device — it is never sent to us.

We do not store the full transaction bytes, the signer's wallet address, or any counterparty information.

No, never. We:

  • ❌ Don't sell or share data
  • ❌ Don't have ads
  • ❌ Don't use third-party analytics services (no Google Analytics, no Mixpanel)

Data flows only from your browser to our own backend. Nothing goes to any third-party analytics platform.

It adds exactly one recipient, on some routes, and it is not hidden.

On Jupiter, the transaction is built by Jupiter's Ultra API on their servers — ZendIQ passes your input parameters (token mints, amount, wallet address) and receives back a pre-built VersionedTransaction. ZendIQ does not construct or alter it.

On Raydium and pump.fun, ZendIQ's own code appends a SystemProgram.Transfer instruction to the unsigned transaction, paying a Jito tip to one of Jito's published tip accounts — that is what gets the transaction into a bundle that goes to Jito's block engine instead of the public mempool. A bundle lands whole or not at all; it is not guaranteed to land.

This does not happen on every Raydium or pump.fun trade. On Raydium it only applies when ZendIQ's Raydium route is the one being signed, which requires that route to beat Jupiter's quote after its own tip is subtracted — otherwise Jupiter's transaction goes through untouched. On pump.fun it only applies when the tip is worth paying: if 80% of your sandwich exposure doesn't cover Jito's 0.001 SOL minimum, ZendIQ skips the bundle and submits the trade directly, with no tip and no added instruction. Setting Jito mode to Never in Settings disables it outright.

When a tip is added, the exact amount is shown as Jito Tip on the confirmation panel before you sign. On pump.fun, ZendIQ also rewrites the slippage limit inside the existing buy instruction to the tighter value shown on that same panel. On Axiom (not yet available), ZendIQ will build and alter nothing — it will change your trade settings and put them back.

No instruction ever pays a ZendIQ-controlled address. ZendIQ charges no protocol fee today, and no code path constructs a transfer to us. Every instruction, including the Jito tip, is visible in your wallet's signing preview before you confirm, and Pro's source code is open on GitHub for independent audit.

11

Troubleshooting

3 questions
  1. Refresh the page (Ctrl+R / Cmd+R) — wait for it to fully load
  2. Click Swap once — the widget activates on first swap detection
  3. Check extension is enabled: chrome://extensions → ZendIQ Pro → ON
  4. Open the browser console (F12 → Console) and look for [ZendIQ] — if absent, the script isn't loading
  5. Disable and re-enable the extension, then refresh
  6. If you loaded it manually from GitHub, make sure you selected the extension/ folder inside the repository, not the repo root

If still broken: email support@zendiq.ai with your browser version and a console screenshot.

Solana blockhashes expire after roughly 45 seconds. If you spent a while on the review panel before clicking Sign & Send, the transaction's blockhash expired. Pro detects this automatically and re-fetches a fresh quote. Just click Sign & Send again — you'll get an updated transaction with current pricing.

Common causes:

  • Network congestion — Jupiter Ultra API is slow. Wait 5–10 seconds, then try clicking Swap again
  • Rate limit (429) — Pro retries up to 3 times with backoff. If all attempts fail, an error message is shown and Jupiter's route is released
  • No wallet detected — Pro needs your wallet address to build the transaction. Connect your wallet on the DEX first
  • Blockhash expired during fetch — Click the ✕ Cancel button in the widget header and try the swap again

Still have questions?

Can't find your answer? We read every message.

📧
Email
support@zendiq.ai
𝕏
Twitter / X
@ZendIQ_Official
💬
Discord
ZendIQ Community
⭑
GitHub · Lite
ZendIQ-Extension-Lite
⭑
GitHub · Pro
ZendIQ-Extension-Pro