feat: add WaaP wallet provider with 2PC split-custody key management#1149
Open
lebraat wants to merge 2 commits intocoinbase:mainfrom
Open
feat: add WaaP wallet provider with 2PC split-custody key management#1149lebraat wants to merge 2 commits intocoinbase:mainfrom
lebraat wants to merge 2 commits intocoinbase:mainfrom
Conversation
Added WaaP (Wallet as a Protocol) as a new EVM wallet provider for AgentKit. WaaP uses two-party computation (2PC) for key management -- the private key is split between the user and a secure enclave, so neither party ever holds the complete key. Includes: - waapWalletProvider.ts: Full EvmWalletProvider implementation wrapping the @human.tech/waap-cli binary for all signing operations - Unit tests (waapWalletProvider.test.ts) - Integration tests (waapWalletProvider.integration.test.ts) - LangChain example chatbot (langchain-waap-chatbot) - Vercel AI SDK example chatbot (vercel-ai-sdk-waap-chatbot) - README updates and WaaP logo asset Co-authored-by: Soe <soe@holonym.id>
🟡 Heimdall Review Status
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Added WaaP (Wallet as a Protocol) as a new EVM wallet provider for AgentKit, alongside the existing
cdp,privy,viem, andzeroDevproviders.WaaP is a non-custodial wallet infrastructure that uses two-party computation (2PC) for key management — the private key is split between the user and a secure enclave, so neither party ever holds the complete key. This gives AgentKit developers a wallet provider option with split-custody security and human-in-the-loop transaction approval via Telegram or email.
What's included:
waapWalletProvider.ts— FullEvmWalletProviderimplementation that delegates signing operations to the@human.tech/waap-clibinarywaapWalletProvider.test.ts) — 613 lines covering all provider methodswaapWalletProvider.integration.test.ts) — end-to-end tests against testnetlangchain-waap-chatbot)vercel-ai-sdk-waap-chatbot)assets/wallets/waap.svg)How it works:
The provider wraps the
waap-clibinary, which handles all cryptographic operations server-side via 2PC. Read-only blockchain queries go through a standard viemPublicClient. The provider implements the fullEvmWalletProviderinterface:getAddress()/getBalance()/getNetwork()signMessage()/signTypedData()/sign()signTransaction()/sendTransaction()nativeTransfer()readContract()/waitForTransactionReceipt()exportWallet()for session persistenceSetup:
npm install -g @human.tech/waap-cli waap-cli signup # or waap-cli loginThen configure the provider:
Key differentiators vs existing providers:
me+agent1@example.com)More info: docs.waap.xyz | human.tech
Tests
End-to-end testing against Base Sepolia using
waap-clidirectly (the same binary the wallet provider wraps):Unit tests: 613 lines covering all wallet provider methods including edge cases for CLI output parsing, error handling, and transaction building.
Integration tests: End-to-end tests against Base Sepolia covering login, address retrieval, message signing, typed data signing, and transaction sending.
Checklist