Jupiter Perpetual Exchange
GMX-class LP-to-trader perpetual futures exchange on Solana; liquidity via the JLP pool (SOL/ETH/WBTC/USDC/USDT basket); trades executed at oracle prices (Edge by Chaos Labs, Pyth, Chainlink fallback).
DeploymentsSolana · $691.3M
01
Risk profile at a glance
1 red · 5 yellow · 6 green 02
Categories & evidence
184 factors · 13 categoriesCode & audits Yellow 44 25 of 25
RD-F-001 red Audit scope mismatch Program PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu is a closed-source Solana BPF binary with no verified build on verify.osec.io as of 2026-05-16 (is_verified:false, on_chain_hash empty, last_verified_at null). All three audits (OtterSec Oct-Nov 2023, Sec3 Jan 2024, Offside Labs Feb-Mar 2024) predate April 2024; the currently deployed binary has no audit coverage and no commit SHA can be matched to any audit report. Closed-source prevents independent drift verification — the Hyperliquid-class precedent per briefing. RD-F-002 red Audit recency Most recent audit is Offside Labs, scope Feb 20 – Mar 11, 2024 (sign-off approximately March 11, 2024). As of 2026-05-16, that is approximately 796 days since last audit — exceeding the red threshold of >730 days. No audits found post-March 2024. RD-F-009 red Formal verification coverage No formal verification (Certora, Kani, Halmos, or equivalent) found for the Jupiter Perps BPF program in any public source. Closed-source binary prevents independent FV. No FV reports exist. For Solana BPF, formal verification tooling is nascent and essentially zero protocols have FV coverage. 0% FV coverage per the factor definition. RD-F-005 yellow Audit firm tier OtterSec is the leading Solana-specialized security firm (equivalent to Tier-1 for Solana BPF auditing). Sec3 and Offside Labs are established Solana boutiques (Tier-2). No EVM Tier-1 firm (Trail of Bits, OpenZeppelin, Certora, Spearbit) covers this protocol. For Solana-native programs, OtterSec is the functional standard, making this yellow-borderline — below Tier-1 by EVM taxonomy definitions, but appropriate for the substrate. RD-F-007 yellow Bug bounty presence & max payout Jupiter announced a bug bounty program in collaboration with Meteora AG via X post (JupiterExchange, 2025). Program hosted on OOOSEC/Raccoon Labs platform (security.raccoons.dev redirects to ooosec.com/programs/jupiter). Immunefi API returns null for Jupiter (data-cache bug_bounty.platform: null, max_payout_usd: null). OOOSEC page returned 403; max payout and exact scope unverifiable from public sources. Program exists but is not on a publicly-verified platform with published max payout. RD-F-183 yellow Bug bounty scope gap on highest-TVL contracts Jupiter announced a bug bounty program in collaboration with Meteora AG (X post 2025). Program hosted at security.raccoons.dev (redirects to ooosec.com/programs/jupiter). Immunefi API returns null for Jupiter. OOOSEC page returned HTTP 403 — scope details not publicly accessible. Whether the perps program PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu ($691M TVS) is explicitly in scope cannot be verified from public information. Program exists but scope is ambiguous and highest-TVL contract inclusion unverifiable. RD-F-003 gray Resolved-without-proof findings Audit PDFs are not accessible (404 at redirected developer URLs). Closed-source program means no GitHub commit trail to verify resolutions. Cannot confirm or deny that any finding was resolved in deployed code. OtterSec search result summary states 9 findings total with no critical, but individual finding resolution status is not verifiable. RD-F-010 gray Static-analyzer high-severity count Source code is not publicly available. Slither, Mythril, and Semgrep cannot run against a closed-source Solana BPF binary. Data-cache static_analysis: []. EVM static analysis tools are not applicable to Solana BPF; Solana-specific tools (Xray, Anchor lints) would require source access. RD-F-011 n/a SELFDESTRUCT reachable from non-admin path EVM SELFDESTRUCT opcode does not exist in Solana BPF. The vulnerability class is substrate-specific to EVM. Solana uses account closure patterns (closing accounts via lamport transfer), not SELFDESTRUCT. Structurally not_applicable. RD-F-012 n/a delegatecall with user-controlled target EVM delegatecall does not exist in Solana BPF. Solana programs use Cross-Program Invocations (CPI) with program ID validation, not delegatecall with user-controlled targets. The vulnerability class is substrate-specific to EVM. Structurally not_applicable. RD-F-013 gray Arbitrary call with user-controlled target EVM-style arbitrary call(target, data) does not exist in Solana BPF; however, CPI in Solana does allow program invocations that may include user-influenced parameters. Without source access, CPI validation and allowlisting cannot be assessed. Gray: closed-source program, source not accessible. RD-F-014 gray Reentrancy guard on external-calling functions Solana's account model provides structural reentrancy protection different from EVM. However, Solana CPI reentrancy vulnerabilities have been exploited in other protocols (e.g., Cashio). Without source access, cannot verify that the Jupiter Perps program correctly guards CPI reentrancy paths. Gray: source not accessible. RD-F-015 n/a ERC-777/1155/721 hook without reentrancy guard ERC-777, ERC-1155, and ERC-721 token standards with receiver hooks are EVM-specific and do not exist on Solana. Solana uses SPL Token standard which has no equivalent receiver callback hooks. Structurally not_applicable. RD-F-016 gray Divide-before-multiply pattern Slither divide-before-multiply detector cannot run on Solana BPF (closed-source, non-EVM). Source not available. Gray: tool and source both inaccessible. RD-F-017 gray Mixed-decimals math without explicit scaling Cannot assess without source. Jupiter Perps handles multi-asset positions (SOL/ETH/WBTC/USDC/USDT) which require decimal normalization; the correctness of this cannot be verified. Gray: source not accessible. RD-F-018 gray Signed/unsigned arithmetic confusion Cannot assess without source access. Gray: source not accessible for Solana BPF closed-source program. RD-F-019 n/a ecrecover zero-address return unchecked ecrecover is an EVM precompile function using secp256k1. Solana uses Ed25519 signatures via the ed25519_program or Anchor Signer constraint — not ecrecover. The vulnerability class does not exist in this substrate. Structurally not_applicable. RD-F-020 n/a EIP-712 domain separator missing chainId EIP-712 is an EVM-specific standard for structured data signing. Solana does not use EIP-712. Structurally not_applicable by substrate. RD-F-021 n/a UUPS _authorizeUpgrade correctly permissioned UUPS proxy pattern is EVM-specific. Solana uses BPFLoaderUpgradeable for program upgrades — there is no proxy contract, no _authorizeUpgrade function, and no EIP-1967 proxy pattern. Structurally not_applicable. RD-F-022 n/a Public initialize() without initializer modifier Public initialize() without OpenZeppelin initializer modifier is an EVM/Solidity-specific vulnerability pattern. Solana Anchor programs use #[account(init)] constraints and program-derived accounts for initialization — there is no publicly callable EVM-style initialize() function. The vulnerability class does not exist in this substrate. Per briefing §6: F143 N/A (no EVM proxy; BPFLoaderUpgradeable) applies analogously here. RD-F-023 n/a Constructor calls _disableInitializers() _disableInitializers() is an OpenZeppelin Solidity pattern for EVM proxy contracts. Solana BPF programs have no constructor in the EVM sense. Structurally not_applicable by substrate. RD-F-024 gray Code complexity vs audit coverage Cannot compute cyclomatic complexity or LOC for a closed-source BPF binary. Audit PDF page counts and durations not extractable (PDFs returned 404). Quantitative LOC/audit-day ratio not computable. Gray: source inaccessible and audit metadata not extractable.
RD-F-004 green Audit count Three distinct audit firms confirmed: OtterSec (Oct-Nov 2023), Sec3 (Jan 2024), Offside Labs (Feb-Mar 2024). All three are independent Solana-specialist firms. Exceeds the green threshold of ≥2 distinct firms.
RD-F-006 green Audit-to-deploy gap OtterSec audit ended approximately November 2023; the program was live by late 2023 (first DefiLlama data point 2024-01-29). Gap is approximately 60-75 days from audit completion to confirmed TVL tracking — borderline green/yellow. The meaningful risk (post-launch code drift) is captured in F001 and F139 rather than the initial deploy gap.
RD-F-008 green Ignored bounty disclosure No confirmed incidents involving a pre-disclosed vulnerability against the Jupiter Perps program that was ignored before exploit. The two recorded incidents (X account hack 2025-02-06 and Drift exploit 2026-04-01) do not involve any pre-disclosed Jupiter Perps smart contract vulnerability. No prior direct exploit of the Jupiter Perps program confirmed.
Governance & admin Yellow 28 24 of 24
RD-F-046 red Contract unverified on Etherscan/Sourcify Program PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu confirmed NOT VERIFIED on verify.osec.io as of 2026-05-16. API response: is_verified=false, on_chain_hash empty, executable_hash empty, no repository URL, no commit reference. Source code is not publicly available — 185 jup-ag GitHub repos searched, no perps source repo found. Third-party IDL parsers exist but IDL does not constitute source verification. The Squads v4 4-of-7 authority data does not change this finding — the program binary remains unverifiable. This is the Solana equivalent of unverified at launch (no reproducible build hash). RD-F-026 yellow Upgrade multisig signer configuration (M/N) Squads v4 multisig config AxkJ8oH5aDu4ZRWfsujPtxdb6Vhq4gDehpoReBgrUUSm decoded on-chain: threshold=4, members=7 (4-of-7). Threshold is consistent with peer cohort (Kamino 5/10, Sanctum Router 4/7, Jupiter aggregator v6 4/7). At $691M TVL, 4/7 is a reasonable majority threshold. Member public keys are on-chain but their identities and custody arrangements are not publicly attested. Scored yellow: threshold is adequate; signer identity/custody attestation is missing. RD-F-032 yellow Timelock duration on upgrades Squads v4 time_lock field decoded from multisig config AxkJ8oH5aDu4ZRWfsujPtxdb6Vhq4gDehpoReBgrUUSm: 86400 seconds = 24 hours. This is a real on-chain timelock enforced by the Squads v4 program, not an off-chain policy. Prior assessment (red, assumed Squads v3/no timelock) corrected by on-chain derivation. Note: Jupiter aggregator uses Squads v3 (no timelock field); the perps program uses Squads v4 with a 24h timelock. 24 hours is functional but short; best practice for $691M TVL is 48h+. Scored yellow: timelock is real and on-chain; duration is at the lower acceptable threshold. RD-F-033 yellow Timelock on sensitive actions Squads v4 24h timelock confirmed on the upgrade authority path. Program changes via BPFLoaderUpgradeable routing through the Squads v4 multisig AxkJ8oH5... are subject to 86400-second delay. However: IDL instructions (withdrawFees2, setCustodyConfig, setPoolConfig, setPerpetualsConfig, transferAdmin) are admin-callable and whether these route exclusively through the Squads multisig (vs. a direct admin keypair) is not verifiable from closed source. Prior red (no timelock) corrected; scored yellow: upgrade path has 24h delay; all direct admin instruction routing through the timelock is unverifiable. RD-F-034 yellow Guardian/pause-keeper distinct from upgrader IDL does not contain an explicit pause instruction. setPerpetualsConfig with allow/deny flags (allowSwap, allowIncreasePosition, etc.) provides feature-gating capability. No separate guardian or pause-keeper multisig distinct from the Squads v4 upgrade authority is confirmed. Single Squads v4 multisig controls both upgrade and feature-toggle. RD-F-035 yellow Role separation: upgrade ≠ fee ≠ oracle IDL shows upgrade (BPFLoaderUpgradeable via Squads v4 AxkJ8oH5...), fee withdrawal (withdrawFees2), and oracle config (setCustodyConfig includes oracle parameters) all controlled by the same program admin role. The Squads v4 4-of-7 multisig is the single authority for all three. No evidence of distinct role separation between upgrade authority and protocol parameter admin. RD-F-036 yellow Flash-loanable voting weight JUP DAO uses JUP token staking on Solana Realms (1 staked JUP = 1 vote). Governance formally PAUSED since 2025-06-20 — no active votes. Flash-loan attack on Realms governance is currently moot. De-facto admin power resides with the Squads v4 4-of-7 multisig (not DAO votes), which is flash-loan-immune by design (requires 4 real private key holders). JUP staking checkpoint design not publicly documented. Scored yellow: governance pause + multisig admin substantially reduces flash-loan governance risk; checkpoint mechanism undocumented. RD-F-037 yellow Quorum achievable via single-entity flash loan Governance paused; no active quorum to achieve. Flash-loan quorum attack theoretical but currently moot given DAO pause since 2025-06-20. Program upgrade authority is a Squads v4 4-of-7 multisig — not vulnerable to flash loan attacks (requires colluding private key holders). RD-F-038 yellow Proposal execution delay < 24h Squads v4 time_lock_seconds=86400 (exactly 24 hours) confirmed on-chain from multisig config AxkJ8oH5... Program upgrades through the Squads v4 multisig have a 24-hour delay. This is at the lower acceptable threshold (not <24h, which would be red; not >24h, which would be green). Prior red (assumed no timelock / Squads v3) corrected by on-chain derivation. DAO governance when active has no confirmed additional execution delay. Direct admin instruction paths (if any in closed-source program) may have no delay. Scored yellow: 24h timelock confirmed and real; borderline adequate for $691M TVL. RD-F-040 yellow Emergency-veto multisig present No formal emergency-veto or guardian multisig distinct from the program upgrade authority confirmed for Jupiter Perps. JUP DAO governance is paused. The Squads v4 4-of-7 multisig AxkJ8oH5... is the sole governance body. setPerpetualsConfig feature-flag disabling provides a partial operational veto but is controlled by the same multisig. RD-F-041 yellow Rescue/emergencyWithdraw without timelock IDL contains withdrawFees2 (admin-callable fee extraction from custody accounts) and no explicit rescue or emergencyWithdraw by name. Squads v4 multisig AxkJ8oH5... enforces 24-hour on-chain timelock (time_lock=86400s) for transactions it executes. If withdrawFees2 routes exclusively through the Squads multisig, a 24h delay applies. Closed-source prevents confirming whether a separate admin keypair can call withdrawFees2 directly without the timelock. Scored yellow: upgrade path has 24h delay; direct admin instruction routing through timelock is not verifiable from closed source. Prior yellow (no timelock confirmed) updated: timelock now confirmed for Squads-mediated path. RD-F-042 yellow Admin has mint() with unlimited max JLP is an SPL Mint (27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4). Program upgrade authority (Squads v4 4-of-7 with 24h timelock) controls JLP mint authority indirectly via the upgrade mechanism. SPL Token program allows mint authority to mint arbitrary additional JLP tokens. No hard cap on JLP supply enforced at SPL mint account level; pool accounting enforces indirect limits but upgrade authority can modify that logic. Mint authority changes via upgrade require 4-of-7 approval + 24h delay. Direct mint instruction access via IDL admin is not verifiable from closed source. Scored yellow: meaningful multisig + timelock protection on upgrade vector; direct admin mint paths unverifiable. Gating by 4-of-7 + 24h materially improves over prior assessment (single/unknown admin). RD-F-047 yellow Governance token concentration (Gini) JUP DAO voting paused 2025-06-20. Prior to pause, Jupiter team and founders controlled approximately 20% of JUP supply; one team wallet cast >4.5% of all ballots in a recent proposal. Governance power is highly concentrated. Gini coefficient not calculated but concentration is extreme relative to DAO norms. RD-F-029 n/a Multisig signers co-hosted 7 member pubkeys of the Squads v4 multisig AxkJ8oH5... are on-chain but their affiliations, custody arrangements, and co-hosting status are not publicly attested. Cannot confirm whether keys are co-hosted or independently custody-separated. RD-F-030 n/a Hot-wallet signer flag Cannot confirm whether any of the 7 Squads v4 multisig member keys are used as hot wallets for routine protocol operations. Member keys are on-chain but operational transaction patterns are not publicly documented. RD-F-031 n/a Signer rotation recency Cannot determine signer rotation recency without transaction history enumeration of the multisig config account AxkJ8oH5... JUP DAO voting paused 2025-06-20; no governance-driven signer changes observable in that period. On-chain MemberAdded/MemberRemoved event history not enumerated. RD-F-039 n/a delegatecall/call in proposal execution without allowlist Not applicable to Solana substrate. Solana Realms governance does not use EVM-style delegatecall in proposal execution. BPFLoaderUpgradeable upgrades use specific BPF upgrade instructions, not arbitrary call forwarding with user-supplied targets. Structural architectural difference, not a configuration choice. RD-F-044 n/a Admin wallet interacts with flagged addresses Cannot evaluate wallet interaction history for the 7 Squads v4 multisig member addresses against flagged addresses. Member pubkeys are on-chain (multisig config AxkJ8oH5...) but their identities and on-chain history relative to sanctions/hack databases have not been traced. No flagged interactions found in public OSINT. RD-F-045 n/a Constructor args match governance proposal Not directly applicable in Solana BPFLoaderUpgradeable context — no constructor args in the EVM sense. Program initialization via init instruction covered by audit scope but no governance proposal text for deploy-time args is publicly available. No Realms proposal found for initial deployment configuration.
RD-F-025 green Admin key custody type Program upgrade authority for PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu confirmed as 5myNNmEmPm3UAnJ2ggLEpnTFb9t9Gk8369wKw6n3uAKx via SOLANA_GOVERNANCE.md 4-step on-chain derivation. is_on_curve=FALSE (off-curve PDA, System-Program-owned Squads v4 vault). Transaction trace signature pmpDzKGTLCvhJ7DQ58hFkCEfPB4eorHbDohcjaUBaEpGEWEGeQ21SiVDJvr5EUKfqhmobKYHfV3dGgjsSa1Ztuq resolves the vault to Squads v4 parent multisig AxkJ8oH5aDu4ZRWfsujPtxdb6Vhq4gDehpoReBgrUUSm owned by Squads v4 program SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf. Admin key custody type: on-chain Squads v4 multisig. Updated from not_assessed: on-chain derivation completed by orchestrator via solana_squads.py.
RD-F-027 green Single admin EOA Upgrade authority 5myNNmEmPm3UAnJ2ggLEpnTFb9t9Gk8369wKw6n3uAKx confirmed is_on_curve=FALSE (off-curve PDA, no private key exists). SOLANA_GOVERNANCE.md Step2: off-curve = PDA, cannot be a single-key ed25519 keypair. Transaction trace sig pmpDzKGTLCvhJ7DQ58hFkCEfPB4eorHbDohcjaUBaEpGEWEGeQ21SiVDJvr5EUKfqhmobKYHfV3dGgjsSa1Ztuq confirms this PDA is controlled by Squads v4 program SQDS4ep65T869zMMBKyuUq6aD6EgTu8psMjkvj52pCf via parent multisig AxkJ8oH5aDu4ZRWfsujPtxdb6Vhq4gDehpoReBgrUUSm. No single private key can sign upgrades unilaterally. Single-admin-EOA condition is falsified. Updated from not_assessed: deterministic on-chain result.
RD-F-028 green Low-threshold multisig vs TVL Squads v4 multisig config AxkJ8oH5aDu4ZRWfsujPtxdb6Vhq4gDehpoReBgrUUSm decoded on-chain: threshold=4, members=7 (4-of-7). The low-threshold red trigger is <=2-of-N; 4-of-7 (57% supermajority) is not low-threshold. Consistent with peer protocols at similar TVL (Sanctum Router 4/7, Jupiter aggregator 4/7, Kamino KLend 5/10). At $691M TVL, 4/7 is a reasonable majority threshold. Updated from not_assessed: on-chain decode resolved.
RD-F-043 green Admin = deployer EOA after 7 days Upgrade authority for PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu is 5myNNmEmPm3UAnJ2ggLEpnTFb9t9Gk8369wKw6n3uAKx, confirmed off-curve PDA (is_on_curve=FALSE) — Squads v4 vault PDA, not a deployer EOA. The rug-correlated condition (admin=deployer EOA with no multisig transfer) is falsified by on-chain derivation. Historical timing of the authority transfer at deploy (Nov 2023) cannot be confirmed from available sources, but the current governance posture (Squads v4 4-of-7) is the relevant state. Updated from not_assessed.
RD-F-167 green Deprecated contract paused but pause reversible by live admin No deprecated Jupiter Perps contract surface identified with material TVL. Current program is live with $691M TVS. No evidence of a prior deprecated perps program version holding residual user assets. DefiLlama tracks only the current active program.
Oracle & external dependencies Green 17 17 of 17
RD-F-052 yellow Breakage analysis per dependency Breakage analysis completed for primary dependencies: (a) Edge/Doves offline → fallback to CL+Pyth; if both also stale → halt (no fund loss, but liquidations and new positions frozen during market stress). (b) Chainlink fail → Edge+Pyth still operational, minimal degradation. (c) Pyth fail → Edge+Chainlink still operational, minimal degradation. (d) All-three-stale (tail risk) → freeze at last mark price; liquidations cannot execute. (e) Chaos Labs keeper compromised → manipulated signed prices; cross-validation threshold is defence but exact threshold not public. Yellow because breakage analysis relies on documented oracle logic; actual staleness threshold and deviation bounds are not publicly confirmed, making precise timing of halt scenarios uncertain. RD-F-057 yellow Circuit breaker on price deviation Circuit-breaker logic is effectively present: Edge deviating beyond threshold from Chainlink+Pyth triggers fallback; two-or-more-oracle failure halts price updates rather than propagating bad price. However, the specific deviation threshold value (bps) is not publicly disclosed. Documentation references 'within a set threshold' without quantifying the threshold. Yellow because the mechanism is confirmed present but its adequacy cannot be verified without the threshold value. RD-F-059 yellow Oracle staleness check present Staleness check is present — the fallback logic explicitly evaluates whether Edge is 'stale' before using it. If stale, falls back to Chainlink/Pyth. The 70% reduction in staleness events post-Edge migration (Chainwire 2024-09-12) confirms the staleness check is operational. However, the exact staleness window (seconds) is not publicly disclosed. Yellow because mechanism confirmed but threshold not public. RD-F-062 yellow External keeper/relayer not redundant Doves oracle primary update path is centralised: the updateWithSigner instruction requires signature from Chaos Labs controlled key. If the Chaos Labs keeper goes offline, Edge/Doves primary oracle goes stale and fallback to Chainlink+Pyth activates. The three-oracle fallback architecture provides oracle-level redundancy, but the primary oracle keeper is a single entity (Chaos Labs). Pyth and Chainlink maintain their own keeper networks. Rated yellow because: (a) single-entity primary keeper is a non-trivial dependency on Chaos Labs operational continuity; (b) fallback exists and is documented; (c) impact of Edge keeper outage is degraded (not halted) oracle quality as long as CL+Pyth remain fresh. RD-F-180 yellow Immutable oracle address [★ CANDIDATE — PD-017] Jupiter Perps is a closed-source BPF program on Solana. Oracle price accounts (Doves accounts per IDL: DoVEsk76QybCEHQGzkvYPWLQu9gzNoZZZt3TPiL597e) are referenced in the perps program. IDL-parsing reference hardcodes five per-asset oracle account addresses in CUSTODY_DETAILS, suggesting they are fixed account references in program instructions. Solana has no 'immutable' keyword — the F180 EVM-immutable pattern does not apply directly. However: (1) the closed-source binary prevents confirmation of whether an admin 'updateCustody' instruction exists to change oracle account references without a full binary upgrade; (2) in Solana, changing which oracle account the program reads requires either a dedicated admin instruction OR a full program upgrade via the upgrade authority; (3) the Doves oracle accounts themselves are updateable by the Chaos Labs keeper (the price data within them can be replaced), which is the intended operation — price data flows in, not oracle a RD-F-054 n/a TWAP window duration Protocol does not use DEX-TWAP oracle. All three oracles (Edge, Chainlink, Pyth) are push/pull aggregated oracles publishing off-chain aggregated prices to Solana on-chain accounts. No TWAP window parameter exists in the oracle path because there is no DEX pool oracle. RD-F-055 n/a Oracle pool depth (USD) Protocol does not use DEX pool as oracle source. No pool liquidity depth is relevant to the oracle quality assessment. Oracles are Edge/Chainlink/Pyth push-type feeds with off-chain aggregation. RD-F-056 n/a Single-pool oracle (no medianization) Protocol uses three independent oracle providers with cross-validation logic — the opposite of single-pool non-medianized. This factor targets single-DEX-pool oracles without medianization; the multi-oracle architecture here fully addresses the concern structurally. RD-F-058 gray Max-deviation threshold (bps) Deviation threshold between Edge and Chainlink/Pyth exists per documentation ('within a set threshold') but the exact basis-point value is not publicly disclosed. Closed-source BPF binary prevents on-chain reading of this parameter. Cannot assess adequacy of the configured threshold. RD-F-060 n/a Chainlink aggregator min/max bound misconfig EVM-style Chainlink AggregatorV3Interface minAnswer/maxAnswer bounds are not present on Solana Chainlink feeds. Solana Chainlink uses a different price feed architecture without the EVM aggregator min/max circuit-breaker pattern. Additionally, Chainlink is a fallback oracle here, not the primary. The EVM-specific Chainlink min/max misconfig pattern (F060) is structurally not applicable on Solana substrate. RD-F-061 n/a LP token balanceOf used for pricing Protocol is a perpetual futures DEX, not a lending protocol using LP tokens as collateral pricing input. Mark prices for trade execution and liquidations come from oracle feeds (Edge/Chainlink/Pyth), not from balanceOf of any LP token. JLP token value is derived from AUM of custody assets which are priced by the oracle system — not from a balanceOf call used as price input. RD-F-181 n/a Permissionless-pool lending oracle Jupiter Perps is a perpetual futures DEX with a fixed JLP basket (SOL/ETH/wBTC/USDC/USDT), not a lending protocol with permissionless token listing. F181 targets lending protocols where any user can permissionlessly create a new token pool and the protocol accepts an oracle for that arbitrary token. This architectural failure mode is absent from Jupiter Perps — there is no user-driven collateral listing mechanism, no permissionless pool creation feeding oracle acceptance, and no arbitrary-token collateral path.
RD-F-048 green Oracle providers used Three independent oracle providers confirmed: Edge by Chaos Labs (primary, via Doves on-chain program DoVEsk76QybCEHQGzkvYPWLQu9gzNoZZZt3TPiL597e), Chainlink Solana feeds (validation/fallback), Pyth Network rec5EKMGg6MxZYaMdyBfgwp4d5rB9T1VQH5pDv3Czsk (validation/fallback). Per-asset oracle accounts for SOL, ETH, wBTC, USDC, USDT enumerated from IDL-parsing reference. All providers are established off-chain-aggregated oracle systems, not DEX-spot reads.
RD-F-049 green Oracle role per asset Oracle role per asset confirmed: Edge/Doves = Primary (used when not stale and within threshold of both Chainlink and Pyth); Chainlink = Secondary verification + fallback; Pyth = Secondary verification + fallback. If Edge fails, most recent of Chainlink/Pyth selected if within threshold of each other. Each of the five JLP basket assets (SOL, ETH, wBTC, USDC, USDT) has primary + two fallbacks.
RD-F-050 green Dependency graph (protocols depended upon) Dependency graph: (1) Chaos Labs Edge/Doves oracle program — primary mark-price source; failure triggers fallback to Chainlink+Pyth. (2) Chainlink Solana feeds — fallback. (3) Pyth Network — fallback. (4) SPL Token program — token operations (Solana core infrastructure). (5) Solana validator set — all execution. No external DeFi protocol dependencies (no Aave pool calls, no Uniswap router, no LST provider in price path). JLP basket tokens (USDC, USDT, wBTC) are Solana-native SPL tokens from established issuers, not bridged assets generating protocol-level cross-chain dependency.
RD-F-051 green Fallback behavior on oracle failure Fallback behavior explicitly documented: if Edge is stale, fallback to comparison of Chainlink and Pyth; use most recent of those two if within threshold of each other. If two or more oracles fail simultaneously, no price update occurs — protocol halts rather than propagating a potentially bad price. This is a conservative, safe failure mode. No last-known-price propagation risk identified.
RD-F-053 green Oracle source = spot DEX pool (no TWAP) [★ CRITICAL — GREEN] Primary oracle is Edge by Chaos Labs, a decentralised oracle protocol publishing signed aggregated prices to on-chain Doves accounts (program DoVEsk76QybCEHQGzkvYPWLQu9gzNoZZZt3TPiL597e). No DEX AMM spot price read (no slot0(), no getReserves(), no single-pool spot reference) in the mark-price or liquidation path. Chainlink and Pyth are also push/pull aggregated oracles, not DEX-TWAP. F053 critical condition (spot DEX pool, no TWAP, no fallback) is definitively absent from this protocol's oracle architecture. Three independent sources from distinct domains confirm.
Economic risk Yellow 33 13 of 13
RD-F-063 yellow TVL (current + 30d trend) Current TVL $691.3M (DefiLlama API, 2026-05-16). 30d change -7.2%; 1d change -1.81%. 12-month peak $2.652B (2025-08-13); 74% drawdown from peak coinciding with Q1-Q2 2026 market correction and post-Drift-exploit Solana perps sentiment impact. 90-day CoV 9.75% (mean $769M, std $75M) — moderate volatility. Pool AUM cap confirmed at approximately $700M via pool account schema `maxAum` field; current TVL $691M is within ~1.3% of cap, meaning LP deposits are structurally at near-capacity. Single-pool, single-chain (Solana 100%). Yellow: meaningful drawdown from peak, near-cap concentration risk, single-pool structure. RD-F-064 yellow TVL concentration (top-10 wallet share) Multiple independent analyses cite on-chain data showing over 80% of JLP token supply held by top 10 wallets. This is extreme concentration: coordinated redemption by a small number of large holders could create pool weight imbalances triggering elevated rebalancing fees and liquidity pressure for remaining holders. Not independently verified by this agent via direct Solscan holder query; confidence capped to low-medium. Yellow on available evidence pending curator on-chain verification. RD-F-065 yellow Liquidity depth per major asset Jupiter Perps operates a single $691M JLP pool as the sole liquidity source for all three trading markets (SOL/ETH/WBTC). Key structural risk factors: (1) Trader-PnL counterparty: JLP holders are the direct counterparty to all positions; trader profits drain AUM directly with no insurance fund — JLP absorbs bad debt if any occurs. (2) Current OI/AUM utilisation: $97.5M OI / $691M AUM = 14.1% — moderate, not alarming. (3) Feb 2025 stress test: $400M+ in positions liquidated in 24h; JLP declined 7.78% vs SOL -15.87%; no bad debt recorded — demonstrated resilience under high-stress scenario. (4) Liquidation keeper risk: liquidations depend on whitelisted team-operated bots; keeper downtime during volatility could allow positions to fall into negative equity. (5) Redemption mechanics: JLP redeemable continuously but subject to dynamic rebalancing fees if exiting into an underweight custody; pool weight buffer ±20% (2000 bps). No 2%/5% on-chain slippage depth directly measurable for JLP (it RD-F-066 n/a Utilization rate (lending protocols) Lending-only factor per PD-024 taxonomy resolution. Jupiter Perps is a GMX-class perpetual DEX, not a lending protocol. There is no borrow/supply ratio per market in the lending sense. Data-cache confirms lending_protocol: false and borrow.present: false. The perps-specific OI/AUM utilisation rate (14.1%) is captured under RD-F-065. RD-F-067 n/a Historical bad-debt events Lending-only factor per PD-024 taxonomy resolution. Jupiter Perps is not a lending protocol and does not have bad debt in the lending sense (undercollateralized borrower positions creating protocol deficit). The perps structural analogue — JLP absorbing net trader profits when traders are profitable — is captured under RD-F-065. As a documented note: no bad-debt episodes confirmed in Jupiter Perps history; the Feb 2025 $400M liquidation cascade was processed without any socialized loss. The April 2026 Drift exploit involved JLP held as Drift collateral but did not create bad debt within Jupiter Perps own program. RD-F-068 n/a Collateralization under stress Lending-only factor per PD-024 taxonomy resolution. Collateralization ratio stress scenario applies to lending protocols where borrower collateral can fall below 110% of borrowed value, threatening solvency. Jupiter Perps does not have a lending market collateralization ratio. Data-cache confirms lending_protocol: false. RD-F-069 n/a Algorithmic / under-collateralized stablecoin Lending-only factor per PD-024. Jupiter Perps is a perpetual futures exchange (protocol_type: perps), not a stablecoin protocol. Neither JLP nor any protocol output token is an algorithmic or under-collateralized stablecoin. Profile confirms Category: PERPS, original codebase, not a stablecoin issuer. RD-F-070 n/a Empty cToken-style market (zero supply/borrow) CRITICAL FACTOR (★) — not_applicable. Jupiter Perps is not a Compound V2 fork and not a lending protocol. It holds no cToken-style markets with totalSupply/totalBorrow accounting. JLP is an SPL token on Solana representing a proportional share of the five-custody pool AUM — this is structurally different from a cToken. The empty-market donation attack requires: (1) a share-based vault or cToken market, (2) the ability to donate tokens directly to that market to inflate exchange rate, and (3) a zero-supply state that allows the attacker to become the sole depositor. None of these conditions apply to Jupiter Perps. Profile §5 confirms the codebase is original (not a Compound fork). Data-cache confirms lending_protocol: false. gap_reason: not_applicable. RD-F-071 n/a Seed-deposit requirement for new market listing Lending-only factor per PD-024. Seed-deposit requirements for new market listings apply to Compound/Aave-style lending protocols. Jupiter Perps has three hardcoded trading markets (SOL, ETH, WBTC) defined in custody accounts — no new market listing governance process involving seed deposits exists. RD-F-072 n/a Market-listing governance threshold Lending-only factor per PD-024. Market-listing governance threshold (permissionless/low/high/no new listings) applies to lending protocols where new collateral assets can be listed. Jupiter Perps does not have a market-listing governance mechanism; adding a new trading market would require a program upgrade via the upgrade authority (governance-admin scope), not a discrete market-listing vote. RD-F-073 n/a Oracle-manipulation-proof borrow cap Lending-only factor per PD-024. Oracle-manipulation-proof borrow cap applies to lending protocols where borrow caps per asset must be sized relative to oracle pool depth to prevent manipulation-driven over-borrowing. Jupiter Perps does not have per-asset borrow caps in the lending sense. Per-asset position size limits are set via maxGlobalLongSizes and maxGlobalShortSizes in custody accounts (a different mechanism assessed by the oracle-dependency analyst). RD-F-074 n/a ERC-4626 virtual-share offset (OZ ≥4.9) Lending-only and EVM-specific factor per PD-024. The ERC-4626 virtual-share offset (OpenZeppelin >= 4.9) is an EVM standard for vault share inflation protection. JLP is an SPL token on Solana — not an ERC-4626 vault and not subject to the Solidity share-inflation vector. The JLP token mint is at 27G8MtK7VtTcCHkpASjSDdkWWYfoqT6ggEuKidVJidD4 (Solana SPL Mint). No ERC-4626 hook or first-depositor share inflation vector applies to SPL token architecture. RD-F-075 n/a First-depositor / share-inflation guard Lending-only factor per PD-024. First-depositor / share-inflation guard applies to EVM vaults (ERC-4626, cToken-style) where an early depositor can manipulate the share price by donating tokens to an empty vault. JLP uses AUM/supply share pricing on Solana where the Perps BPF program controls token issuance — the mint authority is the program PDA, not an open call. No first-depositor share-inflation attack surface exists in this architecture.
Operational history Green 13 15 of 15
RD-F-089 red Insurance coverage active No active insurance coverage found for the JLP pool ($691.3M TVL) on any major platform. Nexus Mutual: Ethereum-based; no Solana protocol cover product confirmed. Sherlock: no Jupiter Perps coverage or contest found. Immunefi: no Jupiter Perps insurance product (the OOOSec bug bounty announced May 2025 is a separate disclosure-incentive program, not an insurance product). Unslashed: no coverage identified. JLP holders bear full financial risk of net trader P&L — $691M pool with no insurance backstop is a material gap for a protocol of this scale. RD-F-084 yellow TVL stability (CoV over 90d) TVL 30-day change is -7.2% and 1-day change is -1.81%. The profile notes a 90-day mean of $769.3M vs. current $691.3M (~-10% below the 90-day mean). The broader peak-to-current decline from $2.652B (2025-08-13) to $691M is ~74%, coinciding with Q1-Q2 2026 crypto market correction and post-Drift-exploit Solana perps sentiment. The 90-day CoV is estimated above the green threshold given declining trajectory. Primary driver is market-wide, not an internal protocol failure — yellow (not red) is appropriate. RD-F-080 n/a Days since last exploit No prior direct exploit of Jupiter Perps — 'days since last exploit' is not meaningful. RD-F-081 n/a Post-exploit response score No prior exploit to evaluate post-exploit response quality against. RD-F-082 n/a Post-mortem published within 30 days No prior exploit for which a post-mortem could have been published. RD-F-083 n/a Auditor re-engaged after last exploit No prior exploit requiring auditor re-engagement. Three audit firms engaged proactively pre-launch and through Q1 2024 (OtterSec, Sec3, Offside Labs) — not in response to any exploit. RD-F-085 n/a Incident response time (minutes) No direct protocol exploit has occurred, so there is no incident-response clock to measure. The 2025-02-06 X account hack (frontend/social, $0 protocol impact per U2) saw the account recovered the same day with co-founder Meow posting via alternative channels within hours, but this is a frontend incident not a protocol exploit and does not define F085.
RD-F-076 green Protocol age (days) Jupiter Perpetuals launched approximately November 2023 (OtterSec audit scope Oct 3 – Nov 15, 2023; DefiLlama first TVL data point 2024-01-29 at $87.6M). Age at 2026-05-16: ~912 days (~30 months). Well above any A-grade eligibility floor.
RD-F-077 green Prior exploit count Zero direct exploits of the Jupiter Perps program (PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu). U2 applied: 2025-02-06 X account hack = frontend/social, $0 protocol impact. U4 applied: 2026-04-01 Drift exploit drained JLP as victim collateral from Drift vaults — not a Jupiter Perps contract exploit, excluded from base-rate. Hacksdatabase has no jupiter-perps entry. Unsubstantiated Binance Square '$50M hack 2025-08-24' excluded — no primary source.
RD-F-078 green Chronic-exploit flag (≥3 incidents) Exploit count = 0 (see F077). Chronic flag (≥ 3 exploits) is false. No pattern of repeated compromises.
RD-F-079 green Same-root-cause repeat exploit Zero prior direct exploits of Jupiter Perps (U4 confirmed: Drift JLP-as-victim excluded). Same-root-cause repeat = false by construction.
RD-F-086 green Pause activations (trailing 12 months) No evidence of deliberate protocol pause activations in the trailing 12 months. Solscan transaction history for the perps program address shows no administrative halt events. Jupiter Perps does not document a pause function in its developer docs.
RD-F-087 green Pause > 7 consecutive days No pause events identified, therefore no extended pause (> 7 consecutive days) in the last 12 months.
RD-F-088 green Re-deployed to new addresses in last year No full redeploy to a new address set in the last 12 months. The program address PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu has been continuous since launch. Data cache has_legacy_v1 = false.
RD-F-166 green Deprecated contracts still holding value No deprecated contracts identified. Jupiter Perpetuals operates from a single active program (PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu) with associated pool/custody accounts. No prior version or sunset contract found. Data cache has_legacy_v1 = false.
Real-time signals Green 13 22 of 22
RD-F-101 yellow Large governance proposal queued Governance proposal queued signal (T-09 v1 launch; production-live in principle). JUP DAO governance formally paused since 2025-06-20; on-chain Realms voting suspended. No ProposalCreated/ProposalQueued events expected from paused Realms DAO during the pause period. The signal is applicable but structurally reduced: the DAO channel is inactive, so the on-chain governance proposal path is dormant. The program upgrade authority retains admin power and can execute BPFLoaderUpgradeable upgrades without a queued proposal, which is a governance-proposal-class risk that this signal does not capture in EVM form. Scored yellow because the signal is applicable but the primary detection channel (DAO proposal monitoring) is inactive due to the governance pause, creating a monitoring gap for the most sensitive admin action (program upgrade). RD-F-105 yellow DNS/CDN/frontend hash drift DNS/frontend hash drift signal (T-09 v1 phase 2; not production-live). Applicable to jup.ag primary frontend. Official jup.ag DNS/TLS posture: no confirmed changes detected via public cert transparency logs as of 2026-05-16 — official domain appears stable. However, two impersonator/typosquat domains confirm active threat actor interest in the Jupiter brand: (a) jup.ag-rewards.lat — registered 2026-03-11, mimicked official site title, currently offline; (b) jup-ag.live — low-risk crypto drainer, currently offline. These are F161 class (Cat 11), not F105 fires against the official domain. Scored yellow because: (1) typosquat activity is within the monitoring window and confirms elevated social engineering risk for the frontend surface; (2) the 2025-02-06 X account hack precedent shows Jupiter is an active high-value target for frontend/social engineering attacks; (3) a F105 monitoring baseline has not been established for jup.ag (change-management allowlist not documented). Official dom RD-F-109 yellow Social-media impersonation scam spike Social-media impersonation scam-spike signal (T-09 phase-2 signal). Applicable to Jupiter — active X (@JupiterExchange, >500k followers), Discord, Telegram channels. The 2025-02-06 X account hack is a direct real-world precedent: attacker hijacked the official account to promote fake $MEOW and DCOIN tokens; JUP price dropped 12%; traders lost an estimated $20M+ via the scam tokens. This was not a fake impersonator account but a hijacked official account — a related but distinct event class. Post-hack account was recovered; $0 to protocol funds. As of 2026-05-16 no active social-media impersonation spike detected. Historical precedent elevates monitoring priority. Scored yellow because: (1) confirmed prior attack via this vector; (2) ongoing typosquat domain activity (F161); (3) Jupiter is a known high-value social engineering target. RD-F-090 gray Mixer withdrawal → protocol interaction Mixer-withdrawal-to-protocol-interaction signal. Tornado Cash is EVM-only and does not exist on Solana. Solana-native privacy routing tools lack public cluster-feed coverage at EVM-equivalent fidelity. The EVM monitoring stack (Tornado Cash deposit address clustering + on-chain interaction scan) is architecturally inapplicable to the Solana substrate. Signal concept translates in principle but detection infrastructure does not exist for Solana at this assessment. Requires licensed Solana TI feed (Chainalysis Solana coverage, TRM Labs Solana) to evaluate. RD-F-092 n/a Unusual mempool pattern from deployer wallet Unusual mempool pattern from deployer wallet. EVM mempool monitoring is architecturally specific to Ethereum and EVM chains — Solana does not have an equivalent persistent public mempool. Transactions propagate directly to validators on Solana. The EVM monitoring stack cannot be applied to the Solana upgrade authority wallet. A Solana-native equivalent would require monitoring the upgrade authority wallet's transaction history on Solscan for unusual patterns, which is a different signal design not covered by the T-09 spec for this factor. RD-F-093 n/a Abnormal gas-price willingness from attacker wallet Abnormal gas-price willingness signal. Solana uses priority fees (compute units / lamports per compute unit), not the EVM gas-price mechanism. The signal definition fires when an attacker wallet pays 5× median gas to race MEV — this is architecturally specific to EVM. Solana priority fee anomaly detection would be a different signal design. The 5× EMA gas-price baseline has no direct Solana equivalent. RD-F-094 n/a New contract with similar bytecode to exploit template New contract deployment with similar bytecode to protocol target. EVM bytecode similarity requires 4-byte selector database and EVM bytecode comparison tooling (Etherscan verified-source comparison). Solana BPF programs use a different binary format (BPF ELF); no equivalent public bytecode-similarity database exists for Solana programs. The Solana program verification ecosystem (verify.osec.io) focuses on reproducibility matching a known build, not similarity-to-exploit-template across programs. RD-F-095 n/a Known-exploit function-selector replay Known-exploit-template function-selector replay signal. Relies on 4-byte EVM function selector database for pattern matching. Solana BPF programs use Anchor instruction discriminators (8-byte hash of instruction name), not EVM 4-byte selectors. No public 'known-exploit-template for Solana perps' database exists comparable to the EVM selector-replay DB. The signal's detection mechanism is architecturally specific to EVM. RD-F-096 n/a New ERC-20 approval to unverified contract from whale New ERC-20 approval to unverified contract signal. ERC-20 approval mechanism (approve + transferFrom) is EVM-specific. Jupiter Perps uses SPL Token program (Solana) for all token operations. JLP is an SPL Mint, not an ERC-20. SPL Token delegation (`Approve` instruction) is architecturally different and not monitored via the ERC-20 approval pattern. EVM Etherscan `tokensApproved` event monitoring does not apply to Solana. RD-F-100 gray Flash loan >$10M targeting protocol tokens Flash-loan origination targeting protocol signal (T-09 v1 phase 2; not production-live). Partially applicable to Solana — Solana lacks EVM-style flash-loan infrastructure (Aave/Balancer/Uniswap V3 flashLoan). Solana DeFi has Kamino and Marginfi flash-loan primitives, but the EVM monitoring stack does not translate. Jupiter Perps is a perps DEX (not a lending protocol), so the oracle/lending-market interaction sub-rule applies differently. The Drift 2026-04-01 attack used oracle manipulation via fake token seeding on Raydium — not a flash loan against Jupiter Perps. No Solana flash-loan-targeting events against Jupiter Perps identified. Signal cannot be assessed with current EVM-spec tooling on Solana substrate. RD-F-102 n/a Admin/upgrade transaction in mempool Admin/upgrade tx in mempool signal (T-09 v1 phase 2). Solana does not have an EVM-equivalent persistent public mempool — transactions propagate directly to validators. Program upgrade on Solana is executed via BPFLoaderUpgradeable Upgrade instruction and is visible on-chain (Solscan) after confirmation, not pre-confirmable via EVM-style mempool monitoring. The EVM mempool listener stack (Flashbots, Blocknative, geth txpool) is architecturally specific to EVM chains and cannot be deployed against Solana. A Solana-native equivalent (monitoring Solana tx gossip or Solscan for BPFLoaderUpgradeable Upgrade instructions targeting PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu) is technically feasible but is not covered by the T-09 EVM-spec. Upgrade authority UNVERIFIED (pipeline null), compounding the monitoring gap. RD-F-103 n/a Bridge signer-set change proposed/executed Bridge signer-set change signal (T-09 v1 launch). Jupiter Perps is single-chain Solana only with no bridge surface. Data cache: layerzero.present=false, is_a_bridge=false, has_bridge_surface=false. No bridge validator/signer set exists to monitor. Signal is architecturally not applicable to a single-chain non-bridge protocol. RD-F-106 n/a Cross-chain bridge unverified mint pattern Cross-chain bridge tx pattern signal. Jupiter Perps is single-chain Solana only. Data cache: layerzero.present=false, is_a_bridge=false. No cross-chain bridge activity to monitor. Signal is architecturally not applicable. RD-F-107 n/a Admin EOA signing from new geography/device Admin EOA signing from new geography/device fingerprint signal. Requires off-chain signing telemetry data (device fingerprints, IP geolocation of signing events) which is not publicly available for Solana program upgrade authority signers. The 2025-02-06 X account hack involved US-based IP attribution but this is a social media account event, not admin key signing telemetry. Signal is not assessable without private/partner-feed data on signing infrastructure. RD-F-108 n/a GitHub force-push to sensitive branch GitHub force-push / sensitive-branch push signal. Jupiter Perps is closed-source — no public jup-ag/perps contract repository exists (185 jup-ag public repos searched; no perps source repo found). Without a public perps-specific repository, this signal cannot fire — there is no branch to monitor for force-push. Adjacent jup-ag repositories (SDKs, aggregator, IDL tools) are not the attack surface for this signal. Signal is structurally inapplicable to a closed-source Solana perps program. RD-F-110 gray Unusual pending/executed proposal ratio Unusual pending/executed proposal ratio signal. JUP DAO voting is formally paused since 2025-06-20. All proposals are effectively in suspended state — the ratio of pending to executed proposals is undefined or fixed at zero new executions during the pause. Signal cannot fire meaningfully during a DAO pause period; baseline ratio is undefined. The signal is applicable in principle but not assessable during the governance suspension. RD-F-182 n/a Security-Council threshold reduction (RT) Security-Council threshold-reduction real-time signal (batch-24, Cat 6B). Jupiter Perps does not have a named Security Council architecture analogous to Drift's 3/5 Security Council structure. The JUP DAO operates via Realms token voting (paused since 2025-06-20), not a Security Council model. The program upgrade authority (Squads multisig if off-curve per SOLANA_GOVERNANCE.md derivation) would be the closest functional analogue, but: (1) the upgrade authority is UNVERIFIED — pipeline returned solana_multisigs=[]; (2) the DAO pause means no governance queue exists through which a threshold reduction would be proposed and visible; (3) even if the upgrade authority uses Squads, threshold changes would be observable on-chain but no monitoring baseline exists without knowing the current threshold. Signal cannot engage because the Security Council architecture is absent and the upgrade authority identity is unverified. This is an architectural absence (not a suppression condition).
RD-F-091 green Partial-drain test transactions Partial-drain test transaction signal. Applicable to Jupiter Perps custody vaults (SOL, ETH, wBTC, USDC, USDT) which are the TVL-bearing Solana accounts. Small-value drain patterns from custody PDAs would be detectable on Solscan. No partial-drain test transactions identified on custody accounts (SOL custody vault BUvduFTd2sWFagCunBPLupG8fBTJqweLw9DuhruNFSCm and sibling custodies) via public OSINT as of 2026-05-16. No unusual small-value outflows from custody PDAs in recent transaction history reviewed. Signal would not fire today.
RD-F-097 green Sybil surge of identical-pattern transactions Sybil surge of identical-pattern transactions. Applicable in principle to Solana — Jupiter Perps custody account transactions are publicly observable on Solscan. No sybil surge patterns identified against Jupiter Perps core accounts (pool account 5BUwFW4nRbftYTDMbgxykoFWqWHPzahFSNAaaaJtVKsq or custody PDAs) via public OSINT as of 2026-05-16. T-09 phase-2 signal; detection requires Solana-native tx-pattern clustering not yet implemented. Signal would not fire today.
RD-F-098 green TVL anomaly — % drop in <1h TVL anomaly — severe drop signal (T-09 v1 launch, production-live). Current TVL $691.3M (2026-05-16). 30-day change -7.2%; 1-day change -1.81%. 30-day median approximately $769M. TVL_now / TVL_baseline_30d ≈ 0.899 — above the 0.70 tier-A threshold required for the grade-flip. Tier-B sub-rule (TVL_now / TVL_(t-15m) < 0.93 AND top-3 outflows to unknown addresses) not met intraday. The -74% drawdown from the 2025-08-13 peak ($2.652B) is a multi-month market correction, not a 1-hour TVL anomaly event. Suppression condition: sector-wide decline in crypto market Q1-Q2 2026 is the causal factor; the signal's sector-wide correlation suppression rule applies. Signal would NOT fire today.
RD-F-099 green Oracle price deviation >X% from secondary Oracle price deviation signal (T-09 v1 phase 2; not production-live). Applicable to Jupiter Perps multi-oracle architecture: Edge (Chaos Labs primary) + Pyth (fallback) + Chainlink (second fallback). Detection threshold: |primary − secondary| / primary > 1% sustained ≥4 blocks. Current posture: Chaos Labs deployed real-time anomaly detection for Jupiter price feeds, running 24/7. No public oracle deviation events reported as of 2026-05-16. Multi-oracle fallback logic provides structural resilience against single-source failure. Signal would NOT fire today.
RD-F-104 green Stablecoin depeg >2% on shared-LP venue Stablecoin depeg signal (T-09 v1 launch; production-live). Directly applicable: JLP basket contains USDC and USDT (estimated 40-50% of JLP composition), well above the 5% TVL threshold. Depeg of either at >2% on ≥2 venues sustained ≥30 min would fire the signal. Current posture: USDC and USDT at $1.00 on primary venues (Chainlink aggregator data) as of 2026-05-16. No stablecoin depeg event active. Signal would NOT fire today.
Dev identity & insider risk Green 7 16 of 16
RD-F-113 yellow Team other-protocol involvement history Meow's prior projects (Kyber, WBTC, Handshake) are all legitimate and non-rugged. Siong Ong's prior projects (GraffitiGeo, Envoy) are legitimate startup exits. Ben Chow (co-founder of Meteora, a closely affiliated protocol) resigned Feb 2025 amid LIBRA memecoin controversy; Meow initiated an independent Fenwick & West investigation and stated no Jupiter/Meteora financial wrongdoing. Investigation ongoing as of Feb 2025 with no confirmed misconduct. Ben Chow is no longer on Jupiter team. Yellow for the unresolved LIBRA controversy involving an affiliated team member, not confirmed red. RD-F-115 yellow Prior rug/exit-scam affiliation No rug or exit-scam affiliation confirmed for Meow or Siong Ong. Ben Chow (ex-Meteora, affiliated but not Jupiter-direct) resigned amid LIBRA controversy; investigation launched, no confirmed wrongdoing. The Feb 2025 X account hack saw the attacker promote a $MEOW scam token — this was attacker-initiated, not a team action. Meow explicitly denied wrongdoing and initiated Fenwick & West review. Yellow rather than red: unresolved investigation on an affiliated team member, not a confirmed rug or insider exit-scam for Jupiter Perps specifically. RD-F-123 yellow Sudden admin-rescue/ACL change without discussion [★ CRITICAL] The perps program upgrade authority is UNVERIFIED (pipeline returned solana_multisigs: []). Governance voting was formally paused 2025-06-20 (DL News source), meaning any upgrade during the pause would occur without DAO vote — a structural environment where admin changes could proceed without governance-forum-precedented discussion. The perps program is closed-source, so GitHub PR/issue audit is not available to check for admin-rescue events. No specific admin-rescue or ACL change event confirmed in OSINT. Yellow: structural gap + governance pause environment, not a confirmed insider-implant event. RD-F-117 n/a ENS/NameStone identity bound to deployer ENS and NameStone are Ethereum-specific identity systems with no Solana equivalent. Jupiter Perps is a Solana-native protocol (BPF program on Solana mainnet). No ENS binding is possible or applicable for this substrate. RD-F-184 gray Real-capital social-engineering persona F184 (real-capital social-engineering persona, ≥$1M deposits to build credibility) references the C17 pattern exemplified by the Drift exploit: UNC4736 deployed >$1M real capital over 6 months building credibility before the pre-signed-transaction attack on Drift's Security Council. For Jupiter Perps: no evidence of any team-contributor or external-integrator persona having deployed ≥$1M specifically to build credibility ahead of a social-engineering attack on the perps program upgrade authority or Squads multisig signers. The upgrade authority is unverified, preventing full signer-identity review against this pattern. Curator validation required: cross-reference governance-admin-analyst's upgrade authority signer identities against any anomalous ≥$1M deposit pattern in the 180 days preceding any admin change. The Drift comparator is the relevant reference class for this review.
RD-F-111 green Team doxx status Meow (@weremeow) is a multi-year consistent pseudonym with verifiable prior-project track record: Kyber contributor, WBTC co-founder, Handshake founding contributor, 4+ years public Jupiter presence. Siong Ong (@sssionggg) is publicly named with real-name conference keynote (Solana Breakpoint 2024), podcast appearances, UIUC CS background, and YC-startup history. Categorical classification: Meow = consistent-pseudonym-with-track-record; Siong Ong = real-name.
RD-F-112 green Team public accountability surface Meow: podcast appearances (Bankless, VALR blog, The Defiant), active X @weremeow, GitHub @whereismeow, WBTC/Handshake attribution providing crosschecked background. Siong Ong: real-name conference keynote, Solfate podcast ep.42, UIUC CS degree confirmed, startup history (GraffitiGeo YC-funded → sold to Loopt; Envoy a16z-funded). Combined public trail is substantive for the protocol's team profile.
RD-F-114 green Deployer address prior on-chain history The perps program upgrade authority (deployer-equivalent on Solana) is unverified by pipeline, but the jup-ag team's on-chain track record is consistent with normal-dev-history: Jupiter aggregator launched Oct 2021, perps launched Nov 2023, three third-party audits (OtterSec, Sec3, Offside Labs), $2.6B peak TVL. No rug-deployer pattern found in OSINT or hacksdatabase cross-reference. Score green on institutional track record; confidence is low pending upgrade authority on-chain verification by governance-admin-analyst.
RD-F-116 green Contributor tenure at admin-permissioned PR The perps program is closed-source (no public jup-ag/perps repo found across 185 public repos); direct PR-tenure audit is not possible. Admin-permissioned changes proceed via the upgrade authority (unverified Squads multisig). Meow and Siong Ong have 4+ years continuous public Jupiter involvement (2021–2026), giving them the longest possible tenure for any admin-permissioned change on this program. GitHub org public members (@0xanmol, @whereismeow) have multi-year GitHub tenure. Scored green on available evidence; would be reassessed if a new contributor was found with short tenure holding admin access.
RD-F-118 green Handle reuse across failed/rugged projects No evidence that @weremeow, @sssionggg, @whereismeow, or any publicly attributed Jupiter team member has been associated with a prior rugged or failed project under a different alias. Meow's prior handles are consistent across all platforms. Siong Ong's identity is traced back to known startup contexts with no alias reuse across failed projects.
RD-F-119 green Commit timezone consistent with stated geography jup-ag GitHub organization has 185 public repos with consistent activity. Meow has stated Singapore/US background in public interviews; Siong Ong attended UIUC (US-timezone base). No anomalous commit-time distribution patterns observed in public repository activity. Note: perps program source is closed, so primary commit audit is limited to open repos (docs, SDKs, tooling). No timezone anomaly signal consistent with DPRK-implant pattern found.
RD-F-120 green Video-off/voice-consistency flag Meow has participated in multiple podcast appearances (Bankless, VALR, The Defiant) with consistent voice and persona. Siong Ong appeared on-camera at Solana Breakpoint 2024 (real-name keynote confirmed; video available via Solana Compass). Ben Chow had LinkedIn and conference presence. No video-off or voice-inconsistency flag in any accessed source. Post-2025-02 X hack, Meow's communications remained consistent.
RD-F-121 green Contributor OSINT depth score Meow: IQ.wiki profile, multiple podcast appearances, WBTC/Handshake attribution crosschecked — curator OSINT depth score estimated 3/5 (strong pseudonymous track record, not fully doxxed). Siong Ong: UIUC CS, YC pedigree, a16z-backed startup history, Breakpoint 2024 keynote — curator OSINT depth score estimated 4/5 (effectively doxxed at startup-founder level). Combined team OSINT depth is above-average for a Solana perps protocol.
RD-F-122 green Contributor paid to DPRK-cluster wallet No contributor payment-to-wallet data found routing toward DPRK cluster. Upgrade authority wallets are unverified, preventing full trace. No OFAC SDN match for any publicly identified team member. The Drift 2026-04-01 attacker used Jupiter's aggregator swap interface to convert stolen assets — this is a passive-venue use (U4 rule), not a contributor payment channel, and does not implicate any Jupiter contributor wallet.
RD-F-124 green Deployer wallet mixer-funded within 30 days [★ CRITICAL] No Tornado Cash, Railgun, or similar mixer interaction found for the Jupiter perps program deployer or the jup-ag team wallets in any OSINT source. The program was deployed circa 2023-10 by an institutional team with three independent auditors engaged within the same timeframe (OtterSec Oct–Nov 2023, Sec3 Jan 2024, Offside Labs Feb–Mar 2024), providing strong circumstantial evidence of clean funding. Solscan page returned 403 (direct page inaccessible for wallet-level trace), but absence of any mixer flag across multiple OSINT sweeps and institutional deployment profile support green. Confidence: medium.
RD-F-125 green Deployer linked within 3 hops to DPRK/Lazarus [★ CRITICAL] No DPRK/Lazarus cluster proximity found for Jupiter Perps program deployer or team members. The Drift 2026-04-01 exploit (DPRK-attributed UNC4736/Lazarus, ~$155.6M JLP drained from Drift vaults) involved: (a) JLP as victim collateral in Drift's own vaults — Jupiter Perps was the passive counterparty, not compromised; (b) the attacker used Jupiter's aggregator swap interface post-exploit to convert stolen assets to USDC — a passive-venue use. Per U4 rule: this event is classified as F158 yellow (Cat 11 passive venue) and explicitly keeps F125 green. No OFAC SDN match for any Jupiter team member. TRM Labs and Elliptic post-mortems confirm Jupiter team was not implicated. No rubric-level DPRK escalation triggered.
Fork / dependency lineage Green 0 10 of 10
RD-F-126 n/a Is-a-fork-of Jupiter Perps is an original implementation — not a fork of any existing protocol. Profile §5 explicitly states: 'Not forked / original. Jupiter Perps is an original implementation by the Jupiter (jup-ag) team in Anchor/Rust. There is no evidence of a fork relationship with any existing protocol.' No fork declaration found in jup-ag GitHub org. Architecture is analogous to GMX v1 conceptually but codebase is original. RD-F-127 n/a Upstream patch not merged No upstream fork relationship exists. Factor not applicable by construction — no upstream to track for unmerged patches. RD-F-128 n/a Upstream vulnerability disclosure (last 90d) No upstream fork relationship exists. Factor not applicable by construction. RD-F-129 n/a Code divergence from upstream (%) No upstream fork relationship exists. Code divergence from upstream cannot be measured when there is no upstream. Factor not applicable by construction. RD-F-130 n/a Fork depth (generations from original audit) Original codebase with fork depth 0 by definition (no generations of forking). Factor measures fork-of-fork depth; not applicable when there is no fork chain. RD-F-131 n/a Fork retains upstream audit coverage Not a fork; the protocol has its own direct audits (OtterSec, Sec3, Offside Labs). Factor measures whether fork retains upstream coverage — not applicable for an original codebase with direct audits. RD-F-132 n/a Fork has different economic parameters than upstream No upstream fork relationship exists. Economic parameter deviation from upstream cannot be measured without an upstream. Factor not applicable by construction. RD-F-133 gray Dependency manifest uses unpinned versions Closed-source program; no public Cargo.toml, package.json, or foundry.toml for the perps program is accessible. Data-cache: github.repo_url: null, github.foundry_toml_present: false. Dependency pinning cannot be assessed without access to the manifest files. RD-F-135 gray Shared-library version with known-vuln status Closed-source program; library versions (Anchor version, solana-program version, etc.) not determinable from any public source. Data-cache oz_contracts_version: null. Third-party IDL-parsing repos do not expose server-side Cargo.toml. Gray: library versions not determinable.
RD-F-134 green Dependency had malicious-release incident (last 90d) The Anchor framework and Solana program crates (the most likely core dependencies) have no malicious-release advisories in the trailing 90 days per GHSA search. No specific dependency manifest is accessible (closed-source), but the core Solana/Anchor ecosystem has not had a supply-chain malicious release incident in this window. Low confidence green due to inability to verify exact dependency list.
Post-deploy hygiene & change mgmt Red 60 13 of 13
RD-F-136 red Deployed bytecode matches signed release tag No public source repository exists for Jupiter Perps. No signed release tags. verify.osec.io confirms is_verified=false with no on-chain hash or executable hash. Deployed bytecode cannot be matched to any signed commit. Structural red for closed-source program with no build reproducibility. RD-F-145 red Deployed bytecode reproducibility No public source repository; no verifiable build toolchain; verify.osec.io confirms is_verified=false with no on-chain hash or executable hash. Bytecode is NOT reproducible from public sources. Structural red for closed-source program with no build reproducibility. RD-F-138 yellow Hot-patch deploys without timelock (last 30 days) Squads v4 time_lock=86400s (24 hours) confirmed on-chain. Any program upgrade in the last 30 days that routed through the Squads v4 multisig AxkJ8oH5... would have had a 24-hour delay before execution — not a hot-patch by the Squads definition. Whether any upgrades occurred in the last 30 days cannot be confirmed (Solscan 403). Prior assessment (structural absence of timelock, yellow) updated: timelock now confirmed for Squads-mediated upgrades. Scored yellow: timelock confirmed (not zero-delay); upgrade frequency in last 30d unverifiable; direct admin instruction paths (if any exist in closed source) could bypass the timelock. RD-F-139 yellow Post-audit code changes without re-audit Three original audits (OtterSec Oct-Nov 2023, Sec3 Jan 2024, Offside Labs Feb-Mar 2024) covered pre-April-2024 binary. Offside Labs conducted a Perpetuals Exchange audit in May 2025 (OffsideLabs/reports GitHub), substantially reducing the drift gap. The Squads v4 24h timelock adds a delay on upgrades but is not a substitute for explicit audit coverage. Closed-source prevents independent binary diff verification of post-May-2025 changes. Scored yellow: May 2025 audit significantly reduces drift gap; ongoing closed-source prevents continuous verification; any post-May-2025 upgrades not confirmed audited. RD-F-185 yellow Bridge rate-limiter / chain-pause as positive mitigant Jupiter Perps is Solana-only with no bridge surface — no per-window bridge outflow rate-limiter applies. The Squads v4 24h timelock (time_lock=86400s confirmed on-chain) is a positive mitigant for upgrade-based drains. setPerpetualsConfig allows disabling features (allowSwap, allowIncreasePosition) providing a partial protocol pause controlled by the Squads v4 4-of-7 multisig. Solana has validator-set chain-halt capability (chain-level emergency stop) but this is not a protocol-level control. No formal protocol-level rate-limiter confirmed. Scored yellow: Squads v4 24h timelock is a positive upgrade mitigant; feature-flag pause exists; no independent guardian role and no rate-limiter. RD-F-137 n/a Upgrade frequency (per 90 days) Cannot determine upgrade frequency; on-chain upgrade event history inaccessible via WebFetch (Solscan 403; Solana Explorer JS-rendered). Program live since Nov 2023; multiple upgrades presumed but not quantifiable. Squads v4 24h timelock means any upgrades that occurred via the multisig path had a 24h delay. RD-F-140 n/a Fix-merged-but-not-deployed gap Cannot assess; no public source repository to inspect for unmerged fixes. Closed-source binary. No fix-merged-but-not-deployed signals found in public sources. RD-F-141 gray Test-mode parameters in deploy Cannot assess from closed source. Audits did not flag test-mode parameters as critical findings per available public summaries. OtterSec audit (2023) found 9 findings total; no test-mode parameter issue surfaced in available public information. RD-F-142 n/a Storage-layout collision risk across upgrades Not applicable in Solana context. BPFLoaderUpgradeable uses account-based state storage, not EVM storage slots. The EVM-specific storage-layout collision concept (slot N in impl A occupied by different variable in impl B across transparent-proxy upgrades) does not translate to Anchor/Borsh account layouts which use explicit struct discriminators. RD-F-143 n/a Reinitializable implementation (no _disableInitializers) BPFLoaderUpgradeable on Solana does not use EVM proxy + initialize() pattern. There is no _disableInitializers() concept on Solana. The IDL shows an init instruction but this is first-time program initialization, not a re-initializable proxy implementation in the EVM sense. Structural N/A per briefing type template for Solana substrate. RD-F-144 n/a CREATE2 factory permits same-address redeploy Solana does not use CREATE2. Program accounts on Solana are deterministic but upgrades are via BPFLoaderUpgradeable, not CREATE2-style redeploy to same address. RD-F-146 n/a New contract deploys in last 30 days Whether the PERPH program received a new deploy in last 30 days cannot be confirmed from available sources (Solscan 403). Broader Jupiter ecosystem had active development (Jupiter Lend Code4rena Feb 2026, Aggregator v6 audit Oct 2025) but perps program-specific deploy activity is not confirmable. Any upgrades via Squads v4 would have had a 24h delay. RD-F-168 n/a Stale-approval exposure on deprecated router Not applicable for Solana SPL Token delegation model. Jupiter Perps does not use EVM-style indefinite ERC-20 approve() patterns. SPL Token delegations to the perps program are transient per-instruction. No deprecated router contract with outstanding approvals identified.
Cross-chain & bridge Gray 0 12 of 12
RD-F-147 n/a Protocol has bridge surface Solana-only single-chain protocol, no protocol-operated bridge. Profile §7: has_bridge_surface=false, is_a_bridge=false. Data-cache: layerzero.present=false, chains=[Solana 100%]. Cat 10 N/A in full. RD-F-148 n/a Bridge validator count (M) Solana-only single-chain protocol, no protocol-operated bridge. No bridge validator set to assess. RD-F-149 n/a Bridge validator threshold (k-of-M) Solana-only single-chain protocol, no protocol-operated bridge. No bridge signature threshold to assess. RD-F-150 n/a Bridge validator co-hosting Solana-only single-chain protocol, no protocol-operated bridge. No bridge validator co-hosting to assess. RD-F-151 n/a Bridge ecrecover checks result ≠ address(0) [★ CRITICAL — NOT APPLICABLE] Solana-only single-chain protocol, no protocol-operated bridge. The EVM ecrecover zero-address check pattern (RD-F-151) does not apply — there is no bridge signature verification contract and Solana uses ed25519/secp256k1 native programs rather than EVM ecrecover. State mismatch noted per briefing instructions. RD-F-152 n/a Bridge binds message to srcChainId Solana-only single-chain protocol, no protocol-operated bridge. No srcChainId binding to assess. RD-F-153 n/a Bridge tracks nonce-consumed mapping Solana-only single-chain protocol, no protocol-operated bridge. No nonce-consumed mapping to assess. RD-F-154 n/a Default bytes32(0) acceptable as valid root [★ CRITICAL — NOT APPLICABLE] Solana-only single-chain protocol, no protocol-operated bridge. The bytes32(0) default-value Merkle root pattern (Nomad class, RD-F-154) does not apply — there is no bridge inbox contract and Solana does not use bytes32 Merkle roots in this pattern. State mismatch noted per briefing instructions. RD-F-155 n/a Bridge validator-set rotation recency Solana-only single-chain protocol, no protocol-operated bridge. No bridge validator-set rotation to assess. RD-F-156 n/a Bridge uses same key custody for >30% validators Solana-only single-chain protocol, no protocol-operated bridge. No bridge validator key custody to assess. RD-F-157 n/a Bridge TVL per validator ratio Solana-only single-chain protocol, no protocol-operated bridge. No bridge TVL per validator ratio to compute. RD-F-179 n/a LayerZero OFT DVN config (count, threshold, diversity) Solana-only single-chain protocol, no LayerZero OFT adapter. Protocol has no cross-chain messaging surface. Data-cache: layerzero.present=false. F179 applies only to LayerZero OFT integrations; not applicable here.
Threat intelligence & recon Yellow 33 8 of 8
RD-F-158 yellow Known-threat-actor cluster has touched protocol Known-threat-actor wallet cluster has touched protocol (T-09 v1 phase 2; advisory-only signal). DPRK-attributed wallets (UNC4736 cluster, attributed by Elliptic and TRM Labs at medium-high confidence) liquidated approximately 41.7 million JLP tokens (~$155.6M) from Drift's vaults on 2026-04-01. The JLP token redemption/liquidation path flows through Jupiter Perps pool mechanics (JLP pool account 5BUwFW4nRbftYTDMbgxykoFWqWHPzahFSNAaaaJtVKsq). This constitutes DPRK-attributed wallets interacting with Jupiter Perps protocol mechanics. Per U4: this is passive-venue interaction — JLP was the victim collateral held in Drift's vaults, not a Jupiter Perps exploit. The DPRK attack targeted Drift's Security Council, not Jupiter's team. Jupiter Perps was the liquidity venue, not the target. Interaction was 45 days before assessment (outside strict 30-day signal window) but within 90-day elevated-awareness horizon. Scored yellow, not red, because: (1) interaction was passive-venue; (2) no Jupiter RD-F-161 yellow Protocol-impersonator domain registered (typosquat) Protocol-impersonator domain registered (typosquat). Two impersonator/typosquat domains identified within 90-day monitoring window: (a) jup.ag-rewards.lat — registered 2026-03-11 (66 days before assessment date; within 90-day threshold) via PDR Ltd. d/b/a PublicDomainRegistry.com; page title 'Jupiter | The Home of Onchain Finance' mimicked official site; currently offline. Reg-date delta: 66 days. (b) jup-ag.live — registered via WebNic.cc; resolved to IP 172.67.212.149 (Cloudflare proxy); assessed as low-risk crypto drainer; currently offline. Registration date not confirmed for F161 window assessment — treated as within window based on PhishDestroy report recency. Both domains are inactive at time of assessment but represent confirmed impersonation activity. The 2025-02-06 X account hack establishes Jupiter as a high-value phishing target justifying elevated typosquat vigilance. RD-F-163 yellow Avg attacker reconnaissance time for peer-class protocols Attacker wallet reconnaissance time before strike (days, for similar protocol class). Curator assessment for Solana perps / high-TVL closed-source programs. Hack DB evidence: (1) Drift 2026-04-01 DPRK attack — approximately 6 months (180+ days) of reconnaissance including social engineering, real-capital deposits ($1M+), conference attendance by UNC4736 operatives. (2) USPD baseline pattern: 78 days average. For nation-state-class DPRK attacks on high-TVL Solana protocols, reconnaissance horizon is 90-180+ days. Jupiter Perps at $691M TVL (30-month-old protocol) is a plausible DPRK target following the Drift precedent. Any current undetected reconnaissance could already be significantly advanced. Scored yellow: elevated threat environment for peer-class protocols; assessment cannot observe ongoing reconnaissance; DPRK has demonstrated interest in Solana perps ecosystem specifically. RD-F-159 gray Attacker wallet pre-strike probe (low-gas failing txs) Mempool probe — attacker wallet sending failing/low-gas txs to protocol. On Solana, there is no EVM mempool with 'failing low-gas txs.' The conceptual equivalent would be failing/low-fee transactions sent to Jupiter Perps program from a threat-actor wallet. No public evidence of such reconnaissance identified. Solana tx failure patterns require RPC-level monitoring of failed instructions, which is not publicly monitored with EVM-equivalent tooling. Requires licensed Solana TI feed and Solana-native RPC monitoring not currently implemented. RD-F-160 gray GitHub malicious-dependency incident touching protocol deps GitHub-flagged malicious-dependency incident. Jupiter Perps is closed-source (no public perps repo). Cannot perform direct dependency audit. Security advisories affecting Anchor framework or Solana BPF runtime crates would affect Jupiter Perps as an indirect dependency, but the closed-source binary prevents verification of which specific dependency versions are embedded. No public GitHub security advisory against Anchor or Solana core BPF libraries identified that would specifically affect Jupiter Perps as of 2026-05-16. Closed-source nature is the binding constraint. RD-F-162 n/a Known-exploit-template selector deployed by any address Known-exploit-template selector-pattern deployed by any address. The EVM 4-byte function selector exploit-template database does not exist for Solana BPF programs. Solana BPF programs use Anchor instruction discriminators (8-byte hash), not EVM 4-byte selectors. No equivalent 'known-exploit-template for Solana perps' public database exists comparable to EVM selector-replay tooling. Signal is architecturally specific to EVM substrate. RD-F-164 gray Leaked credential on paste/sentry site Leaked credential on paste/sentry site matching protocol infra. No confirmed leaked credentials for jup.ag or Jupiter team infrastructure identified via public OSINT as of 2026-05-16. The 2025-02-06 X account hack involved unauthorized access from a US-based IP address but no confirmed API key or infra credential leak beyond the X account access. Requires curator-monitored paste/credential-dump feed (HaveIBeenPwned partner feed, DeHashed, Sentry.io public indices) for continuous surveillance — not implemented in T-10 static assessment scope. RD-F-165 gray Protocol social channel has scam-coordinator flag Telegram/Discord channel member flagged as scam-coordinator. No specific Discord/Telegram admin flagged as scam-coordinator in public sources for Jupiter as of 2026-05-16. The 2025-02-06 X hack did not involve Discord/Telegram channel compromise. Jupiter Discord (discord.gg/jup) and Telegram communities are large and have known scam activity, but no internal admin flagging identified. Requires curator social watchlist monitoring — M-only assessment not implemented in T-10 static assessment scope.
Tooling / compiler / AI Green 0 5 of 5
RD-F-170 n/a Solc version used (known-bug versions flagged) Solidity compiler (solc) is not applicable. Jupiter Perps is written in Rust and compiled with the Solana BPF toolchain (LLVM-based). No Solidity is present in this protocol. The relevant compiler is the Solana BPF toolchain which is not publicly disclosed for this closed-source binary. N-A for the Solidity-specific factor; the Rust/BPF equivalent is gray by opacity. RD-F-171 gray Bytecode similarity to audited upstream with behavior deviation No audited upstream exists to compare bytecode against (original codebase). Additionally, BPF bytecode comparison tooling for AI-copy detection is not mature. Closed-source binary prevents any similarity analysis. Gray: no audited upstream AND source not accessible. RD-F-172 gray Repo shows AI-tool co-authorship in critical files No public source repository exists for the perps program. GitHub commit history and co-authored-by metadata are inaccessible. Data-cache: github.repo_url: null. Cannot check for AI tool co-authorship without commit access. RD-F-174 n/a Dependency tree uses EOL Solidity version Solidity EOL version assessment is not applicable — this protocol uses Rust/Anchor on Solana BPF, not Solidity. The equivalent Rust toolchain EOL status cannot be determined without access to build metadata. N-A for the Solidity-specific factor.
RD-F-173 green Team self-disclosure of AI-generated Solidity No team self-disclosure of AI-generated code in security-critical paths found in any public statement, blog post, or protocol documentation. The factor is adapted for Rust/Anchor substrate (no Solidity). Jupiter's official channels and documentation contain no disclosure of AI-generated production contract code. Green by absence of adverse disclosure (low confidence).
Response & disclosure hygiene Yellow 33 4 of 4
RD-F-176 red Disclosure SLA public No public acknowledgment-time SLA found for the Jupiter bug bounty program. Jupiter documentation (jup.ag, developers.jup.ag, support.jup.ag) does not publish a responsible-disclosure window or response-time commitment. The OOOSec platform may have platform-level defaults but Jupiter-specific SLA is not publicly confirmed — OOOSec page returned 403 during assessment. RD-F-175 yellow Disclosure channel exists A bug bounty program exists on OOOSec, announced via the official Jupiter X account in May 2025 in collaboration with Meteora AG. The OOOSec page (https://ooosec.com/programs/jupiter) returned 403 during this assessment session so max payout and perps-specific scope are not confirmed from the primary source. OOOSec is a smaller platform than Immunefi or Sherlock. No dedicated security@ email or SIRT page exists on jup.ag. Yellow reflects: channel exists, but completeness/scope for the perps program is unconfirmed.
RD-F-177 green Prior known-ignored disclosure No evidence in any post-mortem or public record that a disclosed vulnerability to the Jupiter Perps team was ignored prior to exploitation. The protocol has no confirmed direct exploits; therefore no post-mortem record can document an ignored pre-exploit disclosure.
RD-F-178 green CVE/GHSA advisory issued against protocol No CVE or GHSA entry found for Jupiter Perpetuals. No public advisory has been issued against the protocol by CERT, NVD, GitHub Security Advisories, or OSV.
rubric_version v1.7.0 graded_at 2026-05-16 02:17:03 factors 184 protocol jupiter-perps