Claude Desktop에서의 WalletConnect: AI 에이전트 트랜잭션을 위한 모바일 승인
요약
Claude Desktop 에이전트가 블록체인 트랜잭션을 실행할 때, WalletConnect를 통해 모바일 기기에서 인간의 승인을 거칠 수 있는 WAIaaS 통합 방식을 소개합니다. MCP 서버를 통해 45개의 도구를 제공하며, 3계층 보안 모델을 통해 자율 에이전트의 위험을 관리합니다.
핵심 포인트
- WalletConnect를 통한 Human-in-the-loop 보안 체계 구축
- WAIaaS를 MCP 서버로 Claude Desktop에 간편하게 연결
- 트랜잭션 임계값에 따른 4단계 보안 모델(INSTANT~APPROVAL) 적용
- 세션 인증, 정책 엔진, 승인 프로세스로 이어지는 3계층 보안 구조
Claude Desktop에서의 WalletConnect: AI 에이전트 트랜잭션을 위한 모바일 승인
WAIaaS에서의 WalletConnect 통합은 귀하의 Claude Desktop 에이전트가 단순히 트랜잭션(transaction)을 전송하는 것에 그치지 않고, 전송을 일시 중단한 뒤 휴대폰을 통해 승인을 요청할 수 있음을 의미합니다. 만약 Claude가 블록체인과 상호작용할 수 있게 해주는 MCP 도구들을 탐색해 오셨다면, 이것이 바로 그 고리를 완성하는 조각입니다. 즉, 귀하가 설정한 정책에 따라 온체인(onchain) 작업을 실행하며, 위험도가 높아 승인이 필요한 경우 인간 참여형(human-in-the-loop) 안전망을 갖춘 AI 에이전트입니다.
자율 에이전트에게 여전히 인간의 승인이 중요한 이유
AI 에이전트에게 지갑을 부여하는 것은 간단합니다. 하지만 그 지갑을 완전히 신뢰하는 것은 별개의 문제입니다. 온체인 에이전트를 구축하는 대부분의 개발자들은 결국 동일한 벽에 부딪힙니다. 에이전트가 작고 일상적인 트랜잭션은 빠르게 처리하기를 원하면서도, 중요한 일이 발생하기 전에는 인간의 체크포인트(checkpoint)를 거치기를 원하기 때문입니다.
WAIaaS는 정책 엔진(policy engine)에 직접 구축된 4단계 보안 모델 — INSTANT, NOTIFY, DELAY, 그리고 APPROVAL —을 통해 이 문제에 접근합니다. APPROVAL 단계가 바로 WalletConnect가 개입하는 지점입니다. 트랜잭션이 설정된 임계값을 초과하면, 데몬(daemon)은 이를 대기(pending) 상태로 유지하고 지갑 소유자의 모바일 기기로 승인 요청을 보냅니다. 귀하는 승인 또는 거절을 탭합니다. 에이전트는 기다립니다. 귀하의 서명 없이는 아무것도 움직이지 않습니다.
이것은 임시방편이 아닙니다. 의도된 아키텍처(architecture)입니다.
MCP 서버로서의 WAIaaS
WalletConnect의 메커니즘을 살펴보기 전에, WAIaaS가 귀하의 Claude Desktop 설정에 어떻게 부합하는지 이해하는 것이 도움이 됩니다. WAIaaS는 여러 가지 중에서도 지갑, 트랜잭션, DeFi, NFT, 그리고 x402 카테고리에 걸쳐 45개의 도구를 노출하는 MCP 서버입니다. Claude의 관점에서 보면, 이는 단지 claude_desktop_config.json에 추가되는 또 다른 항목일 뿐입니다.
다음 내용을 추가하세요:
{
"mcpServers": {
"waiaas": {
...
Claude Desktop을 재시작하세요. 이제 Claude는 wc-connect, wc-disconnect, wc-status, get-balance, send-token, get-defi-positions, simulate-transaction 등을 포함한 45개의 MCP 도구에 접근할 수 있습니다. WalletConnect 도구들은 별도의 추가 기능(add-on)이 아니라, 핵심 MCP 인터페이스(surface)의 일부로 포함되어 있습니다.
3계층 보안 모델 (The Three-Layer Security Model)
WalletConnect가 어디에 위치하는지 이해하려면 WAIaaS가 보안을 어떻게 구조화하는지 빠르게 살펴볼 필요가 있습니다.
계층 1 — 세션 인증 (Session auth): AI 에이전트는 세션 토큰 (JWT HS256)을 통해 인증합니다. 이는 에이전트가 애초에 무엇을 요청할 수 있는지를 제어합니다. 세션에는 설정 가능한 TTL (Time To Live), 최대 갱신 횟수, 그리고 절대적인 수명이 있습니다.
계층 2 — 정책 엔진 + 시간 지연 + 승인 (Policy engine + time delay + approval): 모든 트랜잭션은 7단계 파이프라인을 거칩니다. 3단계는 정책 평가 (policy evaluation) 단계입니다. 만약 정책 엔진이 트랜잭션에 APPROVAL 등급을 할당하면, 해당 트랜잭션은 대기(pending) 상태가 됩니다. 4단계는 대기 단계로, 데몬(daemon)은 지연 시간이 만료되거나 소유자가 승인할 때까지 트랜잭션을 보유합니다. WalletConnect가 작동하는 지점이 바로 여기입니다.
계층 3 — 모니터링 + 킬 스위치 (Monitoring + kill switch): 실시간 알림을 포함한 유입 트랜잭션 모니터링과, 언제든 연결을 해제하거나 권한을 취소(revoke)할 수 있는 기능을 제공합니다.
WalletConnect는 계층 2의 승인 게이트(approval gate)를 지갑 소유자의 모바일 기기와 연결하는 메커니즘입니다. 소유자가 WalletConnect를 통해 자신의 지갑을 연결하면, 그 시점부터 APPROVAL 등급의 트랜잭션은 휴대폰에 서명 요청(signing requests)으로 나타납니다.
지출 한도 정책 설정하기 (Setting Up the Spending Limit Policy)
APPROVAL 등급은 모든 트랜잭션에서 자동으로 트리거되지 않습니다. SPENDING_LIMIT 정책을 통해 직접 구성해야 합니다. 일반적인 구성은 다음과 같습니다:
curl -X POST http://127.0.0.1:3100/v1/policies \
-H "Content-Type: application/json" \
-H "X-Master-Password: my-secret-password" \
...
이러한 규칙과 함께:
- $100 미만 트랜잭션 → 즉시 실행 (INSTANT, 즉시 실행되며 알림 없음)
- $100–$500 → 알림 (NOTIFY, 실행하되 사용자에게 알림을 보냄)
- $500–$2,000 → 지연 (DELAY, 900초 동안 대기열에 추가되며 취소 가능한 기간 제공)
- $2,000 초과 → 승인 (APPROVAL, 실행 중단되며 WalletConnect 승인이 필요함)
정책 엔진 (Policy engine)은 이 규칙 위에 기본 거부 (default-deny) 원칙을 적용합니다. ALLOWED_TOKENS를 명시적으로 설정하지 않았다면, 금액에 관계없이 화이트리스트에 등록되지 않은 토큰으로의 트랜잭션은 차단됩니다. 이는 설정이 잘못된 에이전트가 실수로 지갑의 자산을 알 수 없는 컨트랙트로 유출하는 것을 방지합니다.
트랜잭션 승인이 필요할 때 에이전트가 보는 것
Claude의 관점에서, send_token을 호출했을 때 트랜잭션이 APPROVAL 단계에 도달하면, 도구 (tool)는 트랜잭션이 소유자의 승인을 기다리고 있음을 나타내는 응답을 반환합니다. 이때 트랜잭션 ID (transaction ID)를 확인할 수 있습니다. Claude는 get_transaction을 폴링 (poll)하여 상태를 확인하거나, 사용자에게 승인이 필요함을 단순히 알릴 수 있습니다.
소유자 측면에서는, WalletConnect 요청이 휴대폰에 일반적인 지갑 서명 요청으로 도착합니다. 이는 사용자가 다른 dApp과 상호작용할 때 보는 것과 동일한 UX (사용자 경험)입니다. 사용자는 트랜잭션 세부 정보를 검토한 후 승인하거나 거절합니다.
WalletConnect를 사용하지 않는 경우, ownerAuth를 사용하여 REST API를 통해 직접 승인할 수도 있습니다:
curl -X POST http://127.0.0.1:3100/v1/transactions/<tx-id>/approve \
-H "X-Owner-Signature: <ed25519-or-secp256k1-signature>" \
-H "X-Owner-Message: <signed-message>"
ownerAuth는 지갑이 사용하는 체인에 맞춰 ed25519 (Solana, Sign In With Solana) 또는 secp256k1 (EVM, Sign In With Ethereum) 중 하나를 사용합니다.
에이전트가 확정하기 전의 드라이 런 (Dry-Run)
에이전트 워크플로우 (workflow)를 구축할 때 유용한 실용적인 기술 중 하나는 실제 트랜잭션을 보내기 전에 드라이 런 (dry-run) 플래그를 사용하는 것입니다. 이를 통해 Claude(또는 작성한 코드)는 실제로 아무것도 실행하지 않고도 트랜잭션을 시뮬레이션하여 정책 엔진이 어떤 결정을 내릴지 미리 확인할 수 있습니다.
curl -X POST http://127.0.0.1:3100/v1/transactions/send \
-H "Content-Type: application/json" \
-H "Authorization: Bearer wai_sess_<token>"
...
MCP 도구 목록에는 동일한 목적을 위한 simulate-transaction도 포함되어 있습니다. 에이전트 워크플로(Agent workflow)에서 Claude에게 항상 먼저 시뮬레이션을 수행하고, 사용자에게 진행 여부를 묻기 전에 정책 결과(Policy outcome)를 보고하도록 지시할 수 있습니다. 이를 통해 사용자가 대기 중인 트랜잭션에 놀라기 전에 승인(APPROVAL) 요구 사항을 미리 확인할 수 있습니다.
멀티 월렛 설정: 에이전트별 개별 정책
만약 여러 개의 에이전트(예: 트레이딩 에이전트와 더 느리고 보수적인 재무(Treasury) 에이전트)를 실행하고 있다면, 별도의 정책을 가진 개별 월렛(Wallet)을 구성하고 이를 별도의 MCP 서버로 노출할 수 있습니다:
{
"mcpServers": {
"waiaas-trading": {
...
각 월렛은 고유의 지출 정책(Spending policy)을 가집니다. 트레이딩 월렛은 더 높은 즉시(INSTANT) 임계값을 가질 수 있습니다. 재무 월렛은 50달러를 초과하는 모든 항목에 대해 승인(APPROVAL)을 요구할 수 있습니다. WalletConnect 연결 및 승인 흐름은 월렛별로 이루어집니다. 즉, 모든 에이전트가 단일 승인 채널을 공유하는 것이 아닙니다.
퀵 스타트: 제로에서 승인 흐름까지
Claude Desktop에서 WalletConnect로 보호되는 승인 흐름을 작동시키기 위한 최소한의 경로는 다음과 같습니다:
1단계 — WAIaaS 설치 및 시작:
npm install -g @waiaas/cli
waiaas init
waiaas start
...
quickset은 한 번의 단계로 월렛과 MCP 세션을 생성합니다. 이는 다음 단계에서 필요한 MCP 설정 JSON을 출력합니다.
2단계 — Claude Desktop 설정에 추가:
quickset의 출력 내용을 다음 경로에 붙여넣으세요:
~/Library/Application Support/Claude/claude_desktop_config.json
또는 모든 월렛을 자동으로 등록하려면:
waiaas mcp setup --all
3단계 — APPROVAL 티어가 포함된 지출 한도 정책 생성:
위의 SPENDING_LIMIT 정책 예시를 사용하세요. delay_max_usd를 귀하의 사용 사례에 적합한 임계값으로 설정하십시오. 해당 금액을 초과하는 모든 항목은 명시적인 승인(APPROVAL)을 필요로 합니다.
4단계 — Claude를 통해 WalletConnect 연결:
Claude Desktop에서 다음과 같이 요청하세요: "WalletConnect를 통해 내 지갑을 연결해줘." 그러면 Claude가 wc-connect MCP 도구를 호출합니다. 모바일 지갑 앱으로 QR 코드를 스캔하세요.
5단계 — 워크플로우 테스트:
simulate-transaction 도구를 사용하여 Claude에게 대규모 전송을 시뮬레이션하도록 요청하세요. 정책에 따라 승인(APPROVAL)이 트리거되는지 확인합니다. 그다음, 설정한 임계값(threshold)을 초과하는 실제 트랜잭션을 시도하여 모바일 승인 요청이 도착하는지 확인하세요.
승인을 넘어: Claude가 45개의 MCP 도구로 할 수 있는 일
WalletConnect 승인 워크플로우는 더 넓은 기능 범위 중 하나의 요소입니다. WAIaaS의 45개 MCP 도구가 연결되면 Claude는 다음과 같은 작업을 수행할 수 있습니다:
- 지갑 잔액 및 토큰 보유량 확인
- 네이티브 토큰 또는 ERC-20/SPL 토큰 전송
- 15개의 통합 프로토콜을 통한 DeFi 액션 실행 (Jupiter에서의 스왑(swap), Aave에서의 대출(lend), Lido 또는 Jito를 통한 스테이킹(stake), Hyperliquid에서의 무기한 선물(perps) 거래)
- DeFi 포지션 및 건강 지표(health factors) 조회
- NFT(ERC-721, ERC-1155, Metaplex) 브라우징 및 전송
- 유입되는 트랜잭션 모니터링
- API가 402 응답을 반환할 때 자동으로 x402 HTTP 결제 수행
- 메시지에 서명하고 계정 추상화(Account Abstraction) 워크플로우를 위한 UserOps 구축
WalletConnect 도구(wc-connect, wc-disconnect, wc-status)는 이러한 작업 중 위험도가 높은 하위 집합에 대해 사용자가 프로세스에 참여(in the loop)할 수 있도록 유지해 주는 가교 역할을 합니다. 그 외의 모든 작업은 사용자가 정의한 정책 가드레일(guardrails) 내에서 자율적으로 실행될 수 있습니다.
향가 행보
LENDING_LTV_LIMIT, PERP_MAX_LEVERAGE, VENUE_WHITELIST와 같은 DeFi 특화 제어를 포함한 21가지 전체 정책 유형 목록은 데몬(daemon)이 실행되면 http://127.0.0.1:3100/reference에 있는 OpenAPI 레퍼런스에 문서화됩니다. WAIaaS를 프로덕션 환경에 배포하는 팀의 경우, Docker Secrets 오버레이와 자동 프로비저닝(auto-provision) 워크플로우를 통해 환경 변수에 비밀번호를 저장하지 않고도 자격 증명 관리를 처리할 수 있습니다.
만약 여러분이 블록체인과 상호작용해야 하는 에이전트(agent)를 구축하고 있으며, "에이전트가 결정하는 것"과 "내가 결정하는 것" 사이에 명확한 승인 경계(approval boundary)를 두고 싶다면, MCP를 통한 WAIaaS의 WalletConnect 통합 기능은 오후 시간 정도를 투자해 탐색해 볼 가치가 있습니다.
- GitHub: https://github.com/minhoyoo-iotrust/WAIaaS
- Official site: https://waiaas.ai
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기