핵심 개념
오라클 및 결산
오라클은 SatoriEx의 투명한 정산 표면입니다. 세 가지 공개 엔드포인트를 통해 누구든 — 사용자, 빌더, 기자, 감사자 — 계정, API 키, SatoriEx에 대한 신뢰 없이 모든 보류 중 및 완료된 결과를 확인할 수 있습니다.
개념적 설명을 찾고 있으신가요?
Coming from Polymarket?
공개 표면이 필요한 이유
예측 시장은 트레이더가 결과를 직접 확인할 수 있을 때만 작동합니다. 해결 결과는 모더레이터(또는 그 이상)가 제안하고 별도의 관리자(또는 슈퍼 관리자)가 확인합니다. 결과 발표 파이프라인을 공개하여 SatoriEx를 신뢰하는 것에 의존하지 않도록 합니다.
- 누구든 현재 이의 제기 창에 있는 마켓과 제안된 당첨 결과를 볼 수 있습니다.
- 누구든 종료됐지만 아직 결과가 발표되지 않은 마켓을 볼 수 있습니다 — 감시자에게 유용합니다.
- 누구든 역사상 모든 결과가 발표되고 정산된 마켓을 당첨 결과와 함께 볼 수 있습니다.
공개 엔드포인트
세 가지 GET 엔드포인트가 전체 투명성 표면을 담당합니다. 인증이 필요 없습니다. 모두 표준 page 및 size 파라미터로 페이지 처리되며, 카테고리와 검색 쿼리로 필터링할 수 있습니다.
| 엔드포인트 | 반환값 | 사용 사례 |
|---|---|---|
| GET /oracle/propose | 종료 시간이 지났지만 당첨 제안을 기다리는 활성 마켓. | 곧 결과가 발표될 마켓을 감시합니다. |
| GET /oracle/verify | 2시간 이의 제기 창에 있는 마켓과 제안된 당첨 결과. | 보류 중인 결과를 감사하고, 동의하지 않으면 이의를 제기합니다. |
| 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인 승인은 서버 측에서 적용됩니다. 동일한 관리자 계정이 제안과 확인을 모두 할 수 없습니다.
관련
개념적 생애주기 — 정지, 제안, 승인, 이의 제기 창, 정산 — 은 다음을 참조하십시오: 해소·정산