기준 가격 산출 방식
CantonCap API는 게시하는 각 통화로 모든 자산의 기준 가격을 약 1분마다 다시 계산합니다. 입력값은 공개 Canton 거래소가 해당 자산에 대해 제시하는 가격으로, 각 마켓의 티커를 사용하며 티커를 게시하지 않는 마켓은 풀 상태를 사용합니다. 스테이블코인이나 Canton Coin처럼 다른 자산으로 표시된 가격은 해당 자산의 기준 가격으로 환산하므로, 어떤 스테이블코인도 정확히 1달러의 가치를 가진다고 가정하지 않습니다.
기준 가격은 최신이고, 의미 있을 만큼 유동성이 충분하며, 요청된 통화로 도달할 수 있는 관측값으로만 구성됩니다. 거래소 풀 상태, 체결 가능한 오더북 호가 단계, 결제된 거래소 체결 내역은 각각 직접 구성 요소가 될 수 있습니다. 통화가 표기된 외부 기준값은 이러한 관측값을 목표 통화로 환산하는 데 쓰일 수 있지만, 일반적으로 그 자체로 독립적인 가격 구성 요소가 되지는 않습니다.
호가는 운영자가 정한 범위 안에 있을 때만 반영됩니다. 그 기준은 충분한 유동성, 이상치 허용 범위를 넘지 않는 다른 호가와의 차이, 한도 이내의 스프레드와 가격 영향, 단일 거래소가 결과를 움직일 수 있는 폭의 상한, 환산 단계 수의 제한, 최대 경과 시간입니다. 통과한 호가는 가중치를 적용해 하나의 수치로 합산합니다. 각 자산은 개별적으로 계산되므로 한 자산에서 문제가 생겨도 다른 자산의 계산이 지연되지 않습니다.
Canton Coin의 USD 가격은 서로 독립된 세 중앙화 거래소 기준값인 Bybit CC/USDT, OKX CC/USDT, Kraken CC/USD의 중앙값이며, USDT 레그는 Kraken의 USDT/USD 환율을 적용해 정확한 십진 값으로 환산합니다. 세 소스를 담은 하나의 태그된 집계값으로 게시되며, 환산 경로이자 직접 구성 요소의 역할을 동시에 합니다.
각 가격 옆의 근거
모든 자산 페이지에는 거래소들의 호가가 표시됩니다. 각 거래소의 해당 자산 최신 가격, 최저가와 최고가 사이의 스프레드, 그리고 그 중앙값입니다. 해당 자산이 기초 자산인 마켓만 사용하며, 마켓 수가 가장 많은 견적 자산 하나로 한정합니다. 서로 다른 견적 자산으로 표시된 가격은 같은 축에 놓을 수 없기 때문입니다.
거래소 수가 짝수이면 중앙값은 가운데 두 호가의 평균이 아니라 둘 중 낮은 값으로 정하므로, 항상 어떤 거래소가 실제로 제시한 가격이 됩니다. 근거는 기준 가격을 공개적으로 검증하기 위한 것이며 계산 자체가 아닙니다. 계산의 가중치와 제외 내역은 관리용 기록입니다.
가격 출처
- AMM 풀venue_pool
- Canton 거래소의 온체인 풀 보유량에서 산출됩니다.
- 오더북venue_book
- Canton 거래소의 체결 가능한 오더북 호가 단계에서 산출됩니다.
- 거래소 체결venue_trade
- 거래소 체결 기록의 결제된 체결에서 가져옵니다.
- 외부 기준값external_reference
- 통화가 표기된 기준값으로, 환산에 쓰이며 가격을 직접 정하지는 않습니다.
- 파생derived
- 직접 관측한 값이 아니라 채택된 다른 관측값에서 계산됩니다.
모든 관측값에 적용되는 검사
관측값이 게시 수치의 근거가 되려면 먼저 15개 검사 항목으로 평가를 받아야 합니다. 실패는 해당 단계와 검사 항목을 명시한 품질 인시던트로 기록됩니다.
이 기록은 공개용이 아니라 관리용입니다. 공개 API는 감사 추적이 아니라 최종 채택된 값과 마지막 업데이트 시각을 게시합니다. 공개 이용자가 직접 확인할 수 있는 것은 거래소 간 스프레드이며, 각 자산 페이지에서 볼 수 있습니다.
- 소수 유효성decimal_validity
- 보고된 값을 정확한 소수로 해석할 수 없었습니다.
- 타임스탬프 유효성timestamp_validity
- 관측값의 시각이 없거나 타당하지 않았습니다.
- 식별자 확인identity_resolution
- 기록을 알려진 자산이나 마켓에 연결할 수 없었습니다.
- 가격 유효성price_validity
- 가격이 0 이하이거나 해당 인스트루먼트가 가질 수 있는 범위를 벗어났습니다.
- 보유량 유효성reserve_validity
- 풀 보유량이 따른다고 표방하는 곡선과 일치하지 않았습니다.
- 호가 역전book_crossed
- 최우선 매수 호가가 최우선 매도 호가보다 높아 오더북 내부가 일관되지 않았습니다.
- 빈 오더북book_empty
- 오더북의 한쪽 또는 양쪽에 가격 산출 기준이 될 호가 단계가 없었습니다.
- 시퀀스 누락sequence_gap
- 소스의 시퀀스 번호가 건너뛰어 최소 한 건의 업데이트가 누락되었습니다.
- 오래된 데이터staleness
- 관측값이 이 계산의 최신성 허용 기간보다 오래되었습니다.
- 가격 이상치price_outlier
- 가격이 동종 가격 대비 허용되는 분산 범위를 벗어났습니다.
- 공급량 급변supply_jump
- 보고된 토큰 공급량이 관측 사이에 발행으로 허용되는 범위보다 크게 변했습니다.
- OHLC 정합성ohlc_invariant
- 캔들이 자체 정합 조건을 어겼습니다. 고가가 시가보다 낮거나 저가가 종가보다 높은 경우 등입니다.
- 중복 이벤트duplicate_event
- 같은 소스 이벤트가 두 번 도착하여 한 번만 집계했습니다.
- 거래량 대조volume_reconciliation
- 보고된 거래량이 같은 기간에 관측된 체결과 일치하지 않았습니다.
- 의존 데이터 사용 불가dependency_availability
- 이 수치를 계산할 때 의존하는 입력값을 사용할 수 없었습니다.
유동성과 유동성 점수
AMM 풀의 유동성은 보유 자산의 USD 가치입니다. 각 보유 자산은 Canton 식별자로 대응시킨 해당 자산의 기준 가격으로 평가합니다. 가격이 없는 자산이 보유 자산에 포함되면 수치를 추측하지 않고 비워 두며, 빈 풀은 0입니다. 오더북은 대신 호가 깊이로 측정하므로 오더북 마켓에는 단일 유동성 수치가 없습니다.
2% 이내 호가 깊이는 가격이 기준 가격에서 2% 움직이기 전까지 매수 또는 매도할 수 있는 USD 가치입니다. 오더북은 자체 호가 단계에서 읽고, AMM은 저장된 풀 상태로 수수료를 포함해 모델링합니다. 모델링된 호가 깊이는 곡선을 측정한 것이며, 호가도 체결 보장도 아닙니다.
유동성 점수는 해당 마켓에서 거래할 때 드는 비용을 기준으로 마켓을 0에서 100까지 평가합니다. API는 마켓의 현재 상태에 대해 $100, $500, $1,000, $5,000 및 $10,000 규모의 매수와 매도를 수수료를 제외하고 시뮬레이션하며, 그 가격 영향과 각 주문의 체결 가능 여부를 하나의 점수로 환산합니다. 입력값이 충분하지 않은 마켓에는 점수가 없으며, 이는 결코 0점과 같지 않습니다.
자산의 점수는 거래쌍의 어느 쪽이든 그 자산을 거래하는 마켓 중 점수가 가장 높은 세 마켓 점수의 평균입니다. 점수가 있는 마켓이 세 개보다 적으면 그 전체의 평균이므로, 점수가 있는 마켓이 하나뿐인 자산은 그 마켓의 점수를 그대로 갖습니다. 거래소의 점수는 해당 거래소 마켓 전체의 평균입니다. ‘유동성 상위’ 보기는 자산 점수로 자산 순위를 매깁니다.
24시간 거래량
거래량의 정의는 사이트 전체에서 하나이므로 표와 합계가 서로 어긋나지 않습니다. 마켓의 USD 기준 24시간 거래량은 API의 활동 측정값이 있으면 그 값을, 없으면 거래소가 티커로 보고하는 USD 거래량을, 그것도 없으면 견적 자산 기준 거래량을 해당 자산의 기준 가격으로 환산한 값을 사용합니다. 자산의 거래량은 거래쌍의 어느 쪽이든 그 자산이 거래되는 모든 마켓의 합계이고, 거래소의 거래량은 해당 거래소 마켓의 합계이며, 네트워크 거래량은 각 마켓을 한 번씩만 집계합니다.
활동 측정은 기간마다 하나의 명목 가치를 선택하며, 3분 이내의 거래소 기준 가격에서 산출한 USD 값을 우선합니다. 거래소가 보고한 거래량을 해당 체결에서 관측된 거래량에 더하지 않습니다. 시간별 구간을 집계해 만들며, 5분마다 새 스냅숏을 생성합니다.
거래량 수치에는 주의 사항이 함께 표시됩니다. 갱신 시 사용할 수 있는 값이 없으면 API는 최신 값을 해당 시각과 함께 유지합니다. 그 시각이 1시간을 넘으면 수치를 흐리게 표시하고 어느 시점의 값인지 밝히며, 현재 값으로 표시하지 않습니다. 부분 수치는 24시간 중 일부만 포괄한다는 사실을 밝히고, 추정치는 추정치로 표시합니다. 알 수 없는 값은 결코 0으로 표시하지 않으며, 오래된 수치, 부분 수치, 추정치가 포함된 합계에는 그 개수를 밝힙니다.
Rocky가 보고한 거래량은 해당 거래소의 마켓에 사유와 함께 흐리게 표시되며, 체결 내역과 일치할 때까지 모든 합계에서 제외됩니다. 초기 수치가 상장 자산 공급량의 몇 배에 달했기 때문입니다.
완전 희석 가치
FDV는 채택된 기준 가격에 승인된 등록기관이 게시한 정책 부합 최신 총 공급량 관측값을 곱한 정확한 십진 값입니다. 공급량 관측값이 방법론이 허용하는 최대 경과 시간보다 오래되었거나 승인된 등록기관이 이를 게시하지 않은 경우, FDV는 계산되지 않으며 수치 대신 그 사유가 표시됩니다.
총 공급량은 승인된 등록기관이 해당 인스트루먼트에 대해 게시한 수치이며, 보고된 그대로 유지합니다. 반올림, 단위 조정, 보간은 하지 않습니다. 두 관측 사이에 발행으로 설명할 수 있는 범위보다 크게 변한 공급량은 공급량 급변 검사에서 표시됩니다. 유통 공급량과 최대 공급량은 게시하지 않습니다.
시가총액
시가총액은 게시되지 않습니다. 시가총액에는 유통 공급량 수치가 필요하지만 Canton 인스트루먼트에 대해 검토를 거친 유통 공급량 방법론이 없으며, 유통 물량을 잠금 물량, 트레저리 보유 물량, 계약상 제한 물량과 구분하는 것은 데이터 문제가 아니라 거버넌스 문제입니다.
API는 빈 필드를 반환하는 대신 페이로드에 이 사실을 명시합니다. 글로벌 지표 응답에는 market_cap.semantics = "unavailable_circulating_supply"가 포함됩니다. 해당 방법론이 마련되기 전까지 Canton 자산의 시가총액은 추측일 뿐이며, 이 제품은 추측을 게시하지 않습니다.
순위 및 비율
순위는 모든 등재 자산을 FDV, 풀 유동성, 24시간 이동 거래량을 바탕으로 정렬합니다. 전체 목록에 대해 한 번 계산되므로, 자산은 모든 페이지, 모든 통화, 모든 정렬에서 같은 순위를 유지합니다.
유동성 / FDV는 자산의 AMM 풀에 있는 USD 유동성을 FDV로 나눈 값이며, 각 대상 풀은 한 번만 집계됩니다. 오더북 호가 깊이는 포함되지 않습니다. 상한이 없으므로 평가 가치가 작고 풀이 깊으면 100%를 넘을 수 있습니다.
거래량 / FDV는 자산의 가용한 최선의 24시간 이동 거래량(USD, 보고된 거래량 또는 관측된 체결 중 하나이며 둘의 합은 아님)을 FDV로 나눈 값으로, 하루 동안 평가 가치 중 거래된 비율입니다.
FDV가 없거나, 오래되었거나, 0인 경우 또는 나눌 대상이 없는 경우 비율은 제외됩니다. 풀이 없는 자산에는 유동성 비율이 없습니다. 각 비율에는 커버리지가 함께 표시되므로, 일부 마켓만으로 산출된 수치는 그 사실을 밝힙니다.
두 비율 모두 네 구간으로 된 하나의 척도로 읽으며, 각 수치 옆의 막대로 표시됩니다.
| 구간 | 범위 | 유동성 / FDV | 거래량 / FDV |
|---|---|---|---|
| 희박, 한산 | 1% 미만 | 희박 | 한산 |
| 얕음, 적음 | 1% ~ 5% | 얕음 | 적음 |
| 보통, 활발 | 5% ~ 10% | 보통 | 활발 |
| 깊음, 매우 활발 | 10% 이상 | 깊음 | 매우 활발 |
차트: 캔들과 라인
캔들은 자산의 시가, 고가, 저가, 종가를 USD로 보여 주며, API가 해당 자산의 가격 산출에 사용하는 마켓 전체에서 집계한 값입니다. 거래량이 게시된 경우 그 아래에 표시됩니다. 칩으로 캔들 하나가 포괄하는 기간을 15m, 1h, 4h, 24h, 1W, 1M 중에서 선택합니다. 가장 짧은 세 가지는 약 200개 캔들을 거슬러 올라가고, 24h는 1년, 1W와 1M은 전체 기록을 읽습니다.
API는 최대 1주 길이의 캔들을 제공하므로, 월봉은 일봉을 UTC 기준 달력 월 단위로 묶어 만듭니다. 그달 첫 시가로 시작해 마지막 종가로 끝나며, 가장 높은 고가와 가장 낮은 저가를 범위로 하고, 각 날짜에 게시된 거래량을 합산합니다.
캔들은 하나의 연속된 기록으로 이어집니다. 각 캔들은 직전 캔들의 종가에서 시작하며, 거래가 없던 구간은 빈칸이 아니라 직전 종가에 거래량이 없는 평평한 캔들로 표시합니다. 캔들의 고가와 저가는 시가를 포함하도록 넓어지므로 몸통이 꼬리를 벗어나지 않습니다.
라인은 기준 가격 자체를 24h, 1W, 1M, 1Y, 전체 기간에 걸쳐 구간마다 한 점씩, 그 구간의 최신 가격으로 그립니다. 24시간은 15분마다, 1주는 1시간마다, 1개월은 4시간마다, 1년 이상은 하루마다입니다. 기간의 첫 점보다 높으면 초록색, 낮으면 빨간색으로 표시됩니다.
차트는 API가 보관하는 기록과 사이트의 이용 권한이 허용하는 범위까지만 거슬러 올라가며, 최대 31일 단위로 읽습니다. 소스의 기록이 CantonCap이 관측을 시작한 시점부터 시작되는 경우 그 이전 기간은 존재하지 않습니다. 표의 각 행에 있는 작은 라인은 해당 자산의 최근 24시간 기준 가격을 1시간 단위로 보여 줍니다.
갱신 주기와 타임스탬프
거래소 데이터는 각 거래소가 허용하는 범위에 따라 30초에서 5분마다 읽으며, 기준 가격은 약 1분마다 다시 계산합니다. 사이트는 각 응답을 짧은 기간 재사용합니다. 소스 상태는 30초, 가격·등재 목록·마켓은 1분, 거래량·거래소·차트·스파크라인은 5분입니다. 열려 있는 마켓 표는 45초마다 새 가격을 확인합니다.
API가 게시하는 모든 시각은 UTC이며, 사이트도 UTC로 시각을 표시합니다. 계산된 가격에는 계산 시각이, 기간에 대한 측정값에는 읽은 시각이 아니라 해당 기간의 종료 시각이 붙습니다. 기간은 시작 시각을 포함하고 종료 시각은 포함하지 않습니다. 각 수치의 경과 시간은 옆에 표시되며, 최신 가격이 30분 이상 지나면 앱은 가격을 지연으로 표시합니다. 앱의 차트 축은 휴대폰의 현지 시간으로 표시됩니다.
샘플 데이터와 실시간 데이터
모든 수치는 페이지를 빌드할 때 CantonCap API에서 읽으며, 읽을 때마다 실시간 데이터가 반환되었는지 기록합니다. 프로덕션 환경에서 API에 연결할 수 없으면 오류나 있는 그대로의 빈 상태를 표시하며, 지어낸 수치로 페이지를 채우지 않습니다.
개발 및 미리보기 빌드는 API에 연결할 수 없을 때 고정된 샘플 데이터 세트를 표시할 수 있습니다. 이를 바탕으로 한 페이지에는 항상 그 이유를 밝히는 샘플 데이터 배너가 표시되며, 수치는 예시일 뿐 시장 데이터 피드가 아닙니다. 샘플 데이터를 실제 데이터처럼 제시하는 일은 없습니다.
관심 회원, 심리, 발행사 게시물
“관심 N명”은 현재 해당 자산을 관심 목록에 둔 회원 수이며, 로그인한 회원의 목록만 집계합니다. 합계일 뿐이며 목록 자체는 표시되지 않습니다. 사이트는 이 값을 최대 1분에 한 번 갱신합니다.
심리 게이지는 회원을 자산별로 한 번씩 집계합니다. 자산 페이지에서 회원이 한 강세 또는 약세 투표는 투표한 시점부터 7일 동안 집계됩니다. 투표하지 않은 회원은 최근 7일 동안 해당 자산에 대해 올린 가장 최근 게시물의 전망으로 집계되며, 답글, 숨겨진 게시물, 삭제된 게시물은 제외됩니다. 강세나 약세 전망을 밝힌 회원 중 강세 비율을 강한 약세부터 강한 강세까지 5개의 균등한 구간으로 나뉜 다이얼 위에 표시합니다. 이는 의견의 집계일 뿐 신호가 아니며, 아무도 전망을 밝히지 않으면 비어 있습니다.
발행사 피드는 발행사 또는 자산 제공자가 X에 올린 게시물을 보여 주며, API가 해당 발행사와 자산 간의 승인된 연결을 등록한 경우에만 표시됩니다. 심볼 일치로 피드를 선택하지 않습니다. 게시물은 게시된 그대로 UTC 시각 및 원문 링크와 함께 표시됩니다. 수정된 게시물은 최신 버전을 표시하고, 표시 제한, 비공개, 삭제된 게시물은 제거합니다. 열려 있는 페이지는 30초마다 다시 확인하며, 90초보다 오래된 응답의 게시물은 표시하지 않습니다. CantonCap은 발행사가 게시하는 내용을 보증하지 않습니다.
커버리지 및 범위
Canton은 하위 트랜잭션 수준의 프라이버시를 적용합니다. 당사자는 트랜잭션 중 자신에게 해당하는 부분만 받습니다. 인티그레이터 키로 볼 수 있는 거래소는 공개적으로 보이지 않으며, 당사자 범위의 체결 기록은 다른 누구에게도 보이지 않습니다. 따라서 각 수치에는 관측 당시의 범위가 함께 표시됩니다.