Skip to content

AMM Integration Request — Sterling Sovereign CPMM (Solana, cash-backed x·y=k, 0 bps) #41

Description

@Ibrahimsterlingjomany

Jupiter AMM Integration — Sterling Sovereign CPMM

Type: AMM Integration Request (AMM API / Partner registration)
Chain: Solana Mainnet-Beta
Status: Ready to submit as a GitHub issue / AMM partner form payload.
Implementation: PR #42feat: Add Sterling Sovereign CPMM routing adapter (closes this issue).


1. Protocol identity (on-chain, public)

Field Value
DEX / Protocol name Sterling Sovereign CPMM (Sterling Chain AMM)
Blockchain Solana (Mainnet-Beta, chainId 101)
AMM Program ID 7v9sLrk92NNLLUfXLJw3o7MycZNvwsTK6kLWfWb8vcVA
Pool PDA (sovereign) 4wc5NC3ejYC5y4vQD4Eg3PsYW9ArZQV18fY1eHCJfxJQ
Pool seed ["sterling_pool", mint_souverain, mint_collateral]
Config PDA Htopqis52g8nGvvkpnG7Z7XZhgBpqtN9huqUyk6LH9gB
Curve constant-product x·y=k
Fee (feeBps) 0
Peg 1:1 USD (both assets cash-backed, non-speculative)
Pool status ANCHORED (code 2)
Settlement desk 1493
Official website https://sterlingchain.net

2. Trading pair (92C / SLUSD)

Role Token Mint Decimals Vault (token account)
Base (token A) 92 Cash USD (92C) 92k8rwgvovnWXAC5eE7ASMekSuphLiA9iS16UsAHCdWo 2 GMhRnaKdq6CYyaaMeEr6TgEMehDXZn2BUVhvRBfo4Ha9
Quote (token B) Sterling Chain L3 Certified USD (SLUSD) 92B5Ubkm5JBVGQeEeMnrkmmL6NpAGAirUua62BWAhZyJ 2 tDUgbwQ2pHwhbMMeyj1WasggoPXULC8xfNoPCYuCMde

⚠️ Both tokens use 2 decimals (not the default 6). Please do not assume 6 in the parser.

Live reserve snapshot (fetched 2026-09-11, read directly from the pool account):

  • tokenA (92C) reserve: 250054177848156 atoms
  • tokenB (SLUSD) reserve: 249945833890331 atoms
  • invariant k: 62500000000018485151674579636
  • price_92c_in_slusd: 0.999566 SLUSD per 92C (0 bps fee)

Liquidity & Market Architecture:

  • Current Status: Sovereign Bootstrapping Phase (dedicated CPMM pool active
    on-chain at 0 bps).
  • Routing Scope: Initial deployment establishing 92C/SLUSD sovereign parity
    prior to secondary market aggregator bridging.
  • Settlement: Fully collateralized internal reserves backed by sovereign mint
    authorities.

Reserve qualification: the figures above constitute the
Total Sovereign Token Reserve Supply250054177848156 atoms of 92C and
249945833890331 atoms of SLUSD, held in the pool's own vaults. This is a reserve
quantity, not a market valuation; no USD figure should be derived from it at the
1.00 peg.

3. Swap instruction ABI

Field Value
Instruction swap_sovereign_cpmm
Anchor discriminator 16a5c2db47318c34 (sha256("global:swap_sovereign_cpmm")[:8])
Args amount_in: u64, min_amount_out: u64, seal_92: u16 (LE 0x3239)
Instruction data length 26 bytes (disc(8) ‖ amount_in(8) ‖ min_amount_out(8) ‖ seal_92(2))
Account count 8
Account mapper note Slot [2] (pool_authority) equals slot [1] (sovereign_pool) — the same PDA is enforced on-chain (srequire_keys_eq!).
Pool account discriminator b90911fcd41b9f91 (sha256("account:SovereignPoolExtension")[:8]), fixed layout 322 bytes
Reserve offsets reserve_souverain @176, reserve_collateral @184 (stored reserves, not vault balances)
IDL Anchor IDL available on request (to parse on-chain pool state)

4. Public AMM API (live, crawlable)

Base URL: https://sterlingchain.net/api/v1/jupiter

Endpoint Method Purpose
/tokens GET Token registry (92C, SLUSD, USDC)
/price GET/POST Live price feed (peg 1.00 USD)
/amm GET AMM pool state (for indexers)
/quote GET/POST Swap quote (Jupiter v6 format)
/swap POST Swap transaction (unsigned base64)
/swap-instructions POST Swap instruction set
/circulating-supply GET 92C circulating supply (raw integer)
/health GET Health check

CORS: Access-Control-Allow-Origin: *, preflight OPTIONS → 204.

⚠️ Correction — circulating supply. The strict on-chain mint supply of 92C is
9999999900000 units (999999990000000 atoms at 2 decimals), verified against
the mint account. The /circulating-supply endpoint currently returns
10000000000000, i.e. 100 000 000 units above the mint supply. The endpoint
is being corrected to return the exact on-chain value; until then please treat
9999999900000 as authoritative.

5. On-chain proofs (publicly verifiable)

Proof Value
Anchor transaction 52FgC3oGQkmVt3Dc4LrryXNLVnKT4CdaZuzRmw9qzr9xw4vCXXmhf9SYprA5GiKwm52Ey1Db9Dg936nnPpCDfXx6
Anchor content 2,500,000,000,000 of 92C + 2,500,000,000,000 of SLUSD transferred into vaults GMhRna… / tDUgbw…
Mint authority E8McRGxy6rinwf9PZLTjmxw1K6oW18v1QXgztKovGQ2G (program / registry PDA)
Freeze authority None (renounced on both mints)
Proof of reserve https://sterlingchain.net/metadata/proof-of-reserve.json

Authority roles — clarification (two distinct addresses, two distinct roles):

Address Role Scope
BPraWGcZzvsjQk1CQUq6mABTQXk2SwsYagzR6NLXErqn Deployment / treasury authority Signed the pool anchoring and the initial reserve deposit. Holds the issuance-side treasury. Not a swap counterparty.
CMqD45Kq5oukPvaMDhzav5RxJqZb1xME1MmV71CzCeTw L3 settlement authority Authorized settlement desk (1493) for RFQ/DvP release only. By policy and by guardrail it is never fromPubkey of a capital transfer and never fee payer on the AMM path.

Neither address is an AMM account: the pool's own authority is the Pool PDA
4wc5NC3ejYC5y4vQD4Eg3PsYW9ArZQV18fY1eHCJfxJQ, which signs vault transfers via
invoke_signed. Swaps do not require either address above.

6. Live endpoint verification

Verified against https://sterlingchain.net:

  • GET /api/v1/jupiter/ammHTTP 200, Content-Type: application/json, CORS *.
    Returns ammKey, programId, feeBps: 0, type: constant-product,
    anchored: true, status: 2, reserves, k, peg_usd, swap_instruction,
    instruction_discriminator, markets.
  • GET /api/v1/jupiter/circulating-supplyHTTP 200, CORS *.
    Returns {"circulatingSupply": 10000000000000} — see the correction in §4:
    the authoritative on-chain value is 9999999900000.

7. Contact

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions