WAIaaS
AI 에이전트를 위한 Wallet-as-a-Service (서비스형 지갑)
👁 npm downloads
👁 License: MIT
👁 Node.js
👁 Tests
👁 MCP Server
AI 에이전트가 온체인 트랜잭션을 안전하게 수행할 수 있도록 지원하는 자체 호스팅 지갑 데몬입니다. 자금에 대한 완전한 통제권은 소유자가 유지합니다.
문제점
온체인 트랜잭션이 필요한 AI 에이전트는 불가능한 선택에 직면합니다: 개인 키를 직접 보유(탈취 시 전액 손실 위험)하거나 중앙 집중식 관리자에게 의존(단일 실패 지점, 신뢰 의존성)해야 합니다.
WAIaaS는 이 간극을 메워줍니다. 에이전트는 소액 트랜잭션을 즉시 처리하고, 고액 트랜잭션은 소유자의 승인을 요구하며, 모든 작업은 제3자 의존성 없이 사용자의 기기에서 실행됩니다.
Related MCP server: AgentWallet MCP Server
작동 원리
WAIaaS는 AI 에이전트와 블록체인 사이에 위치하는 로컬 데몬입니다:
3단계 인증 -- 데몬 운영자(masterAuth), 자금 소유자(ownerAuth), AI 에이전트(sessionAuth)를 위한 별도의 역할
4단계 정책 엔진 -- 트랜잭션을 USD 가치에 따라 INSTANT(즉시) / NOTIFY(알림) / DELAY(지연) / APPROVAL(승인) 단계로 자동 분류
12가지 정책 유형 -- 누적 지출 한도, 토큰 허용 목록, 컨트랙트 화이트리스트, 승인된 지출자 등
심층 방어 -- 킬 스위치(Kill Switch), 자동 정지(AutoStop) 엔진, 감사 로깅, 4채널 알림
자세한 내용은 보안 모델을 참조하세요.
아키텍처
graph LR
subgraph Interfaces
SDK["TypeScript SDK"]
MCP["MCP Server"]
CLI["CLI"]
Admin["Admin UI"]
Skills["Skill Files"]
WalletSDK["Wallet SDK"]
end
subgraph Daemon
API["API Layer<br>(Hono + Middleware)"]
Services["Service Layer<br>(Policy, Notifications, Kill Switch)"]
Pipeline["Transaction Pipeline<br>(6-stage + 8-state)"]
Infra["Infrastructure<br>(SQLite, Keystore, Config)"]
end
subgraph Blockchain
Solana["Solana"]
EVM["EVM Chains"]
end
SDK & MCP & CLI & Admin & Skills & WalletSDK --> API
API --> Services --> Pipeline --> Infra
Infra --> Solana & EVM모노레포 내 12개 패키지:
@waiaas/core — 공유 타입, Zod 스키마, 열거형 및 인터페이스
@waiaas/daemon — 자체 호스팅 지갑 데몬 (Hono HTTP 서버)
@waiaas/adapter-solana — Solana 체인 어댑터 (SPL / Token-2022)
@waiaas/adapter-evm — EVM 체인 어댑터 (viem을 통한 ERC-20)
@waiaas/actions — DeFi 액션 제공자 (Jupiter, 0x, LI.FI, Lido, Jito)
@waiaas/sdk — TypeScript 클라이언트 라이브러리
@waiaas/mcp — AI 에이전트를 위한 Model Context Protocol 서버
@waiaas/cli — 명령줄 인터페이스
@waiaas/admin — Preact 기반 관리자 웹 UI
@waiaas/wallet-sdk — 지갑 앱 통합을 위한 지갑 서명 SDK
@waiaas/push-relay — 푸시 릴레이 서버 (데몬 → Pushwoosh/FCM 네이티브 푸시)
@waiaas/skills — AI 에이전트를 위한 사전 구축된
.skill.md지침 파일
전체 기술적 상세 내용은 아키텍처를 참조하세요.
빠른 시작
npm install -g @waiaas/cli
waiaas init # Create data directory + config.toml
waiaas start # Start daemon (sets master password on first run)
waiaas quickset --mode mainnet # Create wallets + MCP sessions in one stepquickset 명령은 시작에 필요한 모든 작업을 수행합니다:
Solana 메인넷 + EVM Ethereum 메인넷 지갑을 자동으로 생성
각 지갑에 대한 MCP 세션 토큰 발급
Claude Desktop MCP 설정 스니펫 출력 -- 복사하여 붙여넣기만 하면 됩니다
고액 트랜잭션 승인을 위해 지출 한도를 설정하고 소유자 지갑을 등록하는 것을 권장합니다. 테스트를 위해서는
waiaas quickset --mode testnet을 사용하여 Solana Devnet + EVM Sepolia 지갑을 생성하세요.
관리자 UI
데몬을 시작한 후 http://127.0.0.1:3100/admin에서 관리자 패널을 통해 모든 것을 관리할 수 있습니다(masterAuth 필요).
AI 에이전트 연결
퀵셋 후 다음 두 가지 통합 경로 중 하나를 선택하세요:
경로 A: MCP (Claude Desktop / Claude Code)
Model Context Protocol을 지원하는 AI 에이전트의 경우:
# quickset already printed the MCP config JSON -- paste it into
# ~/Library/Application Support/Claude/claude_desktop_config.json
# Or auto-register with all wallets:
waiaas mcp setup --all데몬이 MCP 서버로 실행됩니다. 에이전트는 MCP 프로토콜을 통해 토큰 전송, 잔액 확인, 정책 관리 등 지갑 도구를 직접 호출합니다.
경로 B: 스킬 파일 (모든 AI 에이전트)
MCP를 지원하지 않거나 REST API 통합을 선호하는 경우:
npx @waiaas/skills add all프로젝트에 .skill.md 지침 파일을 추가합니다. 에이전트의 컨텍스트에 포함하면 WAIaaS API를 자동으로 학습합니다. 사용 가능한 스킬: setup, quickstart, wallet, transactions, policies, admin, actions, x402.
에이전트 자체 설정 (자동 프로비저닝)
AI 에이전트는 인간의 개입 없이 완전히 자율적으로 WAIaaS를 설정할 수 있습니다:
npm install -g @waiaas/cli
waiaas init --auto-provision # Generates random master password → recovery.key
waiaas start # No password prompt
waiaas quickset # Creates wallets + sessions automatically
waiaas set-master # (Later) Harden password, then delete recovery.key--auto-provision 플래그는 암호학적으로 무작위인 마스터 비밀번호를 생성하여 ~/.waiaas/recovery.key에 저장합니다. 이후 모든 CLI 명령은 이를 자동으로 읽습니다. 전체 흐름은 에이전트 자체 설정 가이드를 참조하세요.
인간이 안내하는 비밀번호 입력을 통한 수동 설정의 경우, 스킬을 설치하고 waiaas-setup/SKILL.md를 따르세요:
npx @waiaas/skills add all대안: Docker
git clone https://github.com/minho-yoo/waiaas.git && cd waiaas
docker compose up -d데몬은 http://127.0.0.1:3100에서 수신 대기합니다.
SDK 사용
import { WAIaaSClient } from '@waiaas/sdk';
const client = new WAIaaSClient({
baseUrl: 'http://127.0.0.1:3100',
sessionToken: process.env.WAIAAS_SESSION_TOKEN,
});
const balance = await client.getBalance();
console.log(`Balance: ${balance.balance} ${balance.symbol}`);
const tx = await client.sendToken({
to: 'recipient-address...',
amount: '0.1',
});
console.log(`Transaction: ${tx.id}`);관리자 UI
마스터 비밀번호를 사용하여 http://127.0.0.1:3100/admin에서 관리자 패널에 액세스하세요:
대시보드 -- 시스템 개요, 지갑 잔액, 최근 트랜잭션
지갑 -- 체인별 지갑 생성, 관리 및 모니터링; RPC 엔드포인트, 잔액 모니터링 및 WalletConnect 설정
세션 -- 에이전트 세션 토큰 발급 및 취소; 세션 수명 및 속도 제한 설정
정책 -- 시각적 양식 편집기를 통한 12가지 정책 유형 구성; 기본 거부 및 계층 설정
알림 -- 채널 상태 및 전달 로그; Telegram, Discord 및 Slack 설정
보안 -- 킬 스위치 비상 제어, 자동 정지 보호 규칙, JWT 교체
시스템 -- API 키, 표시 통화, 가격 오라클, 속도 제한, 로그 수준 및 데몬 종료
설정 검색(Ctrl+K / Cmd+K) 및 저장되지 않은 변경 사항 보호 기능이 포함되어 있습니다.
기본적으로 활성화되어 있습니다(config.toml에서 admin_ui = true).
지원 네트워크
체인 | 환경 | 네트워크 |
Solana | 메인넷 | mainnet |
Solana | 테스트넷 | devnet, testnet |
EVM | 메인넷 | ethereum-mainnet, polygon-mainnet, arbitrum-mainnet, optimism-mainnet, base-mainnet |
EVM | 테스트넷 | ethereum-sepolia, polygon-amoy, arbitrum-sepolia, optimism-sepolia, base-sepolia |
총 13개 네트워크 (Solana 3 + EVM 10).
기능
자체 호스팅 로컬 데몬 -- 중앙 서버 없음; 키가 기기를 절대 떠나지 않음
다중 체인 --
IChainAdapter를 통한 Solana(SPL / Token-2022) 및 EVM(ERC-20)토큰, 컨트랙트 및 DeFi -- 네이티브 전송, 토큰 전송, 컨트랙트 호출, 승인, 배치 트랜잭션, 액션 제공자 플러그인(Jupiter Swap 등)
USD 정책 평가 -- 가격 오라클(CoinGecko / Pyth / Chainlink)이 모든 트랜잭션을 USD로 평가
x402 결제 -- EIP-3009 서명을 통한 자동 HTTP 402 결제 처리
다양한 인터페이스 -- REST API, TypeScript SDK, Python SDK, MCP 서버, CLI, 관리자 웹 UI, Tauri 데스크톱, Telegram 봇
스킬 파일 -- AI 에이전트에게 API 사용법을 가르치는 사전 구축된 지침 파일
문서
문서 | 설명 |
시스템 개요, 패키지 구조, 파이프라인, 체인 어댑터 | |
인증, 정책 엔진, 킬 스위치, 자동 정지 | |
Docker, npm, 구성 참조 | |
REST API 엔드포인트 및 인증 | |
자동 프로비저닝을 통한 완전 자율 설정 | |
27개 이상의 AI 에이전트 플랫폼을 위한 범용 가이드 | |
Claude Code를 위한 스킬 파일 + MCP 서버 설정 | |
OpenClaw 봇을 위한 빠른 설정 | |
지갑 개발자를 위한 통합 가이드 | |
AI 에이전트 지갑 보안 배경 | |
개발 설정, 코드 스타일, 테스트, PR 가이드라인 |
라이선스
MIT -- Copyright (c) 2026 WAIaaS Contributors
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/minhoyoo-iotrust/WAIaaS'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
