介绍
一款开源MPC钱包SaaS服务
官网:https://getmeemaw.com/
文档:https://getmeemaw.com/docs/getting-started/
特点
接入简单
自定义Auth集成
参考:https://getmeemaw.com/docs/auth/custom
提供云和私有化部署
云:https://getmeemaw.com/docs/getting-started/cloud
私有化:https://getmeemaw.com/docs/getting-started/self-host
部署测试
云部署
准备Sepolia RPC
注册Supabase
使用三方的Auth服务方便演示,后期可以自定义
- 打开https://supabase.com/ 注册并登录账户
- 新建组织和项目
- 点击Authentication,添加测试User {记录邮箱和密码,后面登录会需要}
创建Meemaw账户
配置Meemaw
配置Supabase URL 和 Supabase API 密钥
在仪表板中,单击左侧菜单中的“身份验证”。从那里,您可以配置用户身份验证和认证方式。
为了便于本示例,选择“Supabase”作为身份验证提供商,然后提供您的 Supabase URL 和 Supabase API 密钥。别忘了保存。
注:Supabase信息获取,直接在Supabase新建的项目首页中获取
配置 security
选择security,测试直接设置为*
,后期根据真实ip设置
获取项目 URL
点击左侧API,https://getmeemaw.com/cloud/api, 复制Project URL
Clone实例
git clone https://github.com/getmeemaw/example-js.git
cd example-js
修改实例参数
编辑实例代码 client/src/app/tx.jsx
,使用您的项目URL 进行更新
const meemaw = await Meemaw.init('https://getmeemaw.co/YOUR-PROJECT-URL');
使用前面准备的Sepolia RPC替换YOUR-JSON-RPC-API-URL
const web3 = new Web3(new Web3.providers.HttpProvider("YOUR-JSON-RPC-API-URL"));
启动测试实例
cd client
npm install
npm run dev
注:nodejs 需要v18及以上版本
登陆测试
输入前面Supabase测试User邮箱和密码,进行登录
初始化
首次使用,创建钱包
非首次,可以选择从备份恢复
创建成功
可以先给新建的钱包地址转入一些gas,然后测试交易
测试交易
输入接收eth地址,点击 Send Transaction
,等待转账结束,查看区块浏览器
云部署测试结束
私有化部署
部署服务端
与云部署相同实例
git clone https://github.com/getmeemaw/example-js.git
cd example-js
编辑 server/.env,更新SUPABASE_URL并SUPABASE_API_KEY使用您的配置 {与云部署步骤相同}
启动Server
docker compose up -d
meemaw_app | 2024/10/11 10:36:14 Schema does not exist, creating...
meemaw_app | 2024/10/11 10:36:14 Schema loaded
meemaw_app | 2024/10/11 10:36:14 Starting server on port 8421
修改client
步骤和云部署一致,只是Meemaw.init
地址改为Server对应的ip:8421
编辑实例代码 client/src/app/tx.jsx
,使用您的项目URL 进行更新
const meemaw = await Meemaw.init('http://服务端所在ip+端口或域名');
使用前面准备的Sepolia RPC替换YOUR-JSON-RPC-API-URL
const web3 = new Web3(new Web3.providers.HttpProvider("YOUR-JSON-RPC-API-URL"));
其余使用逻辑与前面云部署步骤一致
其它
导出MPC备份和导出私钥
参考example-js
页面功能代码
多设备
当一个账户已经在其它客户端A创建钱包后,在另外客户端B再次登录相同账户,再次点击创建钱包时,会走新设备加入流程,
- 客户端B: meemaw.GetWallet()
- 客户端A: wallet.AcceptDevice()
通过后 ,客户端B将作为新设备加入
对于Meemaw和其它的MPC先关钱包或逻辑有少许不同,类似Sygma, 是有多个relayer服务节点,彼此间完成TSS过程,Meemaw是meemaw_app服务与加入的客户端SDK完成,客户端SDK也参与了TSS
版权属于:区块链中文技术社区 / 转载原创者
本文链接:https://bcskill.com/index.php/archives/1942.html
相关技术文章仅限于相关区块链底层技术研究,禁止用于非法用途,后果自负!本站严格遵守一切相关法律政策!