AOIWALLET / DOCS

API 흐름도

위에서 아래로 읽습니다. 금색은 분기, 초록 테두리는 계속, 빨간 칸은 멈추는 길입니다. 화살표로 이어진 칸은 그 순서로 호출하고, 점선 칸은 그 경우에만 호출한다. 밑줄 친 주소를 누르면 그 호출만의 업무 분기가 열립니다. 견적은 돈을 예약하지 않고, 승인 뒤에만 잡고 서명합니다. 체인 답이 없으면 실패나 환불이나 다시 보내기로 보지 않습니다.

단계분기멈춤그 경우만

로그인

가입 버튼은 없다. 텔레그램으로만 들어온다. 화살표로 이어진 칸은 그 순서로 호출한다. 점선 칸은 그 경우에만 호출한다.

POST

텔레그램 증명으로 누구인지 확인한다.

분기인증 앱이 있나
있다

텔레그램 답이 6자리 대기다. 입력 화면은 이 답으로 연다.

이어서, 6자리를 넣을 때

POST

맞으면 세션이 열린다. 시간이 지나면 버리고 텔레그램에서 다시 연다.

다시 열 때 GET

대기가 남았는지 읽는다. 남았으면 위의 6자리로 간다. 없거나 시간이 지나면 텔레그램부터 다시다. 방금 연 로그인에서는 호출하지 않는다.

없다

세션이 바로 열린다. 6자리는 없다.

등록할 때, 이 순서

POST

인증 앱 비밀을 만든다.

이어서

POST

6자리가 맞으면 등록이 끝난다. 이 등록만으로 입금 주소는 생기지 않는다.

증명이 거절됨

같은 고객의 기존 세션이 살아 있으면 그 로그인을 유지한다. 아니면 들어가지 못한다.

들어온 뒤

GET

들어온 사람을 확인한다.

나갈 때 POST

세션과 대기 로그인을 함께 지운다. 로그인 다음에 꼭 호출하는 주소는 아니다.

지갑

순서는 인증 앱, 지갑 만들기, 24단어다. 만드는 중에는 그 주소로 입금하지 않는다.

GET

가진 지갑을 본다.

기본 지갑이 없을 때 POST

만들기 대기를 연다. 목록을 볼 때마다 호출하는 주소는 아니다.

지갑을 더 요청할 때 POST

추가 요청이다. 위의 목록 조회와 같은 주소의 다른 호출이다.

하나 고를 때. 아래는 순서가 아니다.

이름POST
사용POST
보관POST
되돌리기POST
취소POST

대기 중일 때만 취소한다.

분기발급 담당이 있나
있음
POST

대기 또는 준비된 관리 지갑만 다시 맡긴다.

없음

설정이 필요하다. 주소를 대신 만들지 않는다.

바로 안 끝남

발급 중이다. 그 주소로 입금하지 않는다.

만들어진 뒤 · 24단어

POST

24단어를 보여 준다. 예전 독립 키 지갑은 대상이 아니다.

예전 지갑인지 볼 때 GET

단어 확인과 순서로 이어지지는 않는다.

분기어떤 단어로 확인하나
방금 본 단어
POST

방금 연 단어로 확인한다.

적어 둔 단어
POST

적어 둔 단어로 확인한다. 위의 확인과 둘 다 호출하지는 않는다.

단어를 이미 봤고 아직 대기일 때 POST

목록을 다시 열면 그 대기를 마친다. 단어 확인 호출 다음에 꼭 두는 단계는 아니다.

보관 파일을 다시 묶을 때 · 외부 지갑과는 다른 길

GET

다시 묶을 요청이 있는지 본다.

승인할 때, 이 순서

POST

서명할 문구를 받는다.

이어서

POST

그 문구에 서명한 뒤 승인한다.

홈

고른 네트워크의 자산만 보여 준다. 확인하지 못한 잔액은 0이 아니다.

GET

잔액과 성과를 한 번에 읽는다.

묶음에 없거나 그 화면을 열 때. 아래는 순서가 아니다.

계정 잔액GET
근거GET
이력GET
기간 성과GET
분기관측이 있나
있음

시세를 볼 때. 아래는 순서가 아니다.

화면 가격GET

홈이 쓰는 저장된 가격이다.

표시 통화GET

저장된 종가로만 환산한다.

시세를 따로 읽을 때GET
목록GET
등록 자산GET
자산 성과GET
없거나 실패

잔액은 빈칸이다. 다시 읽기만 남고, 0이나 임의 환율로 채우지 않는다.

입금

고른 네트워크의 주소만 보여 준다.

GET

그 계정의 주소를 확인한다.

분기주소가 있나
있음
GET

확인된 뒤에만 QR을 받는다. 그 네트워크 주소만 보여 준다.

없음 · 실패 · 미지원

QR로 가지 않는다. 다른 주소를 만들어 채우지 않는다.

지정가

호가를 보기만 해서는 돈이 예약되지 않는다.

GET

수수료와 기록 비용을 포함한 견적 조건을 본다. 이 조회만으로 돈이 예약되지 않는다.

잡을 수 있는 금액을 볼 때 GET

견적을 만들기 전에 꼭 거치는 단계는 아니다.

호가를 볼 때 GET

시장 호가만 읽는다. 견적 제출이 이 호출을 거치지는 않는다.

견적을 만들 때

POST

아직 돈을 예약하지 않는다.

이어서, 승인할 때

POST

방금 본 내용의 해시가 같을 때만 예약하고 서명을 맡긴다.

분기올라간 뒤
대기 · 일부 · 전량
GET

주문 목록을 본다.

한 건을 열 때 GET
다음 조치가 있을 때 POST

목록 다음에 꼭 호출하는 단계는 아니다.

안 팔린 수량만 취소
POST

이미 체결된 수량은 취소로 지우지 않는다.

체인 답이 없음

실패나 환불로 단정하지 않고, 같은 주문을 다시 보내지 않는다.

스왑

같은 네트워크 안에서 바꾼다. 견적만 볼 때는 돈이 예약되지 않는다.

GET

화면을 열 때 견적 조건을 본다.

수량을 넣는 동안 GET

받을 수량을 미리 본다. 견적 제출 전에 꼭 한 번 호출하는 단계는 아니다.

목록을 볼 때 GET

견적을 만들 때

POST

아직 돈을 예약하지 않는다.

분기수수료 USDT가 있나
있음
POST

본 교환을 승인한다.

없음
POST

가진 자산 일부를 먼저 USDT로 바꾼다. 들어온 뒤에만 본 교환으로 간다.

비용 대체를 볼 때. 아래 둘은 하나를 고른다.

목록 GET
이 조건으로 승인 POST
더 높은 비용을 요청 POST

승인이 아니다. 새 조건을 다시 본 뒤 따로 승인한다.

실행

분기받는 수량이 최소 이상인가
이상
POST

보내기 직전에 확인한 뒤 교환이 진행된다.

최소보다 적음

교환 자체가 취소되고 수수료도 가져가지 않는다.

보내기 전 · 멈춤 · 막힘

상황에 하나. 순서가 아니다.

보내기 전POST
출발 전 취소POST
실행 중단POST
이더리움 취소POST
실행 복구 승인POST
이미 올린 전송POST

취소하거나 서두르는 검토만 만든다. 그 자체로 전송 승인이 아니다.

브릿지

코인은 그대로 두고 네트워크만 바꾼다. 출발에서 빠졌다고 완료가 아니다.

GET

화면을 열 때 견적 조건을 본다.

목록GET
한 건GET

견적을 만들 때

POST

아직 출발하지 않는다.

이어서, 승인할 때

POST

승인한 뒤에만 출발한다.

분기도착 지갑에 들어왔나
들어옴

들어온 수량으로 끝난다. 보낸 것보다 적을 수 있다.

출발만 빠짐
POST

완료가 아니다. 같은 요청을 다시 보내지 않고 도착만 다시 본다.

만료 · 복구 · 보내기 전
보내기 전POST

만료일 때, 이 순서

GET

만료 조건을 읽는다.

이어서

POST

그 조건이 같을 때만 승인한다.

복구를 볼 때

목록 GET

하나를 고른다

승인POST
취소POST

스왑 다음 브릿지

한 번 승인하지만 실행은 순서대로다. 둘째 단계가 막혀도 이미 도착한 코인은 잔고로 남는다.

GET

화면을 열 때 쓸 수 있는 경로를 본다.

목록GET
한 건GET
경로만 만들 때 POST

견적 없이 경로만 만든다. 화면의 견적 제출은 이 주소가 아니다.

견적을 만들 때

POST

화면이 견적을 낼 때 호출한다. 아직 승인 전이다.

분기도착 쪽 기록 비용이 있나
있음
POST

한 번 승인하면 단계가 순서대로 나간다.

단계 수수료를 낼 때, 이 순서

POST

그 단계 수수료를 승인한다.

이어서

POST

승인한 수수료를 마친다.

없음

첫 단계도 시작하지 않는다.

진행

분기다음 단계 가격이 한도 안인가
이어감
POST
한도 밖
POST

그 단계에서 멈춘다. 도착한 코인은 잔고로 남는다.

보내기 전 POST

한도 밖 반환과 둘 다 호출하지는 않는다.

실행이 막히거나 기한이 지남
GET

복구 조건을 읽는다. 이 조회는 전송 승인이 아니다.

가속이나 취소를 요청할 때 POST

새 조건만 만든다. 승인 전에 꼭 거치는 단계는 아니다.

승인할 때

POST

읽어 둔 조건이 같을 때만 승인한다.

솔라나 기한일 때, 이 순서

GET

이어서

POST

USDG와 USDT 환전

로빈후드 지갑에서만 한다. 지정가와 별개이고 1대 1이 아니다.

GET

화면을 열 때 환전 조건을 본다.

목록GET
한 건GET

견적을 만들 때

POST

보낼 수량을 고정한다. 아직 보내지 않는다.

이어서, 승인할 때

POST

승인 뒤에만 보낸다.

분기이미 보냈나
아직

상황에 하나. 순서가 아니다.

보내기 전 취소POST
출발 전 취소POST
실행 중단POST
이더리움 취소POST
수수료 마련POST
실행 허락POST
이미 보냄
POST

취소만으로 환불되지 않는다. 이 호출은 이미 올린 전송을 취소하거나 서두르는 검토만 만든다.

출금

주소, 네트워크, 수량, 수수료를 확인하고 6자리를 넣어야 한다. 검토만 고르면 돈이 나가지 않는다.

GET

화면을 열 때 나갈 조건을 본다.

목록GET
출금 키를 볼 때 GET
이 기기에 키가 없을 때 POST

이미 등록된 키를 이 호출로 갈아 타지는 않는다.

검토를 만들 때

POST

검토만 만든다. 아직 돈이 나가지 않는다.

이어서, 서명할 문구

GET

이어서, 6자리와 함께 승인

POST

도전 문구와 6자리가 맞을 때만 서명을 맡긴다.

분기이미 나갔나
보내기 전
POST

아직 나가지 않았을 때만 취소한다.

진행 중
POST

진행만 갱신한다. 돈을 다시 보내지 않는다.

키를 바꿀 때, 이 순서

지금 키 GET
POST

바꿀 문구를 받는다.

이어서

POST

6자리와 함께 새 키로 마친다.

답이 없거나 번호가 막힘

다시 보내지 않는다.

복구가 필요할 때, 이 순서

GET

복구 내용을 읽는다.

이어서

GET

이어서

POST

읽어 둔 내용과 6자리가 맞을 때만 승인한다.

번호가 막혔을 때, 이 순서

GET

이어서

GET

이어서

POST

복구 승인과 둘 다 호출하지는 않는다.

내역

자산 기록과 주문 기록은 한 줄로 합치지 않는다. 시세가 없는 날은 빈칸이다.

화면을 열 때. 아래는 순서가 아니다.

GET

거래 목록이다.

GET

활동 목록이다.

활동 한 건을 열 때 GET

목록 다음에 꼭 호출하지는 않는다.

실제 체결GET
큰 체결GET
이어진 조치가 있을 때GET
수량GET
시세 이력GET
산 가격GET
분기그날 종가가 있나
있음

저장된 종가로만 환산한다.

없음

빈칸으로 둔다. 임의 환율이나 0으로 채우지 않는다.

추천

실제 텔레그램 봇이 없으면 초대는 나가지 않는다.

GET

추천 화면을 열 때 아래 조직을 읽는다.

초대 링크로 앱을 열 때 POST

그 링크의 추천을 등록한다. 추천 화면을 열 때마다 호출하지는 않는다.

분기봇이 준비됐나
준비됨

초대 링크를 만든다.

없음

링크는 비우고 초대는 나가지 않는다.

설정

외부 지갑은 주소 소유만 확인한다. 기존 잔액은 유지된다.

그 화면을 열 때. 아래는 순서가 아니다.

GET

내 정보다.

GET

기본 토큰이다.

GET

화면 문구다.

오류를 남길 때 POST
본인 기록을 볼 때 GET

같은 주소다. 남기기와 보기는 둘 다 호출하지 않는다.

외부 지갑

GET

연결된 지갑을 본다.

연결할 때

POST

고른 네트워크의 주소 소유를 지갑 앱으로 확인한다.

분기6자리까지 맞나
맞음
POST

연결만 마치고 잔액은 그대로 둔다.

그만둠
POST

연결하지 않는다.

인증 앱만 분실

신청 즉시 로그인이 풀리고 계정이 막힌다. 승인 전에는 새 키를 받지 못한다.

POST

신청과 동시에 잠근다.

GET

담당자가 검토 목록을 본다.

이어서, 승인할 때

POST

목록을 보기만 해서 승인되지는 않는다.

분기승인됐나
승인됨

비밀을 만들 때, 둘 중 하나

POST

같은 곳에 접수번호가 있으면 이 주소로 비밀을 만든다.

승인 번호와 토큰을 넣을 때 POST

위의 접수번호 호출과 둘 다 하지는 않는다.

이어서, 6자리

POST

방금 만든 비밀의 6자리가 맞으면 등록을 마친다.

승인 전

새 키를 받지 못하고 돈도 옮기지 못한다.

텔레그램과 인증 앱을 모두 분실

접수만으로 기존 계정이 막히지 않고, 자산은 새 고객으로 합치지 않는다.

POST

새 텔레그램 증명으로 접수만 한다. 토큰만으로 돈을 옮기지 못한다.

아래는 순서가 아니다.

상태를 볼 때 POST

접수번호와 토큰으로 지금 상태를 읽는다.

담당자가 기존 고객을 맞출 때 POST
담당자가 표결할 때 POST

맞추기 다음에 자동으로 호출되지는 않는다.

목록GET
정책을 볼 때GET
정책을 저장할 때POST

보기와 같은 주소다. 둘 다 한 번에 호출하지는 않는다.

분기표결이 모였나
모임
POST

새 인증 앱 비밀을 만든다.

이어서

POST

6자리가 맞으면 새 인증 앱을 확인한다. 이 호출만으로 복구가 끝나지는 않는다.

지갑 키 복원까지 끝난 뒤

POST

마친다. 자산은 새 고객에 합치지 않는다.

접수를 거둠
POST

기존 계정은 이 접수로 잠그지 않는다.

표결 전

토큰만으로 돈을 옮길 수 없다.

이용 종료

요청을 적은 것만으로 끝나지 않는다. 남은 자산이나 진행 중 거래가 있으면 종료할 수 없다.

GET

현재 문과 진행 중인 요청을 본다.

요청할 때

POST

사유, 인증 앱, 동의로 검토를 요청한다. 보기만으로 요청이 생기지는 않는다.

담당자

GET

고른 회원의 요청을 본다.

검토를 남길 때

POST

보기 다음에 자동으로 검토가 저장되지는 않는다.

분기남은 자산과 진행 중 거래가 없나
없음
POST

마감이 열려 있을 때만 종료를 마친다.

있음

요청은 남지만 종료는 끝나지 않는다.

담당자

고객 앱과 주소가 다르다. 회원을 고른 뒤에만 그 사람의 자료가 열린다. 이 화면이 키를 들고 고객 돈을 보내지는 않는다.

POST

담당자 주소에서 로그인한다. 고객 로그인과 다르다.

들어왔는지 볼 때 GET
나갈 때 POST

로그인 다음에 꼭 호출하는 주소는 아니다.

인증 앱이 있나 GET

처음 등록할 때, 이 순서

POST

비밀을 만든다.

이어서

POST

6자리가 맞으면 등록이 끝난다.

갈아 탈 때 POST

기존 6자리가 맞아야 새 비밀을 만든다. 처음 등록과 둘 다 호출하지는 않는다.

회원

GET

회원을 고른다. 고르기 전에는 그 사람의 자료가 열리지 않는다.

고른 뒤 그 화면을 열 때. 아래는 순서가 아니다.

잔액GET
이력GET
근거GET
운영 기록GET
요약GET
추세GET
거래GET
분기회원을 고른 뒤
조회

그 화면을 열 때. 순서가 아니다.

활동GET
활동 한 건GET
평가GET
성과GET
환율 이력GET
자산 성과GET
자산 등록GET
추천GET
추천 구조GET
브릿지 목록GET
정책과 표시

그 화면을 열 때. 읽기와 저장은 둘 중 하나다.

역할POST
계정 잠금POST
수수료 보기GET
수수료 저장POST

이미 잡힌 주문은 소급하지 않는다.

출금 정책 보기GET
출금 정책 저장POST

이미 서명한 출금은 바꾸지 않는다.

출금 정책 이력GET
토큰 목록 보기GET
토큰 목록 고치기POST
별명POST
표시 정보GET
제안 보기GET
제안 만들기POST

제안만으로 적용되지 않는다.

제안 결정POST
화면 오류GET
막힌 작업

읽을 때와 다시 시도는 다른 호출이다.

수수료 작업 보기GET
수수료 다시 시도POST

보기 다음에 자동으로 다시 시도하지는 않는다.

주문 올리기 보기GET
주문 올리기 다시 시도POST
장부 맞추기 보기GET
장부 맞추기 다시POST

담당자 화면이 키를 들고 보내지는 않는다.

살아 있음

프로세스가 응답하는 것과 돈 전송을 인수했다는 것은 다르다.

GET

이 프로세스가 살아 있는지만 답한다.

분기인수가 끝났나
아직
GET

지금은 인수 완료가 아니므로 준비되지 않았다고 답한다.

문서 사이트
문서의 살아 있음GET

앱과 별도다. 문서 사이트는 원장과 세션을 열지 않는다.

문서의 준비GET

앱의 준비 답과 별도다. 둘을 이어서 호출하지는 않는다.

GET

/api/account-evidence

그 잔액을 어떤 관측으로 봤는지 근거만 읽는다.

DB

조회 v3.chain_accounts · v3.migration_balance_candidates · v3.solana_balance_audits · v3.solana_collection_network

잔액을 고치거나 송금하지 않는다.

GET

/api/activity

활동 목록을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_observations · v3.bridge_tracks · v3.chain_accounts · v3.chain_movements · v3.customer_order_events · v3.customer_trades · v3.history_entries · v3.movement_sources · v3.order_admissions · v3.portfolio_revisions · v3.route_cancellations · v3.route_plans · v3.route_progress · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_dispatches · v3.transfer_execution_events · v3.transfer_intents · v3.transfer_settlements

다른 고객의 활동은 나오지 않는다.

GET

/api/activity/detail

활동 한 건의 내용을 읽는다.

DB

조회 v3.active_order_holds · v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_observations · v3.bridge_send_results · v3.bridge_signatures · v3.bridge_tracks · v3.chain_accounts · v3.customer_order_events · v3.customer_trades · v3.customers · v3.final_balance_jobs · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_authorities · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_reviews · v3.trade_events

그 한 건만 보여 준다.

GET

/api/admin/activity

고른 회원의 활동을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_observations · v3.bridge_tracks · v3.chain_accounts · v3.chain_movements · v3.customer_order_events · v3.customer_trades · v3.history_entries · v3.movement_sources · v3.order_admissions · v3.portfolio_revisions · v3.route_cancellations · v3.route_plans · v3.route_progress · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_dispatches · v3.transfer_execution_events · v3.transfer_intents · v3.transfer_settlements

회원을 고른 뒤에만 열린다.

GET

/api/admin/activity/detail

그 활동 한 건을 읽는다.

DB

조회 v3.active_order_holds · v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_observations · v3.bridge_send_results · v3.bridge_signatures · v3.bridge_tracks · v3.chain_accounts · v3.customer_order_events · v3.customer_trades · v3.customers · v3.final_balance_jobs · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_authorities · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_reviews · v3.trade_events

읽기만 한다.

GET

/api/admin/asset-performance

고른 회원의 자산 성과를 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.bridge_settlement_balances · v3.bridge_tracks · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.economic_asset_members · v3.economic_assets · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.history_entries · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.rpc_responses · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents

읽기만 한다.

GET

/api/admin/asset-registry

고른 회원의 자산 등록 정보를 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

담당 v3.operator_sessions · v3.staff_roles

조회 v3.economic_asset_members · v3.economic_assets

접속 기록 v3.staff_events

여기서 자산을 새로 발행하지 않는다.

GET

/api/admin/bridges

담당자가 브릿지 목록을 읽는다.

  1. 담당 조회 v3.operator_sessions · v3.sessions · v3.staff_roles 기록 v3.staff_events
  2. DB 조회 v3.bridge_admissions · v3.bridge_cancellations · v3.bridge_execution_jobs · v3.bridge_send_attempts · v3.bridge_send_results · v3.bridge_signatures · v3.bridge_source_expiry_approvals · v3.bridge_source_expiry_balances · v3.bridge_source_expiry_settlements
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.bridge_settlement_balances · v3.bridge_settlements · v3.bridge_tracks

여기서 브릿지를 다시 보내지 않는다.

GET

/api/admin/client-error

담당자가 화면 오류 기록을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

담당 v3.operator_sessions · v3.staff_roles

조회 v3.security_events

접속 기록 v3.staff_events

고객의 본인 목록과 다르다. 돈을 움직이지 않는다.

GET

/api/admin/customer-closure

담당자가 고른 회원의 종료 요청을 읽는다.

DB

담당 v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.customer_closure_completions · v3.customer_closure_requests · v3.customer_closure_reviews · v3.customers

접속 기록 v3.staff_events

회원을 고르기 전에는 열리지 않는다.

POST

/api/admin/customer-closure/review

담당자가 종료 요청을 검토한다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customer_closure_completions
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. DB 조회 v3.chain_accounts · v3.customer_closure_completions · v3.customer_closure_requests · v3.customers · v3.otp_credentials · v3.portfolio_revisions
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 조회 v3.chain_accounts · v3.customer_closure_requests · v3.customers · v3.history_entries · v3.portfolio_revisions 기록 v3.customer_closure_completions · v3.customer_closure_requests · v3.customers · v3.otp_credentials · v3.security_events · v3.sessions
  8. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  9. 담당 조회 v3.operator_sessions · v3.staff_roles
  10. DB 조회 v3.customer_closure_requests · v3.customer_closure_reviews · v3.customers · v3.staff_events 기록 v3.customer_closure_reviews · v3.staff_events

검토만으로 고객 돈이 나가지 않고, 종료가 끝나지도 않는다.

POST

/api/admin/customer-protection

고른 회원의 계정을 막거나 푼다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 담당 조회 v3.operator_sessions
  3. DB 조회 v3.customer_protection_changes · v3.customers · v3.otp_credentials · v3.staff_events
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 조회 v3.customers · v3.recovery_approvers · v3.staff_events · v3.staff_roles 기록 v3.customer_protection_changes · v3.customers · v3.otp_credentials · v3.recovery_approvers · v3.sessions · v3.staff_events · v3.staff_roles

인증 앱 확인이 있어야 한다. 막는 것은 송금이 아니다.

GET

/api/admin/customers

담당자가 회원을 찾는다.

DB

조회 v3.chain_accounts · v3.customer_login_activity · v3.customers · v3.identities · v3.legacy_metadata_records · v3.otp_credentials · v3.portfolio_revisions · v3.recovery_approvers · v3.staff_events · v3.staff_roles

고르기 전에는 그 사람의 거래가 열리지 않는다.

GET

/api/admin/events

운영 기록을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.staff_events

기록을 지우거나 돈을 움직이지 않는다.

GET

/api/admin/evidence

고른 회원의 관측 근거를 읽는다.

DB

조회 v3.chain_accounts · v3.migration_balance_candidates · v3.solana_balance_audits · v3.solana_collection_network

읽기만 한다.

GET

/api/admin/finance-history

고른 회원의 금융 이력을 읽는다.

DB

조회 v3.chain_accounts · v3.final_balance_jobs · v3.legacy_finance_collection_events · v3.legacy_finance_head · v3.legacy_finance_history_attempts · v3.legacy_finance_imports · v3.legacy_finance_resolutions · v3.legacy_finance_rows · v3.legacy_finance_venue_calls · v3.legacy_finance_venue_histories · v3.legacy_finance_venue_jobs · v3.legacy_finance_venue_wallets

읽기만 한다.

GET

/api/admin/history

고른 회원의 잔액 이력을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.chain_accounts · v3.customer_login_activity · v3.history_entries · v3.portfolio_revisions · v3.transaction_action_sources · v3.transaction_actions

접속 기록 v3.staff_events

읽기만 한다.

POST

/api/admin/login

담당자 주소에서 로그인한다. 고객 로그인과 다르다.

  1. DB 조회 v3.operators
  2. 비밀번호 bcrypt 해시와 대조한다.
  3. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  4. DB 기록 v3.operator_sessions
분기계정과 인증 앱
맞음

담당자 세션이 열린다.

다름

열리지 않는다.

POST

/api/admin/logout

담당자 세션만 지운다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 기록 v3.operator_sessions

고객 돈은 움직이지 않는다.

GETPOST

/api/admin/manifest-reconciliation

Manifest 주문 장부 맞추기를 읽거나 다시 돌린다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.manifest_decodes · v3.manifest_jobs · v3.solana_transactions

접속 기록 v3.staff_events

담당자 화면이 키를 들고 보내지는 않는다.

GET

/api/admin/metadata

회원 표시 정보를 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.economic_asset_members · v3.economic_assets · v3.legacy_metadata_records · v3.staff_events

읽기만 한다.

POST

/api/admin/metadata-decision

표시 정보 제안을 승인하거나 거절한다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.staff_events 기록 v3.staff_events
분기결정
승인

그 제안만 적용한다.

거절

바꾸지 않는다.

GETPOST

/api/admin/metadata-proposals

표시 정보 변경 제안을 보거나 만든다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.staff_events 기록 v3.staff_events

제안만으로는 적용되지 않는다.

POST

/api/admin/nickname

고른 회원의 보이는 이름을 바꾼다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 담당 조회 v3.operator_sessions · v3.sessions · v3.staff_roles
  3. DB 조회 v3.customers · v3.legacy_metadata_records · v3.otp_credentials · v3.staff_events
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 기록 v3.otp_credentials · v3.staff_events

이름만 바꾼다.

GET

/api/admin/operations-summary

운영 요약을 읽는다.

DB

담당 v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.chain_accounts · v3.customers · v3.legacy_metadata_records

접속 기록 v3.staff_events

집계만 본다.

GET

/api/admin/operations-trend

운영 추세를 읽는다.

DB

담당 v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.chain_accounts · v3.customer_order_events · v3.customer_trade_attributions · v3.customer_trades · v3.customers · v3.order_admissions

접속 기록 v3.staff_events

집계만 본다.

GET

/api/admin/order-fee-jobs

막힌 주문 수수료 작업을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.order_fee_jobs · v3.order_placement_jobs · v3.solana_transactions

접속 기록 v3.staff_events

다시 시도하지 않는다.

POST

/api/admin/order-fee-retry

막힌 주문 수수료 작업을 다시 시도한다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.order_fee_jobs · v3.order_placement_jobs · v3.staff_events 기록 v3.order_fee_job_events · v3.order_fee_jobs · v3.order_placement_events · v3.order_placement_jobs · v3.staff_events

담당자 화면이 키를 들고 고객 돈을 보내지는 않는다.

GET

/api/admin/order-placement-jobs

막힌 주문 올리기 작업을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.order_fee_jobs · v3.order_placement_jobs · v3.solana_transactions

접속 기록 v3.staff_events

다시 시도하지 않는다.

POST

/api/admin/order-placement-retry

막힌 주문 올리기 작업을 다시 시도한다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.order_fee_jobs · v3.order_placement_jobs · v3.staff_events 기록 v3.order_fee_job_events · v3.order_fee_jobs · v3.order_placement_events · v3.order_placement_jobs · v3.staff_events

담당자 브라우저가 서명하지 않는다.

GET

/api/admin/otp

담당자 인증 앱이 등록돼 있는지 읽는다.

DB

조회 v3.operators · v3.otp_credentials

읽기만 한다.

POST

/api/admin/otp/confirm

담당자 인증 앱 6자리를 확인한다.

  1. DB 조회 v3.operators · v3.otp_credentials
  2. 봉인 AES-GCM 봉인을 연다.
  3. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  4. DB 기록 v3.otp_credentials · v3.security_events · v3.staff_events
분기6자리
맞음

등록이 끝난다.

다름

끝나지 않는다.

POST

/api/admin/otp/enroll

담당자 인증 앱 등록을 시작한다.

  1. DB 조회 v3.operators · v3.otp_credentials
  2. 봉인 AES-GCM 봉인을 연다.
  3. 봉인 AES-GCM으로 비밀을 봉인한다.
  4. DB 기록 v3.otp_credentials · v3.staff_events

고객 지갑과 무관하다.

POST

/api/admin/otp/replace

담당자 인증 앱을 갈아 등록하기 시작한다.

  1. DB 조회 v3.operators · v3.otp_credentials
  2. 봉인 AES-GCM 봉인을 연다.
  3. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  4. DB 기록 v3.otp_credentials
  5. 봉인 AES-GCM으로 비밀을 봉인한다.
  6. DB 기록 v3.otp_credentials · v3.staff_events

기존 확인이 있어야 갈아 탄다.

GET

/api/admin/portfolio

고른 회원의 잔액을 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.history_entries · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_lifetimes · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.portfolio_wallet_observation_proofs · v3.rpc_responses · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents

담당자 화면이 그 돈을 옮기지는 않는다.

GET

/api/admin/portfolio-performance

고른 회원의 기간 성과를 읽는다.

DB

조회 v3.chain_accounts · v3.legacy_finance_head · v3.portfolio_daily_report_points · v3.portfolio_daily_report_runs

읽기만 한다.

GET

/api/admin/referral-structures

추천 조직을 찾아 읽는다.

DB

조회 v3.customer_referral_links · v3.customers · v3.identities · v3.legacy_metadata_records · v3.operators · v3.staff_events

초대를 대신 보내지 않는다.

GET

/api/admin/referrals

고른 회원의 추천 조직을 읽는다.

DB

조회 v3.customer_referral_links · v3.customers · v3.identities · v3.legacy_metadata_records · v3.operators · v3.staff_events

읽기만 한다.

POST

/api/admin/roles

담당자 역할을 켜거나 끈다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 담당 조회 v3.operator_sessions
  3. DB 조회 v3.customer_protection_changes · v3.customers · v3.otp_credentials · v3.staff_events
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 조회 v3.customers · v3.recovery_approvers · v3.staff_events · v3.staff_roles 기록 v3.customer_protection_changes · v3.customers · v3.otp_credentials · v3.recovery_approvers · v3.sessions · v3.staff_events · v3.staff_roles

인증 앱 확인이 있어야 한다. 고객 돈을 보내지 않는다.

GETPOST

/api/admin/service-fees

서비스 수수료 정책을 읽거나, 이후 요청부터 적용할 정책을 저장한다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.staff_events

분기호출
읽기

지금 정책을 본다.

저장

이미 잡힌 주문의 수수료를 소급해서 바꾸지 않는다.

GET

/api/admin/session

담당자 세션이 살아 있는지 읽는다.

DB

조회 v3.operators

고객 세션을 대신 열어 주지 않는다.

GETPOST

/api/admin/token-catalog

담당자가 보이는 토큰 목록을 읽거나 고친다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.chain_accounts · v3.economic_assets · v3.legacy_metadata_records · v3.portfolio_revisions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions 기록 v3.economic_asset_members · v3.economic_assets · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions

목록을 고친다고 잔액이 옮겨지지는 않는다.

GET

/api/admin/transactions

담당자가 보는 거래 목록을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.bridge_tracks · v3.chain_accounts · v3.customer_trade_attributions · v3.direct_swap_jobs · v3.identities · v3.ledger_event_sources · v3.ledger_events · v3.legacy_finance_context · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.movement_sources · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_execution_expiries · v3.order_execution_failures · v3.order_placement_events · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_fee_charges · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures · v3.staff_events

고른 범위의 기록만 본다. 송금하지 않는다.

GET

/api/admin/valuation

고른 회원의 평가를 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.history_entries · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.rpc_responses · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents

빈 시세를 임의 환율로 채우지 않는다.

GETPOST

/api/admin/withdrawal-policies

출금 정책을 읽거나 이후 요청부터 적용할 정책을 저장한다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.staff_events · v3.transfer_policies · v3.withdrawal_policy_revisions

이미 서명한 출금을 이 저장으로 바꾸지 않는다.

GET

/api/admin/withdrawal-policies/history

출금 정책이 바뀐 이력을 읽는다.

DB

담당 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles

조회 v3.staff_events · v3.transfer_policies · v3.withdrawal_policy_revisions

읽기만 한다.

GET

/api/asset-performance

자산별 성과를 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.bridge_settlement_balances · v3.bridge_tracks · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.economic_asset_members · v3.economic_assets · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.history_entries · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.rpc_responses · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents

분기근거
있음

그 성과를 보여 준다.

없음

빈칸으로 둔다.

GET

/api/asset-registry

이 고객이 보는 자산 등록 정보를 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.economic_asset_members · v3.economic_assets

등록 여부와 잔액 권한은 별개다.

POST

/api/auth/logout

세션과 끝나지 않은 로그인 대기를 함께 지운다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customers · v3.login_challenges 기록 v3.login_challenges · v3.sessions
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. DB 기록 v3.sessions

돈과 지갑은 그대로 둔다.

POST

/api/auth/otp

대기 중인 로그인에 인증 앱 6자리를 맞춘다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customers · v3.identities · v3.login_challenges · v3.otp_credentials
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 기록 v3.customer_login_activity · v3.login_challenges · v3.otp_credentials · v3.security_events · v3.sessions
분기6자리
맞음

세션이 열리고 대기는 지운다.

다름

세션은 열리지 않는다.

GET

/api/auth/pending

텔레그램 확인 뒤, 6자리를 넣기 전의 대기만 읽는다. 돈을 움직이지 않는다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customers · v3.identities · v3.login_challenges · v3.otp_credentials
분기대기가 있나
있음

누구의 6자리를 기다리는지 보여 준다.

없거나 시간 지남

다시 텔레그램에서 열어야 한다.

POST

/api/auth/telegram

가입 버튼은 없다. 텔레그램 증명으로 누구인지 확인하고, 맞으면 로그인 상태를 연다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. 증명 이미 열린 세션과 텔레그램 서명을 대조한다. 세션을 새로 만들지는 않는다.
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  5. DB 조회 v3.customers · v3.login_challenges 기록 v3.login_challenges · v3.sessions
  6. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  7. DB 조회 v3.customers · v3.identities · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_tickets · v3.retired_telegram_identities 기록 v3.customers · v3.identities · v3.login_proofs · v3.security_events · v3.sessions
분기증명 결과
인증 앱이 있음

세션은 아직 없고 짧은 대기만 남긴다.

인증 앱이 없음

바로 세션이 열린다. 지갑은 아직 없다.

거절

같은 고객의 기존 세션이 살아 있으면 그 로그인을 유지한다. 아니면 들어가지 못한다.

POST

/api/bridge-recoveries/{id}/approve

복구 검토와 같을 때만 그 복구를 승인한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_recovery_approvals · v3.bridge_recovery_attempts · v3.bridge_recovery_expiries · v3.bridge_recovery_receipts · v3.bridge_recovery_releases · v3.bridge_recovery_requests · v3.bridge_recovery_retirements · v3.bridge_recovery_signatures · v3.bridge_send_attempts · v3.bridge_signatures · v3.bridge_tracks · v3.chain_accounts · v3.customers · v3.financial_freezes

기록 v3.bridge_recovery_approvals

승인된 복구만 진행한다. 같은 브릿지를 새로 만들지는 않는다.

POST

/api/bridge-recoveries/{id}/cancel

아직 진행하지 않은 복구 검토를 취소한다.

  1. DB 조회 v3.bridge_recovery_approvals · v3.bridge_recovery_attempts · v3.bridge_recovery_releases · v3.bridge_recovery_retirements · v3.bridge_recovery_signatures
  2. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  3. DB 조회 v3.bridge_recovery_retirements · v3.chain_accounts · v3.customers 기록 v3.bridge_recovery_retirements

이미 끝난 복구를 이 취소로 되돌리지는 않는다.

GET

/api/bridges

이 고객의 브릿지 목록을 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.bridge_admissions · v3.bridge_cancellations · v3.bridge_execution_jobs · v3.bridge_send_attempts · v3.bridge_send_results · v3.bridge_signatures · v3.bridge_source_expiry_approvals · v3.bridge_source_expiry_balances · v3.bridge_source_expiry_settlements · v3.chain_accounts
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.bridge_settlement_balances · v3.bridge_settlements · v3.bridge_tracks

완료와 도착 대기를 한 줄로 합치지 않는다.

POST

/api/bridges/quote

출발과 도착을 견적으로 만든다.

  1. DB 조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_signatures
  2. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  3. DB 조회 v3.chain_accounts
  4. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  5. DB 조회 v3.bridge_observations · v3.bridge_tracks · v3.chain_accounts 기록 v3.bridge_admissions

견적만 만든다. 출발에서 빠지지 않는다.

GET

/api/bridges/quote-options

브릿지 견적에 필요한 조건을 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.bridge_admissions · v3.bridge_cancellations · v3.bridge_execution_jobs · v3.bridge_send_attempts · v3.bridge_send_results · v3.bridge_signatures · v3.bridge_source_expiry_approvals · v3.bridge_source_expiry_balances · v3.bridge_source_expiry_settlements · v3.chain_accounts
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.bridge_settlement_balances · v3.bridge_settlements · v3.bridge_tracks

아직 자산을 옮기지 않는다.

GET

/api/bridges/{id}

브릿지 한 건의 출발과 도착 상태를 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_observations · v3.bridge_tracks

분기도착
들어옴

들어온 수량으로 끝난 상태다.

출발만 빠짐

완료가 아니다.

POST

/api/bridges/{id}/approve

견적과 같을 때만 브릿지 출발을 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_signatures
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.chain_accounts 기록 v3.bridge_approvals

출발에서 빠졌다고 완료가 아니다. 도착 수량이 적으면 그 수량으로 끝난다.

POST

/api/bridges/{id}/cancel

아직 보내지 않은 브릿지만 취소한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_observations · v3.bridge_send_results · v3.bridge_signatures · v3.chain_accounts · v3.customers · v3.route_bridge_authorities

기록 v3.bridge_cancellations

분기전송
보내기 전

취소한다.

이미 출발

취소만으로 도착이나 환불이 되지 않는다.

GET

/api/bridges/{id}/recoveries

이 브릿지의 복구 목록을 읽는다.

DB

조회 v3.bridge_recovery_approvals · v3.bridge_recovery_attempts · v3.bridge_recovery_expiries · v3.bridge_recovery_receipts · v3.bridge_recovery_releases · v3.bridge_recovery_requests · v3.bridge_recovery_retirements · v3.bridge_recovery_signatures

돈을 다시 보내지 않는다.

POST

/api/bridges/{id}/reobserve

같은 브릿지를 다시 보내지 않고, 도착만 다시 보게 한다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_observations · v3.bridge_send_results · v3.bridge_settlement_balances · v3.bridge_settlements · v3.bridge_signatures · v3.bridge_tracks · v3.chain_accounts · v3.route_bridge_authorities

기록 v3.bridge_execution_jobs · v3.bridge_observation_requests · v3.bridge_poll_jobs

도착이 늦어도 재전송하지 않는다.

GET

/api/bridges/{id}/source-expiry

출발 쪽 기한이 지났는지 검토 내용을 읽는다.

  1. DB 조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_observations · v3.bridge_send_attempts · v3.bridge_settlements · v3.bridge_signatures · v3.chain_accounts · v3.customers
  2. 서명 지갑 서명을 검증한다.
  3. DB 조회 v3.bridge_source_expiry_approvals · v3.bridge_source_expiry_balances · v3.bridge_source_expiry_settlements
  4. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  5. DB 조회 v3.active_bridge_holds · v3.chain_accounts

읽기만 한다. 아직 정리하지 않는다.

POST

/api/bridges/{id}/source-expiry/approve

출발 기한 검토와 같을 때만 그 정리를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.bridge_source_expiry_approvals · v3.bridge_source_expiry_balances · v3.bridge_source_expiry_settlements
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.bridge_source_expiry_approvals

도착이 확인되기 전에 완료로 만들지 않는다.

GETPOST

/api/client-error

화면에서 난 오류를 남기거나 본인 기록만 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  3. DB 조회 v3.security_events 기록 v3.security_events
분기호출
남기기

오류 기록만 추가한다. 돈을 움직이지 않는다.

보기

본인 기록만 본다. 담당자 목록은 별도다.

GET

/api/conversions

환전 목록을 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.conversion_quote_evidence · v3.customer_order_events · v3.customer_trades · v3.customers · v3.evm_direct_usdt_values · v3.evm_execution_winners · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_reviews · v3.trade_events

돈을 움직이지 않는다.

GET

/api/conversions/options

로빈후드에서 USDG와 USDT를 바꿀 수 있는 조건을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.staff_events

지정가와 별개다. 1대 1이 아니다.

POST

/api/conversions/quote

보낼 수량을 고정하고 환전 견적을 만든다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers

기록 v3.conversion_quote_evidence

견적만 만든다. 예약하지 않는다.

GET

/api/conversions/{id}

환전 한 건의 상태를 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.conversion_quote_evidence · v3.customer_order_events · v3.customer_trades · v3.customers · v3.evm_direct_usdt_values · v3.evm_execution_winners · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_reviews · v3.trade_events

분기전송
보내기 전

아직 나갈 수 있는 상태다.

이미 보냄

취소만으로 환불되지 않는다.

POST

/api/conversions/{id}/approve

견적과 같을 때만 환전을 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals

승인 뒤에만 보낸다.

POST

/api/conversions/{id}/cancel

아직 보내지 않은 환전만 취소한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals
분기전송
보내기 전

취소한다.

이미 보냄

취소만으로 환불되지 않는다.

POST

/api/conversions/{id}/evm-cancel/approve

이더리움 쪽에서 막을 수 있는 환전 취소를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_cancel_approvals 기록 v3.evm_cancel_approvals
분기상태
아직 막을 수 있음

취소 서명을 맡긴다.

이미 확정

이 승인으로 되돌리지 못한다.

POST

/api/conversions/{id}/execution-authorization/approve

환전을 보내기 직전, 실행 내용이 승인 내용과 같은지 확인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.direct_swap_jobs · v3.evm_execution_authorizations
분기내용
같음

서명을 맡긴다.

다름

보내지 않는다.

POST

/api/conversions/{id}/execution-replacement/prepare

이미 올린 환전 전송을 취소하거나 서두르는 검토만 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_cancel_attempts · v3.evm_replacement_requests 기록 v3.direct_swap_jobs · v3.evm_replacement_requests

취소만으로 환불이 끝난 것은 아니다.

POST

/api/conversions/{id}/execution-termination/approve

진행 중인 환전 실행을 멈추는 검토를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.order_settlement_balances 기록 v3.direct_swap_jobs · v3.evm_preflight_approvals

답을 실패로 단정하지 않는다.

POST

/api/conversions/{id}/fee-recovery/approve

환전 수수료가 부족할 때 수수료 마련을 승인한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.conversion_quote_evidence · v3.customer_order_events · v3.customer_trades · v3.customers · v3.evm_direct_usdt_values · v3.evm_execution_winners · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.fee_payment_attempts · v3.fee_payment_authorizations · v3.fee_payment_retry_approvals · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_reviews · v3.trade_events

기록 v3.fee_payment_authorizations · v3.fee_payment_retry_approvals

수수료가 들어온 뒤에만 본 환전으로 간다.

POST

/api/conversions/{id}/preflight-cancel/approve

체인에 올리기 전 환전 취소를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.service_fee_payments
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_approval_cancel_approvals 기록 v3.direct_swap_jobs · v3.evm_approval_cancel_approvals

아직 나가지 않은 환전만 멈춘다.

GETPOST

/api/customer-closure

이용 종료 요청을 보거나 새로 남긴다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_pages · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.rpc_responses

분기호출
보기

지금 문과 진행 중인 요청을 본다.

요청

사유, 인증 앱, 동의로 검토를 요청한다. 요청만으로 탈퇴가 끝나지 않는다.

POST

/api/customer-closure/finalize

종료를 마친다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customer_closure_completions
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. DB 조회 v3.chain_accounts · v3.customer_closure_completions · v3.customer_closure_requests · v3.customers · v3.otp_credentials · v3.portfolio_revisions
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 조회 v3.chain_accounts · v3.customer_closure_requests · v3.customers · v3.history_entries · v3.portfolio_revisions 기록 v3.customer_closure_completions · v3.customer_closure_requests · v3.customers · v3.otp_credentials · v3.security_events · v3.sessions
  8. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  9. 담당 조회 v3.operator_sessions · v3.staff_roles
  10. DB 조회 v3.customer_closure_requests · v3.customer_closure_reviews · v3.customers · v3.staff_events 기록 v3.customer_closure_reviews · v3.staff_events
분기남은 것
자산과 진행 중 거래가 없고 마감이 열림

종료를 마친다.

남아 있음

요청은 있어도 종료는 끝나지 않는다.

GET

/api/default-tokens

기본으로 보여 줄 토큰을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.economic_asset_members · v3.economic_assets · v3.legacy_metadata_records · v3.staff_events · v3.token_catalog_assets

표시일 뿐 잔액 권한은 생기지 않는다.

GET

/api/deposits/{account}

고른 네트워크의 입금 주소만 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.legacy_vault_imports

분기주소
있음

그 네트워크 주소만 보여 준다.

없음·실패·미지원

다른 네트워크 주소를 대신 만들지 않는다.

GET

/api/deposits/{account}/qr

그 입금 주소의 QR만 만든다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.legacy_vault_imports

주소가 없으면 QR도 다른 주소로 채우지 않는다.

GET

/api/display-prices

표시 통화로 바꿀 때 쓰는 저장된 종가를 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

분기종가
있음

그 종가만 쓴다.

없음

빈칸이다.

GET

/api/executions

실제 체결만 읽는다. 주문 자체와 체결은 별개다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

체결된 것만 담는다.

GET

/api/executions/large

체결이 많을 때의 같은 목록을 더 크게 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

실제 체결만 담는다.

GET

/api/external-wallets

연결한 외부 지갑 목록을 읽는다.

DB

세션 v3.identities · v3.sessions

조회 v3.customers · v3.external_wallet_links · v3.otp_credentials

잔액은 이 호출로 바뀌지 않는다.

POST

/api/external-wallets/cancel

끝나지 않은 외부 지갑 연결을 그만둔다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  3. DB 기록 v3.external_wallet_challenges

연결하지 않는다. 잔액도 움직이지 않는다.

POST

/api/external-wallets/challenge

고른 네트워크에서 주소 소유를 확인할 도전 문구를 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers
  3. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  4. DB 조회 v3.chain_accounts · v3.external_wallet_links · v3.otp_credentials
  5. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  6. DB 기록 v3.external_wallet_challenges
  7. 챌린지 서명할 원문을 새로 발급한다.

아직 연결하지 않는다.

POST

/api/external-wallets/complete

주소 소유와 6자리가 맞으면 외부 지갑을 연결한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.external_wallet_challenges
  3. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  4. DB 조회 v3.customers
  5. 서명 지갑 서명을 검증한다.
  6. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  7. DB 조회 v3.chain_accounts · v3.external_wallet_links · v3.otp_credentials
  8. 봉인 AES-GCM 봉인을 연다.
  9. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  10. DB 조회 v3.external_wallet_links 기록 v3.external_wallet_challenges · v3.external_wallet_links · v3.otp_credentials · v3.security_events

연결만 한다. 기존 잔액은 유지된다.

GET

/api/fees/{id}/replacements

수수료를 다른 자산으로 바꿀 검토 내용을 읽는다.

DB

조회 v3.active_order_holds · v3.chain_accounts · v3.customer_trades · v3.customers · v3.evm_order_fee_values · v3.evm_signed_calls · v3.evm_swap_reviews · v3.fee_payment_retry_approvals · v3.fee_payment_signatures · v3.fee_replacement_approvals · v3.fee_replacement_attempts · v3.fee_replacement_outcomes · v3.fee_replacement_refreshes · v3.fee_replacement_requests · v3.fee_replacement_signatures · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.route_approvals · v3.route_cancellations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.service_fee_closures · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures

읽기만 한다. 아직 바꾸지 않는다.

POST

/api/fees/{id}/replacements/approve

방금 본 수수료 대체 검토와 같을 때만 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.active_order_holds · v3.chain_accounts · v3.customer_trades · v3.customers · v3.evm_order_fee_values · v3.evm_signed_calls · v3.evm_swap_reviews · v3.fee_replacement_approvals · v3.fee_replacement_attempts · v3.fee_replacement_outcomes · v3.fee_replacement_refreshes · v3.fee_replacement_requests · v3.fee_replacement_signatures · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.service_fee_closures · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.fee_replacement_approvals
분기검토
같음

그 대체를 진행한다.

다름

진행하지 않는다.

POST

/api/fees/{id}/replacements/next-review

다음 수수료 대체 검토를 만든다.

  1. DB 조회 v3.active_order_holds · v3.chain_accounts · v3.customer_trades · v3.customers · v3.evm_order_fee_values · v3.evm_signed_calls · v3.evm_swap_reviews · v3.fee_replacement_approvals · v3.fee_replacement_attempts · v3.fee_replacement_outcomes · v3.fee_replacement_refreshes · v3.fee_replacement_requests · v3.fee_replacement_signatures · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.service_fee_closures · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures
  2. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  3. DB 기록 v3.fee_replacement_refreshes

검토를 새로 만들 뿐이다. 그 자체로 송금하지 않는다.

GET

/api/finance

수량, 시세, 산 가격을 나눠 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.balance_recalculations · v3.chain_accounts · v3.collection_proofs · v3.financial_asset_map · v3.financial_freezes · v3.public_prices

하나를 다른 숫자로 대신하지 않는다.

GET

/api/finance-history

자산별 금융 이력을 읽는다.

DB

조회 v3.chain_accounts · v3.final_balance_jobs · v3.legacy_finance_collection_events · v3.legacy_finance_head · v3.legacy_finance_history_attempts · v3.legacy_finance_imports · v3.legacy_finance_resolutions · v3.legacy_finance_rows · v3.legacy_finance_venue_calls · v3.legacy_finance_venue_histories · v3.legacy_finance_venue_jobs · v3.legacy_finance_venue_wallets

분기종가
있음

저장된 종가만 쓴다.

없음

그 날은 빈칸이다.

GET

/api/fx-rates

저장된 표시 환율을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

담당 v3.operator_sessions · v3.staff_roles

조회 v3.daily_display_rates

접속 기록 v3.staff_events

없는 날을 다른 환율로 대신하지 않는다.

GET

/api/history

잔액이 바뀐 이력을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.history_entries · v3.portfolio_revisions · v3.transaction_action_sources · v3.transaction_actions

없는 구간을 0으로 메우지 않는다.

GET

/api/home-bundle

홈에 필요한 잔액과 성과를 한 번에 읽는다. 고른 네트워크만 본다.

DB

세션 v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.customers · v3.daily_display_rates · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.evm_order_valuations · v3.history_entries · v3.identities · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_lifetimes · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.legacy_vault_imports · v3.managed_wallets · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_performance_snapshots · v3.portfolio_performance_values · v3.portfolio_revisions · v3.portfolio_wallet_observation_proofs · v3.rpc_responses · v3.security_events · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

분기관측
있음

그 값을 보여 준다.

없거나 실패

빈칸이다. 0으로 채우지 않는다.

GET

/api/legacy-wallet-status

예전 독립 키 지갑인지 구분한다. 그 지갑은 24단어 백업 대상이 아니다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_provision_requests

자산을 옮기지 않는다.

GET

/api/me

지금 세션의 고객이 누구인지 읽는다. 돈을 움직이지 않는다.

DB

조회 v3.customer_login_activity · v3.legacy_metadata_records

분기세션
있음

그 고객의 상태를 보여 준다.

없음

들어온 사람이 아니다.

GET

/api/orders

이 고객의 지정가 주문을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.customer_order_events · v3.customer_trades · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlements · v3.service_fee_fills · v3.solana_swap_reviews · v3.trade_events

대기, 일부 체결, 전량 체결을 한 줄로 합치지 않는다.

GET

/api/orders/book

지정가 호가를 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 시세 호가는 원장이 아니라 시장에서 읽는다.

보기만 하므로 돈이 예약되지 않는다.

GET

/api/orders/maximum

그 가격에 잡을 수 있는 수량을 계산한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 시세 호가는 원장이 아니라 시장에서 읽는다.
  3. DB 조회 v3.chain_accounts · v3.portfolio_revisions

계산만 한다. 예약하지 않는다.

POST

/api/orders/quote

주문 직전 수수료, 기록 비용, 수량을 다시 계산한다.

  1. DB 조회 v3.active_order_holds · v3.customer_order_events · v3.customer_trades · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlements · v3.service_fee_fills · v3.solana_swap_reviews · v3.trade_events
  2. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  3. DB 조회 v3.chain_accounts · v3.order_admissions · v3.portfolio_revisions
  4. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  5. DB 조회 v3.customers · v3.order_admissions · v3.route_order_authorities 기록 v3.order_approvals

견적만 만든다. 돈을 예약하지 않는다.

GET

/api/orders/quote-options

견적에 필요한 수수료와 기록 비용 조건을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.portfolio_revisions · v3.staff_events · v3.transfer_cancellations · v3.transfer_intents

아직 주문은 없다.

POST

/api/orders/{id}/approve

방금 본 견적과 같은 내용일 때만 예약하고 서명을 맡긴다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.active_order_holds · v3.customer_order_events · v3.customer_trades · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.solana_swap_reviews · v3.trade_events
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals
분기승인 뒤
서명을 맡김

원금·가스·수수료를 잡고 custody가 서명한다.

견적이 달라짐

예약하지 않는다.

체인 답이 없음

실패나 환불로 보지 않고 다시 보내지 않는다.

POST

/api/orders/{id}/cancel

아직 체결되지 않은 수량만 취소한다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.chain_accounts · v3.customer_order_events · v3.customer_trades · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.solana_swap_reviews · v3.trade_events

기록 v3.order_cancellations

분기수량
안 팔린 수량이 있음

그 수량만 지운다.

이미 체결됨

체결된 수량은 취소로 되돌리지 않는다.

GET

/api/orders/{id}/lifecycle

그 주문의 지금 단계와 다음에 할 수 있는 조치가 무엇인지 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.chain_accounts · v3.customer_order_events · v3.customer_trades · v3.customers · v3.financial_freezes · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_manifest_bindings · v3.order_placement_jobs · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.solana_swap_reviews · v3.trade_completion_proofs · v3.trade_events · v3.trade_lifecycle_requests · v3.trade_lifecycle_signature_authorities · v3.trade_rpc_evidence · v3.trade_submissions

읽기만 한다. 취소하거나 보내지 않는다.

POST

/api/orders/{id}/lifecycle/{action}/approve

다음 조치가 방금 본 검토와 같을 때만 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.financial_freezes · v3.order_admissions · v3.order_manifest_bindings · v3.route_order_authorities · v3.trade_events · v3.trade_lifecycle_requests · v3.trade_lifecycle_signature_authorities · v3.trade_submissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.order_manifest_bindings 기록 v3.trade_lifecycle_requests
분기검토
같음

그 조치만 진행한다.

다르거나 단계가 아님

진행하지 않는다.

POST

/api/otp/confirm

방금 등록한 인증 앱의 6자리가 맞으면 등록을 마친다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.otp_credentials
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 기록 v3.otp_credentials · v3.security_events
분기6자리
맞음

인증 앱 등록이 끝난다. 복구 수단이 생긴 것은 아니다.

다름

등록은 끝나지 않는다.

POST

/api/otp/enroll

들어온 계정이 인증 앱을 한 번 등록하기 시작한다. 이 호출만으로 입금 주소는 생기지 않는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.otp_credentials
  3. 봉인 AES-GCM 봉인을 연다.
  4. 봉인 AES-GCM으로 비밀을 봉인한다.
  5. DB 기록 v3.otp_credentials

세션이 있을 때만 QR이나 키를 만든다.

GET

/api/portfolio

계정별 잔액을 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.legacy_vault_imports · v3.portfolio_revisions · v3.portfolio_wallet_observation_proofs · v3.rpc_responses · v3.transfer_cancellations · v3.transfer_intents

분기관측
있음

확인된 잔액만 보여 준다.

없음

0으로 채우지 않는다.

GET

/api/portfolio-performance

고른 기간의 성과를 읽는다.

DB

조회 v3.portfolio_performance_snapshots · v3.portfolio_performance_values

분기기간과 시세
저장된 값이 있음

그 기간만 계산한다.

시세가 없음

그 날은 빈칸이다.

GET

/api/profile

내 표시 정보를 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.economic_asset_members · v3.economic_assets · v3.legacy_metadata_records · v3.staff_events

돈을 움직이지 않는다.

POST

/api/recovery/approve

담당자가 신청을 승인한다.

  1. DB 조회 v3.customers · v3.otp_credentials · v3.recovery_approvers · v3.recovery_requests
  2. 봉인 AES-GCM 봉인을 연다.
  3. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  4. DB 조회 v3.recovery_approvals 기록 v3.otp_credentials · v3.recovery_approvals · v3.recovery_grants
  5. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  6. 봉인 AES-GCM으로 비밀을 봉인한다.
  7. DB 기록 v3.recovery_deliveries · v3.security_events
분기승인
승인

그 다음에야 새 인증 앱을 시작할 수 있다.

거절이나 대기

새 키를 받지 못하고 돈도 옮기지 못한다.

POST

/api/recovery/approved-begin

승인된 신청으로 새 인증 앱 등록을 시작한다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. DB 조회 v3.identities · v3.recovery_approvals · v3.recovery_deliveries · v3.recovery_grants · v3.recovery_requests
  3. 봉인 AES-GCM 봉인을 연다.
  4. DB 조회 v3.identities 기록 v3.login_proofs
  5. 봉인 AES-GCM으로 비밀을 봉인한다.
  6. DB 기록 v3.recovery_grants

승인 전이면 시작하지 못한다.

POST

/api/recovery/begin

새 인증 앱 비밀을 만든다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. DB 조회 v3.recovery_approvals · v3.recovery_requests
  3. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  4. DB 조회 v3.identities · v3.recovery_grants
  5. 봉인 AES-GCM 봉인을 연다.
  6. DB 기록 v3.login_proofs
  7. 봉인 AES-GCM으로 비밀을 봉인한다.
  8. DB 기록 v3.recovery_grants

6자리 확인 전에는 끝나지 않는다.

POST

/api/recovery/confirm

새 인증 앱 6자리가 맞으면 분실 복구를 마친다.

  1. DB 조회 v3.recovery_approvals · v3.recovery_requests
  2. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  3. DB 조회 v3.recovery_grants
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 조회 v3.otp_credentials 기록 v3.customers · v3.otp_credentials · v3.recovery_completions · v3.recovery_grants · v3.security_events · v3.sessions
분기6자리
맞음

새 인증 앱으로 마친다.

다름

끝나지 않는다.

POST

/api/recovery/loss/begin

표결이 모인 뒤에만 새 인증 앱 등록을 시작한다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  3. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  4. DB 조회 v3.identities · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.retired_telegram_identities 기록 v3.login_proofs
  5. 봉인 AES-GCM으로 비밀을 봉인한다.
  6. DB 기록 v3.recovery_loss_events · v3.recovery_loss_otp
  7. 봉인 AES-GCM 봉인을 연다.
  8. DB 기록 v3.login_proofs · v3.recovery_loss_cases · v3.recovery_loss_otp
분기표결
모임

새 비밀을 만든다.

아직

시작하지 못한다.

POST

/api/recovery/loss/complete

확인이 끝난 전체 분실 접수를 마친다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  3. DB 조회 v3.chain_accounts · v3.customers · v3.identities · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_completions · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes · v3.retired_telegram_identities
  4. 봉인 AES-GCM 봉인을 연다.
  5. 봉인 AES-GCM으로 비밀을 봉인한다.
  6. DB 조회 v3.otp_credentials 기록 v3.customers · v3.identities · v3.otp_credentials · v3.recovery_loss_cases · v3.recovery_loss_completions · v3.recovery_loss_events · v3.retired_telegram_identities · v3.sessions

자산은 새 고객으로 합치지 않는다.

POST

/api/recovery/loss/confirm

새 인증 앱 6자리를 확인한다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  3. DB 조회 v3.customers · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 기록 v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp
분기6자리
맞음

확인된다.

다름

끝나지 않는다.

POST

/api/recovery/loss/match

담당자가 기존 고객과 접수를 맞춘다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.chain_accounts · v3.customers · v3.identities · v3.otp_credentials · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes · v3.retired_telegram_identities · v3.staff_events
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 기록 v3.customers · v3.otp_credentials · v3.recovery_loss_cases · v3.recovery_loss_events · v3.sessions

맞추기만 한다. 자산을 합치지 않는다.

GETPOST

/api/recovery/loss/policy

전체 분실을 어떻게 처리할지 정책을 읽거나 저장한다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 담당 조회 v3.customers · v3.operator_sessions · v3.sessions · v3.staff_roles
  3. DB 조회 v3.otp_credentials · v3.staff_events
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 기록 v3.otp_credentials · v3.staff_events
분기호출
읽기

지금 정책을 본다.

저장

인증 앱 확인이 있어야 정책을 바꾼다. 이미 접수된 돈을 옮기지는 않는다.

POST

/api/recovery/loss/request

새 텔레그램에서 기존 번호로 전체 분실을 접수한다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  3. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  4. DB 조회 v3.customers · v3.identities · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes · v3.retired_telegram_identities 기록 v3.login_proofs · v3.recovery_loss_events · v3.recovery_loss_tickets

접수만 한다. 기존 계정은 막히지 않고, 자산은 새 고객으로 합치지 않는다. 토큰만으로 돈을 옮기지 못한다.

GET

/api/recovery/loss/reviews

전체 분실 접수 목록을 읽는다.

DB

조회 v3.customers · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes

기록 v3.staff_events

목록만 본다.

POST

/api/recovery/loss/status

접수 번호와 토큰으로 진행 상태만 읽는다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customers · v3.recovery_approvers · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_otp · v3.recovery_loss_tickets · v3.recovery_loss_votes

상태를 본다고 자산이 옮겨지지는 않는다.

POST

/api/recovery/loss/vote

담당자가 이 접수에 표를 준다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. DB 조회 v3.recovery_loss_votes 기록 v3.recovery_loss_cases · v3.recovery_loss_votes

표가 모이기 전에는 새 인증 앱으로 넘어가지 않는다.

POST

/api/recovery/loss/withdraw

접수를 거둔다.

  1. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  2. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  3. DB 조회 v3.recovery_loss_cases · v3.recovery_loss_events · v3.recovery_loss_tickets 기록 v3.recovery_loss_events

기존 계정은 이 접수로 잠그지 않는다.

POST

/api/recovery/request

인증 앱만 잃었을 때 신청한다.

  1. 해시 세션·대기 토큰은 SHA-256으로만 저장하고 찾는다.
  2. DB 조회 v3.customers · v3.recovery_approvals · v3.recovery_completions · v3.recovery_requests · v3.sessions
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. DB 조회 v3.customers 기록 v3.customers · v3.recovery_requests · v3.security_events · v3.sessions

신청 즉시 로그인이 풀리고 계정이 막힌다.

GET

/api/recovery/reviews

담당자가 볼 인증 앱 분실 신청 목록을 읽는다.

DB

조회 v3.recovery_approvals · v3.recovery_approvers · v3.recovery_completions · v3.recovery_grants · v3.recovery_requests

이 조회만으로 새 키를 주지 않는다.

GET

/api/referrals

내 추천 조직을 읽는다.

DB

조회 v3.customer_referral_invites · v3.customer_referral_links · v3.legacy_metadata_records

다른 고객의 조직은 나오지 않는다.

POST

/api/referrals/enroll

내 추천 코드를 만든다.

  1. 증명 텔레그램 initData를 HMAC으로 검증한다. 서명이 맞는 값만 쓴다.
  2. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  3. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  4. DB 조회 v3.customer_referral_bot_acknowledgments · v3.customer_referral_bot_intents · v3.customer_referral_invites · v3.customer_referral_links · v3.customers · v3.identities · v3.legacy_metadata_records · v3.login_proofs · v3.operators 기록 v3.customer_referral_bot_acknowledgments · v3.customer_referral_invites · v3.customer_referral_links
분기봇
준비됨

초대 링크를 만들 수 있다.

없음

코드는 있어도 초대는 나가지 않는다.

GET

/api/routes

이 고객의 경로 목록을 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_payments

단계 상태를 한 줄로 합치지 않는다.

POST

/api/routes/plan

한 번의 승인으로 이어질 경로를 만든다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.route_requests · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_plans · v3.route_requests

계획만 만든다. 돈을 예약하지 않는다.

GET

/api/routes/plan-options

스왑 다음 브릿지로 갈 수 있는 경로 조건을 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.route_requests · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_plans · v3.route_requests

아직 실행하지 않는다.

POST

/api/routes/quote

그 경로의 수량과 비용을 견적으로 만든다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.route_requests · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_requests

견적만 만든다.

GET

/api/routes/{id}

경로 한 건이 어느 단계인지 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_payments

읽기만 한다.

POST

/api/routes/{id}/approve

한 번 승인하면 단계가 순서대로 나간다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_approvals · v3.route_cancellations · v3.route_fee_charges

분기도착 쪽 기록 비용
있음

첫 단계부터 시작한다.

없음

첫 단계도 시작하지 않는다.

POST

/api/routes/{id}/cancel

아직 시작하지 않은 경로만 취소한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_approvals · v3.route_cancellations · v3.route_fee_charges

분기시작
시작 전

취소한다.

이미 진행

취소만으로 단계가 되돌아가지 않는다.

POST

/api/routes/{id}/continue

다음 단계 가격이 한도 안일 때 이어서 진행한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_cancellations · v3.bridge_settlement_balances · v3.bridge_settlements · v3.chain_accounts · v3.customers · v3.final_balance_jobs · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.order_settlements · v3.route_approvals · v3.route_bridge_authorities · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_fee_charges · v3.route_order_authorities · v3.route_plans · v3.route_progress · v3.route_quote_retirements · v3.route_requests · v3.service_fee_closures · v3.service_fee_payments

기록 v3.route_cancellations · v3.route_continuations · v3.route_plans · v3.route_progress · v3.route_requests

분기가격
한도 안

다음 단계로 간다.

한도 밖

이 호출로 넘어가지 않는다. 이미 도착한 코인은 잔고로 남는다.

GET

/api/routes/{id}/execution-recovery

막힌 경로 실행의 복구 내용을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.order_settlement_balances · v3.route_evm_recovery_consents · v3.route_plans · v3.route_progress

다시 보내지 않는다.

POST

/api/routes/{id}/execution-recovery/approve

그 복구 검토와 같을 때만 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.route_evm_recovery_consents

같은 경로를 무조건 다시 보내지 않는다.

POST

/api/routes/{id}/execution-recovery/prepare

복구에 쓸 검토를 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.route_evm_recovery_consents

검토만 만든다. 아직 서명하지 않는다.

POST

/api/routes/{id}/fees/{stage}/approve

그 단계 수수료 검토를 승인한다.

DB

조회 v3.chain_accounts · v3.customers · v3.route_approvals · v3.route_cancellations · v3.route_plans · v3.route_progress

기록 v3.fee_payment_authorizations · v3.fee_payment_retry_approvals · v3.route_fee_completion_consents

승인만으로 단계가 끝난 것은 아니다.

POST

/api/routes/{id}/fees/{stage}/complete

승인된 그 단계 수수료가 끝났음을 기록한다.

DB

조회 v3.chain_accounts · v3.customers · v3.route_approvals · v3.route_cancellations · v3.route_plans · v3.route_progress

기록 v3.fee_payment_authorizations · v3.fee_payment_retry_approvals · v3.route_fee_completion_consents

끝나지 않은 단계를 완료로 넘기지 않는다.

POST

/api/routes/{id}/return

멈춘 단계 이후를 되돌리는 쪽을 진행한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.bridge_admissions · v3.bridge_approvals · v3.bridge_cancellations · v3.bridge_observations · v3.bridge_send_results · v3.bridge_settlement_balances · v3.bridge_settlements · v3.bridge_signatures · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.order_admissions · v3.order_cancellations · v3.order_settlement_balances · v3.route_bridge_authorities · v3.route_bridge_returns · v3.route_cancellations · v3.route_continuations · v3.route_order_authorities · v3.route_plans · v3.route_progress

기록 v3.bridge_admissions · v3.route_bridge_returns · v3.route_cancellations

이미 도착한 코인은 잔고로 남아 있다. 출발 전으로 문질러 지우지는 않는다.

GET

/api/routes/{id}/solana-expiry

솔라나 기한이 지났는지 검토를 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_settlement_balances · v3.route_solana_expiry_bindings
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.route_solana_expiry_consents

읽기만 한다.

POST

/api/routes/{id}/solana-expiry/approve

기한 검토와 같을 때만 그 정리를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.route_solana_expiry_consents 기록 v3.route_solana_expiry_consents

기한이 지났다고 환불이 끝난 것은 아니다.

GET

/api/swaps

이 고객의 스왑 목록을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.evm_executions · v3.evm_intents · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_payments · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures

돈을 움직이지 않는다.

GET

/api/swaps/preview

같은 네트워크에서 바꿀 수량을 미리 본다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

미리보기만 하므로 돈이 예약되지 않는다.

POST

/api/swaps/quote

받을 수량과 수수료를 견적으로 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.chain_accounts · v3.customers · v3.solana_swap_reviews 기록 v3.solana_swap_jobs · v3.solana_swap_reviews
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals

견적만 만든다. 예약하지 않는다.

GET

/api/swaps/quote-options

스왑 견적에 필요한 조건을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.staff_events

아직 교환은 없다.

POST

/api/swaps/{id}/approve

견적과 같을 때만 본 교환을 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals
분기수수료 USDT
있음

본 교환을 승인한다.

없음

먼저 USDT를 마련하는 길로 가야 한다. 이 승인만으로 본 교환이 나가지 않는다.

POST

/api/swaps/{id}/cancel

아직 보내지 않은 스왑만 취소한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.customers · v3.order_admissions 기록 v3.order_approvals
분기전송
보내기 전

취소한다. 수수료도 가져가지 않는 쪽이 최소 수량 미달과 함께 있다.

이미 보냄

취소만으로 환불되지 않는다.

POST

/api/swaps/{id}/evm-cancel/approve

이더리움 쪽에서 막을 수 있는 전송의 취소 검토를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_cancel_approvals 기록 v3.evm_cancel_approvals
분기상태
아직 막을 수 있음

취소 서명을 맡긴다.

이미 확정

이 승인으로 되돌리지 못한다.

POST

/api/swaps/{id}/execution-authorization/approve

보내기 직전에 실행 내용이 승인 내용과 같은지 다시 확인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 기록 v3.direct_swap_jobs · v3.evm_execution_authorizations
분기내용
같음

서명을 맡긴다.

다름

보내지 않는다.

POST

/api/swaps/{id}/execution-recovery/approve

막힌 스왑 실행을 어떻게 복구할지 승인한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_order_holds · v3.customer_order_events · v3.customer_trades · v3.customers · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_fee_jobs · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_fills · v3.service_fee_payments · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures · v3.swap_quote_evidence · v3.trade_events

기록 v3.solana_swap_expiry_approvals

같은 교환을 무조건 다시 보내지 않는다. 복구 검토가 맞을 때만 진행한다.

POST

/api/swaps/{id}/execution-replacement/prepare

이미 올린 전송을 취소하거나 서두르는 검토만 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_cancel_attempts · v3.evm_replacement_requests 기록 v3.direct_swap_jobs · v3.evm_replacement_requests
분기모드
취소

올린 전송을 막는 검토다. 환불이 끝난 것은 아니다.

서두름

같은 전송을 더 빨리 넣으려는 검토다. 새 교환이 아니다.

POST

/api/swaps/{id}/execution-termination/approve

진행 중인 실행을 멈추는 검토를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.order_settlement_balances 기록 v3.direct_swap_jobs · v3.evm_preflight_approvals

멈추는 승인이지, 답을 실패로 단정하지는 않는다.

POST

/api/swaps/{id}/fee-recovery/approve

수수료로 낼 USDT가 없을 때, 가진 자산 일부를 먼저 USDT로 바꾸는 일을 승인한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.customers · v3.evm_executions · v3.evm_intents · v3.evm_send_attempts · v3.evm_signed_calls · v3.evm_swap_reviews · v3.fee_payment_attempts · v3.fee_payment_authorizations · v3.fee_payment_retry_approvals · v3.order_admissions · v3.order_settlement_balances · v3.order_settlements · v3.route_order_authorities · v3.service_fee_payments · v3.solana_swap_attempts · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures

기록 v3.fee_payment_authorizations · v3.fee_payment_retry_approvals

그 USDT가 지갑에 들어온 뒤에만 본 교환으로 간다.

POST

/api/swaps/{id}/preflight-cancel/approve

체인에 올리기 전 취소 검토를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.order_admissions
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.evm_approval_cancel_approvals 기록 v3.direct_swap_jobs · v3.evm_approval_cancel_approvals

아직 나가지 않은 교환만 멈춘다.

GET

/api/token-catalog

고객에게 보이는 등록 토큰 목록을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

담당 v3.operator_sessions · v3.staff_roles

조회 v3.economic_asset_members · v3.economic_assets · v3.token_catalog_assets · v3.token_catalog_versions

접속 기록 v3.staff_events

목록에 없다고 잔액이 생기거나 없어지지 않는다.

GET

/api/token-prices

화면 시세를 읽는다. 저장된 값만 쓴다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customer_trades · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.rpc_responses · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions

없는 시세를 임의 숫자로 채우지 않는다.

GET

/api/transaction-actions

그 거래 다음에 할 수 있는 조치가 있는지 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.transaction_action_sources · v3.transaction_actions

조치를 실행하지는 않는다.

GET

/api/transactions

고객이 보는 거래 목록을 읽는다.

DB

세션 v3.customers · v3.otp_credentials · v3.sessions

조회 v3.bridge_tracks · v3.chain_accounts · v3.customer_trade_attributions · v3.direct_swap_jobs · v3.identities · v3.ledger_event_sources · v3.ledger_events · v3.legacy_finance_context · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.movement_sources · v3.order_admissions · v3.order_approvals · v3.order_cancellations · v3.order_dispatches · v3.order_execution_expiries · v3.order_execution_failures · v3.order_placement_events · v3.order_placement_jobs · v3.order_settlement_balances · v3.order_settlements · v3.route_fee_charges · v3.solana_swap_receipts · v3.solana_swap_reviews · v3.solana_swap_signatures · v3.staff_events

자산이 오간 기록과 주문 기록을 한 줄로 합치지 않는다.

GET

/api/transfers

출금 목록 또는 한 건을 읽는다.

DB

세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions

조회 v3.transfer_intents

보내기 전과 진행 중을 한 줄로 합치지 않는다.

GET

/api/transfers/options

출금할 수 있는 네트워크와 수수료 조건을 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.portfolio_revisions · v3.transfer_cancellations · v3.transfer_intents · v3.transfer_policies

검토만 가능하다. 돈이 나가지 않는다.

POST

/api/transfers/prepare

주소, 네트워크, 수량, 수수료를 검토 내용으로 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.chain_accounts · v3.customers · v3.financial_freezes · v3.transfer_intents · v3.transfer_policies
  3. 잠금 같은 키는 이 트랜잭션이 끝날 때까지 한 건만 진행한다.
  4. DB 조회 v3.chain_accounts · v3.legacy_vault_imports · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_execution_events · v3.transfer_intents 기록 v3.transfer_intents

검토만 고른 상태다. 아직 나가지 않는다.

POST

/api/transfers/{id}/approve

도전 문구와 6자리가 맞을 때만 서명을 맡긴다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.otp_credentials
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 조회 v3.withdrawal_customer_challenges 기록 v3.otp_credentials
  6. 서명 고객 서명을 검증한다.
  7. DB 조회 v3.transfer_dispatches 기록 v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_reservations · v3.withdrawal_customer_approvals
분기확인
맞음

서명을 맡긴다.

다름

나가지 않는다.

체인 답이 없음

다시 보내지 않는다.

POST

/api/transfers/{id}/cancel

아직 나가지 않은 출금만 취소한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.otp_credentials
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 조회 v3.withdrawal_customer_challenges 기록 v3.otp_credentials
  6. 서명 고객 서명을 검증한다.
  7. DB 조회 v3.transfer_dispatches 기록 v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_reservations · v3.withdrawal_customer_approvals
분기전송
보내기 전

취소한다.

이미 나감

취소만으로 환불되지 않는다.

GET

/api/transfers/{id}/challenge

이 출금을 승인하기 전에 고객이 볼 도전 문구를 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.withdrawal_customer_keys 기록 v3.withdrawal_customer_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.
  4. DB 조회 v3.chain_accounts · v3.portfolio_revisions

문구만 준다. 아직 보내지 않는다.

GET

/api/transfers/{id}/nonce-cancel

같은 번호에 막힌 출금의 취소 내용을 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 기록 v3.withdrawal_cancel_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.

읽기만 한다.

POST

/api/transfers/{id}/nonce-cancel/approve

도전 문구가 맞을 때만 막힌 번호의 취소를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  3. DB 조회 v3.otp_credentials
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 조회 v3.withdrawal_cancel_challenges 기록 v3.otp_credentials
  7. 서명 고객 서명을 검증한다.
  8. DB 기록 v3.withdrawal_cancel_approvals · v3.withdrawal_jobs

새 금액을 보내지 않는다.

GET

/api/transfers/{id}/nonce-cancel/challenge

막힌 번호 취소를 승인하기 전 도전 문구를 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 기록 v3.withdrawal_cancel_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.

문구만 준다.

POST

/api/transfers/{id}/progress

이미 진행 중인 출금의 진행만 갱신한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.financial_freezes · v3.otp_credentials · v3.withdrawal_customer_keys
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 조회 v3.customers 기록 v3.otp_credentials · v3.withdrawal_customer_keys

새 출금을 만들지 않는다.

GET

/api/transfers/{id}/recovery

답이 없는 출금의 복구 내용을 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 기록 v3.withdrawal_recovery_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.

다시 보내지 않는다.

POST

/api/transfers/{id}/recovery/approve

복구 검토와 6자리가 맞을 때만 그 복구를 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  3. DB 조회 v3.otp_credentials
  4. 봉인 AES-GCM 봉인을 연다.
  5. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  6. DB 조회 v3.withdrawal_recovery_challenges 기록 v3.otp_credentials
  7. 서명 고객 서명을 검증한다.
  8. DB 기록 v3.withdrawal_recovery_approvals

같은 출금을 그대로 다시 보내는 버튼이 아니다.

GET

/api/transfers/{id}/recovery/challenge

복구 승인 전에 볼 도전 문구를 읽는다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 기록 v3.withdrawal_recovery_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.

문구만 준다.

GET

/api/valuation

평가 수량과 산 가격을 읽는다.

DB

조회 v3.active_bridge_holds · v3.active_bridge_recovery_holds · v3.active_order_holds · v3.chain_accounts · v3.customer_cost_periods · v3.customer_trades · v3.evm_attempt_responses · v3.evm_attempts · v3.evm_blocks · v3.evm_executions · v3.evm_intents · v3.history_entries · v3.legacy_finance_head · v3.legacy_finance_imports · v3.legacy_finance_rows · v3.legacy_metadata_records · v3.manifest_decodes · v3.manifest_fills · v3.order_admissions · v3.order_settlements · v3.portfolio_balance_proofs · v3.portfolio_revisions · v3.rpc_responses · v3.service_fee_closures · v3.service_fee_fills · v3.service_fee_payments · v3.solana_transactions · v3.staff_events · v3.token_catalog_assets · v3.token_catalog_versions · v3.transfer_cancellations · v3.transfer_intents

분기관측과 기준
있음

그 평가를 보여 준다.

없음

빈칸이다. 0으로 채우지 않는다.

GET

/api/wallet-rebinds

보관 파일을 다시 묶는 진행만 읽는다. 외부 지갑 연결과는 다른 길이다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.customers · v3.vault_rebind_approvals · v3.vault_rebind_completions · v3.vault_rebind_requests · v3.withdrawal_customer_keys

돈을 움직이지 않는다.

POST

/api/wallet-rebinds/{id}/approve

도전 문구가 맞은 뒤에만 보관 파일 연결을 승인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.chain_accounts · v3.customers · v3.vault_rebind_approvals · v3.vault_rebind_completions · v3.vault_rebind_requests
  3. 대조 요청한 검토 해시와 저장해 둔 해시를 비교한다. 다르면 승인하지 않는다.
  4. DB 조회 v3.otp_credentials · v3.vault_rebind_approvals · v3.vault_rebind_challenges · v3.vault_rebind_requests
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 기록 v3.otp_credentials · v3.vault_rebind_approvals
분기확인
맞음

연결을 승인한다. 화면의 외부 지갑 연결과는 별개다.

다름

연결하지 않는다.

POST

/api/wallet-rebinds/{id}/challenge

다시 묶기 전에 고객이 확인할 도전 문구를 만든다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.financial_freezes · v3.vault_rebind_approvals · v3.vault_rebind_completions · v3.vault_rebind_requests · v3.withdrawal_customer_keys

기록 v3.vault_rebind_challenges

문구만 만든다. 아직 승인하지 않는다.

GETPOST

/api/wallets

지갑 목록을 읽거나, 지갑을 하나 더 요청한다.

DB

조회 v3.chain_accounts · v3.customers · v3.managed_wallets · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

분기호출
목록

지금 지갑과 발급 담당 연결 여부만 본다. 주소를 만들지 않는다.

추가 요청

요청만으로 입금 주소가 바로 생기지는 않는다. 발급 중에는 그 주소로 입금하지 않는다.

POST

/api/wallets/prepare-default

기본 지갑이 없으면 만들기 대기를 연다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.managed_wallets · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

분기발급 담당
있음

발급을 맡긴다.

없음

설정이 필요하다는 대기만 남긴다. 주소를 대신 만들지 않는다.

바로 안 끝남

발급 중이다. 그 주소로 입금하지 않는다.

POST

/api/wallets/{id}/activate

쓸 지갑으로 고른다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

분기상태
준비되고 보관 중이 아님

이 고객의 사용 지갑이 된다.

보관 중

보관 중인 지갑은 바로 사용할 수 없다.

POST

/api/wallets/{id}/archive

지갑을 목록 보관으로 돌린다. 자산을 다른 지갑으로 옮기지는 않는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

분기보관할 수 있나
다른 준비된 지갑이 있음

보관하고, 쓰던 지갑이면 다른 지갑을 사용 중으로 바꾼다.

마지막 준비된 지갑

마지막 하나는 보관하지 못한다.

돈이 움직이는 중

끝나지 않은 돈이 있으면 보관하지 못한다.

POST

/api/wallets/{id}/cancel

아직 발급 대기인 지갑 만들기를 취소한다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

분기상태
대기

만들기를 취소한다. 준비된 지갑을 지우지는 않는다.

24단어를 이미 봄

본 뒤에는 이 취소로 지우지 못한다.

이미 취소됨

그대로 둔다.

POST

/api/wallets/{id}/label

준비된 지갑의 이름만 바꾼다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

자산과 주소는 움직이지 않는다.

POST

/api/wallets/{id}/provision

대기 또는 준비된 관리 지갑의 발급을 다시 맡긴다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

분기발급 담당
있음

그 지갑만 다시 맡긴다.

없음

설정이 필요하다. 다른 주소를 만들지 않는다.

POST

/api/wallets/{id}/restore

보관한 지갑을 다시 꺼낸다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.active_bridge_holds · v3.active_order_holds · v3.active_transfer_reservations · v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.portfolio_revisions · v3.transfer_approvals · v3.transfer_cancellations · v3.transfer_intents · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests

분기자리
여유가 있음

다시 준비된 지갑이 된다.

이미 세 개

더 꺼내지 못한다.

POST

/api/wallets/{id}/seed/confirm

방금 보여 준 24단어가 맞는지 확인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.financial_freezes · v3.wallet_provision_requests · v3.wallet_recovery_capsules
  3. 대조 다이제스트를 상수시간으로 비교한다.
  4. DB 조회 v3.chain_accounts · v3.customers · v3.managed_wallets · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts 기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_requests · v3.wallet_recovery_capsules
분기단어
맞음

백업 확인이 끝난다.

다름

확인되지 않는다. 입금해도 되는 상태가 아니다.

POST

/api/wallets/{id}/seed/confirm-from-phrase

적어 둔 24단어로 확인한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.financial_freezes · v3.wallet_provision_requests · v3.wallet_recovery_capsules
  3. 대조 다이제스트를 상수시간으로 비교한다.
  4. DB 조회 v3.otp_credentials
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 기록 v3.chain_accounts · v3.managed_wallets · v3.otp_credentials · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_requests · v3.wallet_recovery_capsules
분기단어
맞음

백업 확인으로 넘어간다.

다름

확인되지 않는다.

POST

/api/wallets/{id}/seed/finish-revealed

적어 둔 단어 확인을 마친다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.chain_accounts · v3.customers · v3.financial_freezes · v3.managed_wallets · v3.wallet_account_links · v3.wallet_preferences · v3.wallet_provision_jobs · v3.wallet_provision_requests · v3.wallet_recovery_capsules · v3.wallet_recovery_draft_accounts

기록 v3.chain_accounts · v3.managed_wallets · v3.wallet_account_links · v3.wallet_events · v3.wallet_preferences · v3.wallet_provision_requests · v3.wallet_recovery_capsules

마친 뒤에야 그 지갑을 쓸 수 있는 쪽으로 간다.

POST

/api/wallets/{id}/seed/reveal

새 지갑의 24단어를 보여 준다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.customers · v3.financial_freezes · v3.wallet_provision_requests · v3.wallet_recovery_capsules
  3. 대조 다이제스트를 상수시간으로 비교한다.
  4. DB 조회 v3.otp_credentials
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 조회 v3.wallet_recovery_capsules 기록 v3.otp_credentials · v3.wallet_events · v3.wallet_recovery_capsules
분기대상
새 관리 지갑

단어를 한 번 보여 준다. 확인 전에는 그 주소로 입금하지 않는다.

예전 독립 키

24단어 대상이 아니다.

GET

/api/withdrawal-keys

출금에 쓰는 키 목록을 읽는다.

DB

조회 v3.withdrawal_customer_keys

키 원문을 이 화면 응답으로 내놓지 않는다.

POST

/api/withdrawal-keys/change/challenge

키를 바꾸기 전 도전 문구를 만든다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.withdrawal_customer_keys · v3.withdrawal_key_challenges 기록 v3.withdrawal_key_challenges
  3. 챌린지 서명할 원문을 새로 발급한다.

문구만 만든다. 아직 바뀌지 않는다.

POST

/api/withdrawal-keys/change/complete

도전 문구가 맞은 뒤에만 출금 키 변경을 마친다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.withdrawal_key_changes
  3. 서명 고객 서명을 검증한다.
  4. DB 조회 v3.otp_credentials
  5. 봉인 AES-GCM 봉인을 연다.
  6. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  7. DB 기록 v3.otp_credentials · v3.security_events · v3.withdrawal_customer_keys · v3.withdrawal_key_changes
분기확인
맞음

키가 바뀐다. 그 자체로 출금이 나가지는 않는다.

다름

바꾸지 않는다.

GET

/api/withdrawal-keys/lifecycle

출금 키를 바꿀 수 있는 단계를 읽는다.

DB

세션 v3.identities · v3.otp_credentials · v3.sessions

조회 v3.customers · v3.recovery_approvals · v3.recovery_completions · v3.recovery_grants · v3.recovery_key_restorations · v3.recovery_loss_cases · v3.recovery_loss_completions · v3.recovery_loss_votes · v3.recovery_requests · v3.withdrawal_customer_keys · v3.withdrawal_key_changes

읽기만 한다.

POST

/api/withdrawal-keys/register

출금 키를 등록한다.

  1. 세션 v3.customers · v3.identities · v3.otp_credentials · v3.sessions
  2. DB 조회 v3.financial_freezes · v3.otp_credentials · v3.withdrawal_customer_keys
  3. 봉인 AES-GCM 봉인을 연다.
  4. OTP 연 비밀과 6자리를 맞춘다. 같은 카운터는 다시 받지 않는다.
  5. DB 조회 v3.customers 기록 v3.otp_credentials · v3.withdrawal_customer_keys

등록만으로 돈이 나가지 않는다.

GET

/health

이 앱 프로세스가 살아 있는지만 답한다.

잔액이 갱신됐거나 돈 전송을 인수했다는 뜻이 아니다.

GET

/locale-pack

화면 문구 묶음을 읽는다.

한국어, 영어, 일본어, 중국어 문구다. 거래와 무관하다.

GET

/ready

인수 준비가 끝났는지 답한다.

지금은 인수 완료가 아니므로 준비되지 않았다고 답한다.