본문으로 건너뛰기

핵심 개념

오라클 및 결산

오라클은 SatoriEx의 투명한 정산 표면입니다. 세 가지 공개 엔드포인트를 통해 누구든 — 사용자, 빌더, 기자, 감사자 — 계정, API 키, SatoriEx에 대한 신뢰 없이 모든 보류 중 및 완료된 결과를 확인할 수 있습니다.

개념적 설명을 찾고 있으신가요?

결과 발표가 플랫폼 기능으로서 의미하는 것 — 단계, 이의 제기 창, 지급 — 을 이해하려면 먼저 결과 발표 개념 페이지를 읽으십시오. 읽기: 결과 발표 및 정산

Coming from Polymarket?

Polymarket's resolution uses UMA's Optimistic Oracle — anyone can propose with a $750 bond, anyone can dispute, escalations route to a DVM token-holder vote. SatoriEx uses an optimistic-bonded model with similar mechanics scaled for our market: any KYC-verified user can propose an outcome under bond, anyone can file a $10 dispute (refunded + $5 reward if upheld), and a tier-2 escalation routes to an independent voter panel — not the original proposer — for the final decision. Public endpoints make every step auditable, and the proposer's bond is slashed to the dispute reserve when an upheld escalation overturns the outcome.

공개 표면이 필요한 이유

예측 시장은 트레이더가 결과를 직접 확인할 수 있을 때만 작동합니다. 해결 결과는 모더레이터(또는 그 이상)가 제안하고 별도의 관리자(또는 슈퍼 관리자)가 확인합니다. 결과 발표 파이프라인을 공개하여 SatoriEx를 신뢰하는 것에 의존하지 않도록 합니다.

  • 누구든 현재 이의 제기 창에 있는 마켓과 제안된 당첨 결과를 볼 수 있습니다.
  • 누구든 종료됐지만 아직 결과가 발표되지 않은 마켓을 볼 수 있습니다 — 감시자에게 유용합니다.
  • 누구든 역사상 모든 결과가 발표되고 정산된 마켓을 당첨 결과와 함께 볼 수 있습니다.

공개 엔드포인트

세 가지 GET 엔드포인트가 전체 투명성 표면을 담당합니다. 인증이 필요 없습니다. 모두 표준 page 및 size 파라미터로 페이지 처리되며, 카테고리와 검색 쿼리로 필터링할 수 있습니다.

엔드포인트반환값사용 사례
GET /oracle/propose종료 시간이 지났지만 당첨 제안을 기다리는 활성 마켓.곧 결과가 발표될 마켓을 감시합니다.
GET /oracle/verify2시간 이의 제기 창에 있는 마켓과 제안된 당첨 결과.보류 중인 결과를 감사하고, 동의하지 않으면 이의를 제기합니다.
GET /oracle/settled결과가 발표되고 정산된 마켓, 당첨 결과 및 결과 발표 타임스탬프 포함.분석, 보고 또는 서드파티 피드를 위한 역사적 기록.
# All three endpoints are public — no auth required.
curl https://staging.satoriex.io/api/v1/oracle/verify?page=1&size=50
curl https://staging.satoriex.io/api/v1/oracle/propose
curl https://staging.satoriex.io/api/v1/oracle/settled?category=politics

이 엔드포인트들은 의도적으로 캐시 가능합니다. 감시 서비스는 일반적으로 이의 제기 창 동안 /verify를 몇 분마다 폴링합니다.

응답 형태

세 엔드포인트 모두 동일한 봉투를 반환합니다 — 각 마켓의 결과, 현재 가격, 이의 제기 수, 이의 제기 종료 시간이 포함된 페이지 처리된 마켓 목록. 필드 이름은 기본 마켓 모델과 일치합니다.

{
  "code": 0,
  "data": {
    "markets": [{
      "id": "mkt_01H...",
      "title": "Will the central bank cut rates in May?",
      "status": "resolved",
      "winning_outcome_id": "out_01H...",
      "resolved_at": "2026-05-08T14:02:31Z",
      "dispute_end_time": "2026-05-09T14:02:31Z",
      "dispute_count": 0,
      "outcomes": [{ "id": "out_01H...", "label": "Yes", "price_bps": 7400 }]
    }],
    "total": 1247,
    "page": 1,
    "size": 50
  }
}

결과 발표 액션

오라클 읽기는 공개입니다. 오라클 변경은 그렇지 않습니다. 단일 변경 엔드포인트인 POST /oracle/resolve는 당첨 결과와 결과 발표 페이로드에 대한 HMAC-SHA256 서명을 받습니다.

POST /api/v1/oracle/resolve
Content-Type: application/json

{
  "market_id":           "mkt_01H...",
  "winning_outcome_id":  "out_01H...",
  "timestamp":           "2026-05-11T14:02:31Z",
  "signature":           "<HMAC-SHA256 over: market_id:winning_outcome_id:unix_ts>"
}

# Signature pre-image uses ':' as delimiter and the unix epoch
# seconds form of timestamp. Requests older than 5 minutes are
# rejected as replay-suspect.
  • 서버 측 공유 비밀이 필요합니다 — 클라이언트 코드에 서명 키를 절대 노출하지 마십시오.
  • 서명은 market_id, winning_outcome_id, 신선한 nonce를 포함합니다; 재생 시도는 거부됩니다.
  • 슈퍼 관리자 또는 신뢰할 수 있는 오라클 웹훅만 유효한 서명을 생성할 수 있습니다.
  • 2인 승인은 여전히 적용됩니다 — 전체 생애주기는 결과 발표 개념 페이지를 참조하십시오.

신뢰 모델 개요

다른 행위에는 다른 권한이 필요합니다. 읽을 수 있는 것은 모두 공개입니다; 쓸 수 있는 것은 보증금이 있는 사용자 계정(이의 제기) 또는 서명된 관리자 액션(결과 발표)이 필요합니다.

권한수행 가능자
보류 중 및 정산된 결과 읽기 누구든 — 계정 불필요
모든 결과에 대한 공개 이의 제기 읽기 누구든 — 계정 불필요
제안된 결과에 이의 제기 $10 USDC 보증금이 있는 모든 사용자
마켓의 당첨 결과 제안 모더레이터 이상 (첫 번째 제안자)
제안된 결과 확인 별도의 관리자(또는 그 이상) — 제안자와 다른 사람

2인 승인은 서버 측에서 적용됩니다. 동일한 관리자 계정이 제안과 확인을 모두 할 수 없습니다.

관련

개념적 생애주기 — 정지, 제안, 승인, 이의 제기 창, 정산 — 은 다음을 참조하십시오: 해소·정산