Coinbase Wallet
三种钱包

弹框实现
三种钱包都是通过 window.open popup 实现 + iframe


popup feature
https://github.com/search?q=repo%3Atorusresearch%2Ftorus-embed%20getPopupFeatures&type=code
Smart Wallet
passkeys 结合合约钱包可行性依据


smart wallet
这个链接有说明是怎么交互的,https://www.smartwallet.dev/guides/tips/popup-tips



Recovery

验证签名
validateUserOp: https://github.com/coinbase/smart-wallet/blob/facf1a5a00a393c859c77a7cff38de1e557c393f/src/CoinbaseSmartWallet.sol#L170_isValidSignature: https://github.com/coinbase/smart-wallet/blob/facf1a5a00a393c859c77a7cff38de1e557c393f/src/CoinbaseSmartWallet.sol#L297-L337
问题 🙋
A smart wallet is an onchain wallet built to make it easier than ever for users to get started. It exists entirely in the browser, no need to install extensions or apps. It uses passkeys for signing, no seed phrases, no passwords, no third parties。
使用 passkeys 进行签名?为什么不需要私钥了,合约钱包可以处理 passkeys 的签名?
在传统的区块链交易中,每笔交易通常都需要由用户的私钥进行签名,以确保交易的合法性和安全性。然而,在使用合约钱包(contract wallet)以及 passkeys 进行签名的场景中,流程会有所不同。这种方式依赖于智能合约来管理和验证用户的身份和授权,而不是每笔交易都需要独立的签名。
合约钱包与 passkeys 签名流程
-
公钥注册:用户设备生成一对公钥和私钥,并将公钥注册到智能合约中。这个公钥用于后续的身份验证。
-
交易请求:当用户希望执行某个操作(如转账或调用智能合约)时,用户设备使用私钥对交易数据进行签名,然后将签名和交易数据发送到合约钱包。
-
签名验证:合约钱包接收到交易请求后,使用预先注册的公钥验证签名的有效性。如果签名有效,则表示该请求确实由授权用户发起。
-
执行交易:
签名验证通过后,智能合约执行相应的交易操作。------ 这怎么进行的,谁签名?
在这个过程中,智能合约本身负责验证签名并执行交易,因此不需要每个交易都独立地进行签名。这种方法将签名和验证逻辑集中在智能合约中,简化了用户的操作流程。
总结
通过这种方式,合约钱包可以在验证 passkeys 签名后直接执行交易操作,而不需要每笔交易都单独签名。这种方法简化了用户的操作,同时确保了交易的安全性和合法性。智能合约在这个过程中扮演了重要角色,负责管理授权和验证签名,从而实现更高效和安全的交易流程。
合约没部署就可以用地址了



无钱也可部署



Embedded wallet

embedded-wallets: https://docs.cdp.coinbase.com/embedded-wallets/docs/welcome/


