AI에게 결제를 맡기면서 “100 USDC까지만 써”라고 말하면, 정말 100 USDC에서 멈출까요? 한 번에 100인지, 작업 전체에서 100인지에 따라 답이 달라집니다. 말로 정한 예산과 지갑이 실제로 허용하는 권한부터 맞춰야 합니다.
건당 한도는 결제 한 번의 상한이고, 누적 한도는 세션 전체의 상한입니다.
돈의 한도와 함께 토큰·받는 주소·유효기간을 제한해야 합니다.
아래는 공식 화면과 SDK 절차를 확인한 설명입니다. 누구나 같은 지갑 메뉴에서 클릭해 설정하는 사용법은 아닙니다.
정정·보완: 이전 글은 ‘나누는 법’이라는 제목과 달리 실제 설정 절차를 충분히 설명하지 못했습니다. 건당 한도와 누적 한도를 구분하지 않은 예시도 바로잡고, 공식 화면과 개발자 구현 절차를 구분해 설명합니다. 2026년 11월 2일 확인 기준입니다.
공식 모의 화면에서 한도와 기간을 따라 확인해 봅니다
먼저 Polygon 공식 Interactive Demo를 엽니다. 문서가 직접 밝히듯 가상 데이터를 쓰는 체험 화면이며 실제 돈은 사용하지 않습니다. 이 예시는 자동투자 화면입니다. AI 결제용 지갑 권한을 실제로 등록하는 과정과는 다릅니다.
Smart Sessions로 이동합니다. 데모 상단의 단계 선택에서 9개 중 8번째인 Smart Sessions를 선택합니다.
자동투자 예시를 엽니다. 오른쪽 지갑 화면에서 Earn을 누른 뒤 Earn with auto-invest를 엽니다.
금액을 봅니다. Spending cap(지출 한도) 슬라이더의 기본 표시는 250 USDC이고 범위는 100~1,000 USDC입니다.

공식 모의 데모 · 실제 자금 사용 없음 · 이미지를 누르면 원본을 볼 수 있습니다.
100 USDC로 낮춰 봅니다. 이 값이 AI 결제 상품의 기본값이라는 뜻은 아닙니다.

공식 모의 데모 · 실제 자금 사용 없음 · 이미지를 누르면 원본을 볼 수 있습니다.
유효기간: 30일 (데모 표시: Session duration · 30 days)
Continue(계속) → Show details(상세 보기)
Scope · Vault deposits only
Token · USDC on Polygon
Max per tx · $100
이 예시의 100은 거래 한 번당 한도입니다. 허용 동작도 볼트 예치로 제한되어 있습니다.

공식 모의 데모 · 실제 자금 사용 없음 · 이미지를 누르면 원본을 볼 수 있습니다.
함께 실은 캡처는 이 공식 모의 화면을 직접 열어 확인한 것입니다. 기간을 변경하는 동작이나 누적 한도 선택 UI는 확인하지 못했습니다. 실제 자동투자나 지갑 권한 승인은 실행하지 않았습니다. 모의 화면에서 숫자를 바꾸었다고 실제 지갑에 한도가 저장되는 것도 아닙니다.
한편 Agent Controls 소개 페이지의 네 가지 그림은 지출 한도·허용 송금·만료·철회를 설명하는 자료일 뿐 입력·저장 창이 아닙니다. 실제 서비스는 개발자가 SDK를 연결하고 승인 화면을 구현해야 합니다. 일반 사용자 모두가 같은 메뉴로 설정할 수 있다고 안내할 근거는 확인하지 못했습니다.
100이라는 숫자보다 건당인지 누적인지가 먼저입니다
공식 Agent Controls 소개는 지출 한도를 각 결제에 적용하는 최대 금액으로 설명합니다. 반면 Smart Sessions 기술 문서는 누적 한도도 지원한다고 명시합니다. 서로 다른 조건을 한 가지 기능처럼 읽으면 안 됩니다.
건당 100: 먼저 60을 보내고 다음에 50을 요청하면, 두 요청 모두 각각 100 이하입니다. 다른 조건이 모두 충족된다면 금액 한도만으로 두 번째 요청을 막지는 못합니다.
세션 누적 100: 이미 60을 사용했다면 남은 허용량은 40입니다. 다음 50은 누적 110이므로 해당 한도를 초과합니다.
이 계산은 두 방식의 차이를 보여주는 예시이며 실제 송금 실험 결과가 아닙니다. 동일 세션·동일 송금 권한 기준이고 가스비 등은 계산에 포함하지 않았습니다.
공개 SDK에서 네이티브 토큰 송금은 누적 한도입니다. ERC-20 토큰 송금의 cumulative는 기본값이 true이며, false로 설정하면 각 호출에 한도를 따로 적용합니다. “100 설정 완료”만 보지 말고 어떤 방식으로 승인했는지를 확인해야 합니다.
지출 한도와 지갑 권한은 이렇게 따로 확인합니다
승인 전 확인할 질문을 둘로 나누면 이해하기 쉽습니다.
- 얼마까지인가: 건당인지 누적인지, 어떤 토큰의 얼마인지 확인합니다. “100달러”와 “100개 토큰”도 같다고 가정하지 않습니다.
- 무엇을 할 수 있는가: 어느 네트워크에서 어떤 토큰을 어느 주소로 보낼 수 있는지, 언제 끝나는지 확인합니다. 금액이 작아도 원하지 않은 상대에게 보낼 수 있다면 의도한 권한이 아닙니다.
공개 Smart Sessions SDK의 이 절차는 네이티브 토큰·ERC-20 송금 권한을 다룹니다. 이를 모든 종류의 계약 호출이나 매매 기능을 마음대로 제한하는 범용 설정 화면으로 확대해서 설명하면 안 됩니다. 백엔드는 소유자가 승인한 권한을 스스로 넓힐 수 없습니다.
독자 입장에서는 실제 이용할 서비스가 이 조건들을 승인 화면에 보여주는지, 승인 후 다시 조회할 수 있는지부터 확인하는 편이 실용적입니다. 조건이 숨겨져 있으면 소개 페이지의 예시만 보고 안전하다고 판단하지 마세요.
철회는 로그아웃과 다르고 이미 보낸 돈을 되돌리지 않습니다
소유자가 특정 세션을 끊는 SDK 호출은 revokeAccess({ credentialId, sessionId })입니다. Polygon의 지갑 서비스(WaaS)는 해당 세션의 사용을 즉시 차단하지만, 온체인 설정 항목은 이후 지갑 실행 과정에서 정리됩니다. 따라서 “누르는 순간 체인의 모든 기록이 삭제된다”는 뜻은 아닙니다.
앱에서 signOut으로 로그아웃하는 것만으로 서버의 접근 권한이 철회되지는 않습니다. 로그아웃과 세션 권한 철회를 구분해야 합니다. 이미 완료된 송금을 철회 버튼이 취소하거나 환불해 주는 것도 아닙니다.
결국 핵심은 AI에게 “조심해서 쓰라”고 말하는 것이 아닙니다. 건당·누적 금액을 구분하고, 토큰·수취인·기간을 실제 승인 조건에 넣으며, 그 권한을 끊을 경로까지 확인하는 것입니다. 공식 화면 캡처는 구조를 이해하기 위한 자료이며, 이 글에서 실제 지갑 연결·승인·송금은 수행하지 않았습니다.
개발자 참고: 실제 서비스에 연결하는 순서
모의 체험에서 실제 서비스로 넘어가려면 개발 작업이 필요합니다. SDK Quickstart는 Polygon에 연락해 publishableKey를 발급받는 것부터 시작합니다. 공식 문서의 실제 순서는 다음과 같습니다.
- 서버 등록: 앱 서버가 자격증명을 등록합니다. 이 단계만으로 지갑의 돈을 쓸 수는 없습니다.
- 조건 요청: 앱이 네트워크, 토큰, 받는 주소, 한도 방식·금액, 만료 시각을 정해 소유자에게 보여줍니다.
- 소유자 승인: 앱이 상대 정보와 정확한 요청 조건을 표시하고, 소유자가 명시적으로 승인한 뒤 제한된 세션을 만듭니다. 승인 호출 자체가 송금은 아닙니다.
- 세션 연결: 서버가 반환된 지갑·세션 식별자를 작업에 연결하고 실제 승인 조건을 다시 조회합니다.
- 검사 후 실행: 서버가 요청을 준비·검증하고 실행하며, 사용량과 거래 결과를 확인합니다.
개발자가 확인할 핵심 필드는 ERC-20 송금의 token(토큰), to(수취인), limit(한도), cumulative(누적 여부), 그리고 세션의 network·expiresAt입니다. to는 선택 항목이므로 특정 수취인만 허용하려면 빠뜨리지 않아야 합니다. 금액은 토큰의 최소 단위 정수로 입력해야 합니다.
실제 세션 만료는 서버 자격증명의 만료를 넘을 수 없습니다. 승인 링크나 관리 화면은 서비스가 구현하는 부분이므로, 위 함수가 있다고 누구에게나 같은 버튼이 제공되는 것은 아닙니다.
