Nori
Nori 가격 및 과금
Last updated July 8, 2026
Nori는 게시된 버전 관리 요금표에 따라 모든 호출의 가격을 USD로 책정하고, 청구하는 순간에 SOL로 변환하며, 성공한 경우에만 과금합니다 — 실패한 업스트림 호출에는 절대 요금이 청구되지 않습니다. 가격 변경은 고지 기간 정책을 따르며, 호출자가 위임을 해제하거나 지갑이 요금을 감당할 수 없으면 과금이 즉시 하드 스톱됩니다.
요약
Nori의 과금 모델은 외부에서 감사 가능하도록 설계되었습니다: 공개된 가격, 온체인 영수증, 그리고 서비스 없는 청구 없음.
- 요금표 —
GET /rate-card가 버전,effective_at, 마크업 계수, 가격 변경 정책을 포함한 전체 USD 가격표를 제공합니다 - 성공 시 과금 — 업스트림 호출이 먼저 실행됩니다; 실패는 요금 없이 오류를 반환하고, 결제된 x402 재시도는 호출을 재실행하는 대신 캐시된 결과를 반환합니다
- 가격 변경 고지 — 인상은 최소
notice_period_days(기본 7)만큼 미래의effective_at과 함께 커밋됩니다; 그 이전의 청구는 이전에 게시된 요율을 유지합니다 - 하드 스톱 — 위임 해제와 지갑 잔액 소진 모두 delegate-pay 과금을 즉시 중지합니다; 호출은 부채를 쌓는 대신 x402 챌린지로 폴백됩니다
Nori 요금표
GET /rate-card는 표준적이고 기계가 읽을 수 있는 가격 목록입니다 — 문서의 스냅샷에 의존하지 말고 항상 이곳을 확인하세요. 전체 가격표와 정책 메타데이터를 5분 캐시로 제공합니다:
{
"version": 1,
"effective_at": "2026-05-21T00:00:00.000Z",
"policy": {
"notice_period_days": 7,
"notice_url": "https://github.com/metaplex-foundation/agent-plumber/blob/main/packages/shared/src/pricebook.json",
"description": "Price changes are announced by editing this file..."
},
"markup_factor": 1.25,
"llm": {
"anthropic/claude-sonnet-4-6": {
"inputPerMillion": 3.0,
"outputPerMillion": 15.0,
"cachedInputPerMillion": 0.3
}
},
"image": { "openai/gpt-image-1": { "perImage": 0.04 } },
"rpc": { "default": { "perCall": 0.0001 } }
}
요금표 스키마
| 필드 | 의미 |
|---|---|
version | 단조 증가하는 카드 버전; 가격이 변경될 때마다 증가 |
effective_at | 이 카드의 가격이 발효되는 ISO 타임스탬프 |
policy.notice_period_days | 가격 인상 커밋과 그 effective_at 사이의 최소 일수(기본 7) |
policy.notice_url | 카드(및 변경 이력)가 게시되는 위치 |
markup_factor | 청구 시점에 도매 USD 가격에 적용되는 균일 소매 마크업(1.25×) |
llm.<provider/model> | 입력 / 출력 / 캐시된 입력 토큰 100만 개당 도매 USD 가격 |
image.<provider/model> | 생성 이미지당 도매 USD 가격 |
rpc.default | RPC 또는 DAS 호출당 도매 USD 가격 |
표시된 가격은 도매가입니다; 청구 금액은 도매가 × markup_factor입니다. GET /v1/models는 OpenAI SDK 클라이언트를 위해 동일한 소스에서 사용 가능한 LLM 모델 ID를 열거합니다.
청구 금액 산정 방식
각 서비스는 요금표에서 USD 비용을 계산한 다음, 청구 시점에 SOL로 변환합니다.
- 서비스 핸들러가 결과와 함께
costUsd를 반환합니다 —chat.completion은 토큰 수 × 100만 개당 가격,image.generation은 이미지당,solana.rpc는 호출당 - 도매 비용에 마크업 계수(1.25×)가 적용됩니다
- USD 금액이 Jupiter 가격 API의 실시간 SOL/USD 현물 가격(30초 캐시)을 사용하여 lamports로 변환됩니다
- 청구는 에이전트의 PDA에서 Nori의 서비스 PDA로 이루어지는 SOL 이체로 성립되며, Memo 영수증이 첨부됩니다
모든 청구에는 온체인 영수증이 첨부됩니다
각 청구 트랜잭션의 Memo 인스트럭션은 구조화된 영수증(서비스, 요청, 비용 세부 정보)을 인코딩합니다. Nori의 서비스 PDA에 대한 에이전트의 트랜잭션 이력은 완전하고 독립적으로 감사 가능한 과금 기록입니다 — Nori의 오프체인 회계를 신뢰할 필요가 없습니다.
성공 시 과금 정산
Nori는 성공적으로 제공하지 못한 호출에는 절대 요금을 청구하지 않습니다. 순서는 두 결제 레일 모두에서 업스트림 먼저, 청구는 그다음입니다:
- Delegate-pay 레일 — Nori가 업스트림 호출(LLM, 이미지, RPC)을 실행합니다; 성공하면 PDA에 청구하고 결과를 반환합니다. 업스트림 호출이 실패하면 호출자는 요금 없이 오류 응답을 받습니다.
- x402 레일 — (결제 전) 첫 요청이 업스트림 호출을 실행하고 결제 챌린지를 키로 결과를 캐시합니다. 402 응답은 이미 계산된 결과의 정확한 비용을 견적합니다. 호출자가 결제하고 재시도하면 Nori는 캐시된 결과를 반환합니다 — 업스트림 호출은 절대 재실행되지 않으므로 이중 청구될 수 없으며, 견적된 가격이 곧 정산되는 가격입니다.
주목할 만한 실패 케이스는 그 반대입니다: delegate-pay 레일에서 업스트림 호출이 성공했지만 청구 자체가 실패한 경우(취소된 위임, 빈 지갑), 호출자는 그 한 번의 결과를 무료로 받을 수 있고, 레일은 그 후 하드 스톱됩니다. Nori는 자금을 미리 볼모로 잡는 대신 그 단일 호출의 손실을 감수합니다.
가격 변경 고지 정책
가격 변경은 요금표 자체를 통해 사전에 고지됩니다 — delegate-pay 레일에서 무단 가격 인상은 없습니다. 카드의 policy 블록에 포함된 정책은 다음과 같습니다:
- 가격 변경은
version이 증가하고 미래의effective_at이 있는 새 카드를 커밋하여 게시됩니다 - 인상의 경우
effective_at은 커밋 후 최소notice_period_days(기본 7일) 이후여야 합니다 effective_at이전의 청구는 이전에 게시된 요율로 계속됩니다- 전체 변경 이력은
policy.notice_url에 공개되어 있습니다
수락은 위임 시점에 암묵적으로 이루어집니다: 위임함으로써 에이전트는 게시된 카드와 그 고지 정책을 수락합니다. 게시된 변경을 수락할 수 없다면 effective_at 이전에 위임을 취소하세요 — 취소는 즉각적인 하드 스톱이므로, 수락하지 않은 요율로는 어떤 청구도 성립할 수 없습니다.
프로그래밍 방식으로 변경을 모니터링하려면 GET /rate-card를 폴링하고(5분 캐시), version이 증가하거나 effective_at이 이동할 때 알림을 보내세요.
하드 스톱 시맨틱스
두 가지 조건이 delegate-pay 과금을 정책이 아니라 구조적으로 즉시 중지합니다: 체인이 청구를 거부하므로 부채가 쌓일 수 없습니다.
위임 해제 시 하드 스톱
실행 위임을 취소하면 체인 수준에서 Nori의 청구 권한이 종료됩니다. 다음 청구 시도는 Neither the asset or any plugins have approved this operation 오류로 실패하고, Nori는 해당 자산의 캐시된 델리게이트 상태를 폐기하며, 이후 호출은 x402 레일로 넘어갑니다 — 호출자는 자동 청구 대신 HTTP 402 결제 챌린지를 받습니다. 델리게이트 상태가 최대 5분간 캐시되므로 취소 직후 진행 중인 호출 하나가 여전히 델리게이트 청구를 시도(하고 실패)할 수 있습니다; 중지를 강제하는 것은 온체인 검사이므로 취소 후에는 어떤 것도 청구될 수 없습니다.
지갑 잔액 소진 시 하드 스톱
에이전트의 PDA가 요금을 감당할 수 없으면 델리게이트 청구가 실패하고 호출은 외상으로 제공되지 않습니다. 호출자는 x402 챌린지(HTTP 402)를 받으며, 해당 호출을 직접 결제하거나 PDA를 충전하여 delegate-pay를 재개할 수 있습니다. Nori는 신용 한도를 제공하지 않습니다 — 자금이 부족한 에이전트는 챌린지 기반 호출당 결제로 성능이 저하될 뿐, 부채를 쌓지 않습니다.
PDA를 렌트 면제 하한선 이상으로 유지하세요
PDA에서 나가는 이체가 성공하려면 PDA가 시스템 렌트 면제 최소 금액(890,880 lamports) 이상을 유지해야 합니다. 운영 잔액은 예상 호출 수 × 일반적인 청구액 + 렌트 면제 하한선으로 예산을 잡으세요. 에이전트 템플릿이 새 위임에 0.002 SOL을 시드하는 것도 바로 이 이유 때문입니다.
운영 측면에서는 두 하드 스톱 모두 에이전트의 모니터링 신호로 취급하세요: 이전에 delegate-pay로 결제되던 호출이 200 응답에서 402 챌린지로 갑자기 바뀌면 위임이 사라졌거나 지갑이 비었다는 의미입니다.
빠른 참조
| 항목 | 값 |
|---|---|
| 요금표 엔드포인트 | GET /rate-card (5분 캐시) |
| 모델 디렉토리 | GET /v1/models |
| 표시 통화 | USD 가격, SOL로 정산(Jupiter 현물, 30초 캐시) |
| 마크업 | 도매가의 1.25×, 균일 적용 |
| 고지 기간 | 7일(policy.notice_period_days) |
| 과금 규칙 | 성공 시 과금; x402 재시도는 캐시된 결과 반환 |
| 위임 해제 | 즉시 하드 스톱 → x402 폴백 |
| 지갑 잔액 소진 | 즉시 하드 스톱 → 충전 시까지 x402 챌린지 |
| 영수증 | 모든 청구 트랜잭션의 Memo 인스트럭션 |
참고사항
- 소스 저장소에 번들된 가격표는 릴리스 시점에 게시된 정가의 스냅샷입니다; 실제 유효한 가격 목록은 라이브 인스턴스의
GET /rate-card입니다 - 요금표 가격은 도매가입니다 — 청구 금액을 구하려면
markup_factor를 곱하세요 - 동일한 호출에 대해 실제로 청구되는 lamports는 청구 시점의 SOL/USD 환율에 따라 달라집니다; 카드가 고정하는 것은 USD 금액입니다
- 하드 스톱은 delegate-pay 레일에 적용됩니다; x402 레일은 본질적으로 호출당 선불이므로 동등한 실패 모드가 없습니다
- Nori를 레퍼런스 구현으로 포크하는 운영자는
packages/shared/src/pricebook.json을 직접 편집하며, 동일한effective_at고지 원칙을 준수해야 합니다
Metaplex Foundation 관리. 최종 검증: 2026-07-08. GitHub에서 소스 보기.
FAQ
Nori 가격 및 과금에 대한 일반적인 질문.
Nori 호출이 실패하면 요금이 청구되나요?
아니요. Nori는 업스트림 호출을 먼저 실행하고 성공한 경우에만 요금을 청구합니다. 실패한 업스트림 호출은 요금 없이 오류를 반환합니다. x402 레일에서는 결과가 한 번만 계산되어 캐시되므로, 결제 후 재시도는 캐시된 결과를 반환하며 절대 재실행되거나 이중 청구되지 않습니다.
Nori는 USD 가격을 어떻게 SOL로 변환하나요?
요금표는 USD로 표시됩니다. 청구 시점에 Nori는 Jupiter 가격 API의 실시간 SOL/USD 현물 가격(30초 캐시)을 사용하여 SOL 금액을 다시 계산합니다. 따라서 실제로 청구되는 lamports는 호출 시점의 시장 환율을 따릅니다.
Nori는 가격 변경 전에 얼마나 미리 고지하나요?
요금표에는 notice_period_days(기본값 7)가 포함된 policy 블록이 있습니다. 가격 인상은 최소한 고지 기간만큼 미래의 effective_at 타임스탬프와 함께 커밋되며, effective_at 이전의 청구는 이전에 게시된 요율로 계속됩니다. 변경 이력은 정책의 notice_url에서 확인할 수 있습니다.
에이전트의 지갑에서 SOL이 소진되면 어떻게 되나요?
하드 스톱입니다. PDA가 요금을 감당할 수 없으면 delegate-pay 청구가 실패하고 호출은 HTTP 402 x402 챌린지로 폴백됩니다 — 서비스는 외상으로 제공되지 않습니다. PDA를 충전하는 즉시 호출이 재개됩니다.
사용 중에 Nori 위임을 해제하면 어떻게 되나요?
다음 청구 시도는 온체인에서 실패하고, Nori는 캐시된 델리게이트 상태를 무효화하며, delegate-pay 레일이 하드 스톱됩니다. 이후 호출은 x402 결제 챌린지를 받습니다. 체인이 Execute 트랜잭션을 거부하므로 취소 후에는 어떤 것도 청구될 수 없습니다.
Nori가 내 에이전트에 청구한 내역은 어디에서 확인할 수 있나요?
모든 청구는 구조화된 영수증을 담은 Memo 인스트럭션과 함께 에이전트의 PDA에서 Nori의 서비스 PDA로 이루어지는 SOL 이체입니다. 에이전트의 온체인 트랜잭션 이력이 완전하고 독립적으로 감사 가능한 과금 기록입니다.
