Skip to main content
이 페이지는 AI 자동 번역입니다. 모든 내용은 영문판을 기준으로 합니다.영문판 보기 →
2026-07 업그레이드 이후, AMM v4의 OpenBook / Serum 의존성이 제거되었습니다 — 더 이상 어떤 명령어도 OpenBook 상태를 읽거나 쓰지 않습니다. 아래의 마켓 계정들은 레거시 v1 명령어 레이아웃의 위치 플레이스홀더로만 유지되며(수락되지만 무시됨), AmmInfo의 참조 필드로만 남아 있습니다. V2 스왑 진입점을 사용하세요. 이 페이지는 여전히 계정을 “풀 소유” 및 “OpenBook (레거시)” 섹션으로 분류하여 이전 트랜잭션을 읽을 수 있도록 합니다.

목록

AMM v4 풀은 생성 시 하나의 바인딩된 마켓을 AmmInfo에 기록합니다. 전체 구성은 다음과 같습니다: 참고: “serum” 접두사는 하위 호환성을 위해 AMM v4의 IDL 및 필드 이름에 유지됩니다. 이 계정들은 OpenBook 제거 후 더 이상 기능하지 않습니다.

AmmInfo

풀의 루트 상태 계정입니다. 풀과 OpenBook 참조를 인라인으로 포함하기 때문에 크기가 큽니다(약 752바이트).
구조체 레이아웃은 변경되지 않았습니다(바이트 호환), 따라서 기존 역직렬화기는 계속 작동하지만, OpenBook 제거 후 위에서 더 이상 사용되지 않음으로 표시된 필드는 더 이상 쓰이지 않습니다swap_* 거래량 카운터는 마지막 값에서 동결됩니다. 거래량 분석을 위해서는 이 필드 대신 거래 로그를 사용하세요. need_take_pnl_*pool_open_time만 적극적으로 유지됩니다.
통합자 대면 필드:
  • coin_vault, pc_vault — 풀의 SPL Token 볼트. coin은 Serum/OpenBook 규칙에 따라 token_0(기본), pctoken_1(인용)입니다.
  • coin_decimals, pc_decimals — 민트와 일치합니다.
  • open_orders, target_orders, market — 레거시 참조 필드. 여전히 AmmInfo에 있고 v1 명령어 레이아웃에서 위치상으로 전달되지만, 프로그램은 더 이상 읽거나 검증하지 않습니다. V2 스왑 진입점은 이들을 생략합니다.
  • fees.swap_fee_numerator / swap_fee_denominator — 결합된 거래 수수료. 기본값 25 / 10_000 = 0.25%.
  • status — 작업을 제어하는 비트마스크. AdminSetStatus를 통해 관리자가 설정 가능합니다.
  • state_data.need_take_pnl_* — 총 누적 수수료와 스윕된 금액 간의 차이. TakePnl이 이를 0으로 설정합니다.

OpenBook 연결

제거됨. OpenBook / Serum 의존성이 프로그램에서 삭제되었습니다(2026-07 업그레이드). 이 섹션에서 설명하는 계정들은 더 이상 검증되거나 사용되지 않습니다. 이들은 AmmInfo의 참조 필드로, 그리고 레거시 v1 명령어 레이아웃의 위치 플레이스홀더로 남아 있습니다. V2 스왑 진입점을 사용하세요(SwapBaseInV2 / SwapBaseOutV2). 이들은 이 계정들을 전혀 사용하지 않습니다.
레거시 v1 SwapBaseIn / SwapBaseOut, Deposit, 또는 Withdraw 명령어를 호출할 때, 계정 개수는 여전히 이전 레이아웃과 일치해야 하지만(마켓 계정들이 역사적 위치를 차지), 그들의 내용은 더 이상 확인되지 않습니다 — CPI가 이들에 대해 발행되지 않습니다. 새 코드는 이 계정들을 전혀 사용하지 않는 V2 스왑 변형을 사용해야 합니다.
AMM의 amm_open_orders는 OpenBook 소유 계정으로 이 마켓의 풀 한도 주문 상태를 보유합니다: 활성 주문, 정산된 잔액, 추천인 등. amm_target_orders는 AMM 측입니다: 프로그램이 현재 게시된 것과 저렴하게 비교하고 차이를 배치/취소할 수 있도록 AMM의 의도된 그리드(각 주문 슬롯의 가격/크기)를 보유합니다.

권한 PDA

전체 AMM v4 프로그램에 정확히 하나의 amm_authority PDA가 있습니다. 그 시드는 간단합니다(["amm authority"]), 그 범프는 모든 AmmInfo에 저장됩니다. 이 권한은 모든 AMM v4 풀의 모든 토큰 이동에 서명합니다.
OpenBook 작업에 서명하기 위해 풀당 별도의 풀 범위 권한이 파생됩니다(이 프로그램의 설계에서 amm_authority는 실제로 둘 다 포함합니다; 다른 버전은 다른 파생을 사용했으므로 코드에서 특정 풀의 AmmInfo.nonce를 확인하세요).

볼트

풀의 SPL Token 볼트는 owneramm_authority인 표준 토큰 계정입니다. ATA가 아닙니다 — 그들의 주소는 ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id] 시드로 Initialize에서 파생된 특정 PDA입니다. 주소는 AmmInfo에 저장됩니다; 파생은 일회성 호기심입니다. Token-2022는 지원되지 않습니다. 프로그램은 모든 볼트 이동에 대해 SPL Token의 프로그램 ID를 하드코딩합니다. AMM v4 풀을 Token-2022 민트에 바인딩하려고 시도하면 Initialize에서 실패합니다.

LP 민트

권한이 amm_authority인 클래식 SPL Token 민트입니다. 총 공급량은 풀의 LP 소유권을 추적합니다; LP를 소각하면 두 볼트에서 비례적으로 토큰을 반환합니다. AMM v4가 CPMM보다 먼저 나왔기 때문에, 풀 상태에 lp_supply 미러가 없습니다 — 민트의 온체인 공급량을 직접 읽으세요.

상태 비트마스크

AmmInfo.status는 작업을 제어합니다. 비트(위치는 프로그램 버전에 따라 다를 수 있습니다 — 소스를 통해 확인하세요): Raydium 멀티시그는 SetParams를 통해 이를 설정합니다(param = Status). (AdminCancelOrders는 제거되었습니다.)

관찰 / 오라클

AMM v4는 전용 관찰 계정이 없습니다. 온체인 TWAP가 필요한 다른 프로토콜은 일반적으로 OpenBook의 북 교차를 간접적으로 소비하거나 오프체인을 읽습니다. 프로그램 지원이 있는 Raydium TWAP가 필요하면 CPMM 또는 CLMM을 사용하세요.

처음부터 풀의 계정 파생

AMM v4는 결정론적 쌍별 PDA를 위해 설계되지 않았기 때문에(Solana 규칙보다 먼저 나왔음), 정규 amm_id는 다음으로 파생된 시드 키쌍입니다:
동일한 시드 키 패턴이 amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account, 및 lp_mint에 적용됩니다. SDK와 API는 이를 미리 계산합니다; raydium-sdk-v2Liquidity.getAssociatedPoolKeys를 참조하세요. 실제로, 통합자는 GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID>에서 또는 SDK에서 풀의 전체 계정 세트를 읽습니다. 손으로 파생하는 것은 거의 필요하지 않습니다.

라이프사이클 빠른 참조

풀과 그들의 계정은 무기한 지속됩니다. 유동성이 완전히 출금되더라도 AmmInfo는 남아 있습니다.

어디서 무엇을 읽을지

출처: