Integration Prerequisites
As Solana grows and more DEXes are built, we have to be more cautious in the DEXes we integrate, we look into a variety of factors.- Code health: It will help with integration and ensure maintainability in the future.
- Security audit: This is important to ensure users’ funds are secure and the program is not malicious.
- Traction: We look at the traction of the DEX to ensure it has market demand and is well-used.
- Team and backers: This is a good indicator of the quality of the DEX if they are backed by or built by reputable or verifiable entities.
AMM Interface
To facilitate integration of your DEX into the Jupiter Core Engine:- Provide a DEX SDK that works with the Jupiter AMM Interface.
- Enable us to fork your SDK, this ensures our users that we can guarantee maintenance, support for the SDK, and fix potential bugs related to integrated DEXs.
NOTE
get_accounts_to_update provides the necessary accounts to fetch, they are batched and cached by the Jupiter Core Engine and delivered through update to the AMM instance, there might be multiple calls to quote using the same cache so we do not allow any network calls in the entire implementation.RESOURCE AND SUPPORTYou can refer to the implementation guide https://github.com/jup-ag/rust-amm-implementation for easier integration with Jupiter.If you require assistance or have questions, reach out to us at Discord
AMM Interface Code Example
AMM Interface Code Example
More
Detect Jupiter Frontend Flow
Detect Jupiter Frontend Flow
Trades that originate from the Jupiter frontend (jup.ag) are retail flow. They are non-toxic order flow and if your propAMM can identify this flow, you can quote it tighter spreads with confidence.To make that flow verifiable, the Jupiter frontend adds a dedicated signer to every swap transaction and signs the transaction with it:
To detect Jupiter frontend flow, check the transaction’s account keys for this address as a signer and confirm its signature is present and valid. Jupiter holds the private key, so a valid signature from this address can only have been produced by the Jupiter frontend.
| Signer | Address |
|---|---|
| Jupiter frontend | sighWH8KaiT7QhtV4w29ReVF8kG6D5yG3EQP1KYyGVF |
Verify the signature, not just the presence of the address. Any sender can add
sighWH8KaiT7QhtV4w29ReVF8kG6D5yG3EQP1KYyGVF to a transaction’s account keys, but only the Jupiter frontend can produce a valid signature for it. A transaction that lists the address without a valid signature from it is not Jupiter frontend flow.