快速上手
这里演示如何在浏览器中检测 UKey Wallet Aptos Provider、连接账户、读取网络状态并监听账户变化。
ℹ️
UKey Wallet Aptos Provider 兼容 Petra 钱包接口和 Aptos Wallet Standard,现有 Aptos DApp 通常只需要调整 Provider 检测入口。
找 Provider
// 检查 UKey Wallet Aptos provider
const provider = window.$ukey?.aptos;
if (!provider) {
throw new Error("未检测到 UKey Wallet Aptos provider");
}
// 确认 provider 信息
console.log("识别到的 Provider:", provider.isUKey ? "UKey Wallet" : "未知");
连接账户
// 建立连接并读取账户信息
const requestResult = await provider.connect();
console.log({
address: requestResult.address, // 当前账户地址
publicKey: requestResult.publicKey, // 公钥内容
});
检查连接状态
const isConnected = await provider.isConnected();
console.log("连接结果:", isConnected);
读取当前账户
const account = await provider.account();
console.log({
address: account.address,
publicKey: account.publicKey,
});
读取网络信息
const network = await provider.network();
console.log("当前网络:", network); // 'mainnet', 'testnet', 'devnet'
// 读取完整网络信息
const networkInfo = await provider.getNetwork();
console.log({
name: networkInfo.name,
chainId: networkInfo.chainId,
url: networkInfo.url,
});
断连
await provider.disconnect();
事件监听
看账户变化
provider.onAccountChange((newAccount) => {
if (newAccount) {
console.log("当前账户已切换为:", newAccount.address);
} else {
console.log("钱包会话已断开");
}
});
监听网络变更
provider.onNetworkChange((network) => {
console.log("网络已切换为:", network);
});
从 Petra 接入迁移
UKey Wallet 与 Petra 的接口形态兼容。迁移时建议优先读取 window.$ukey.aptos,没有 UKey Wallet 时再回退到 window.petra:
// 旧写法(仅 Petra)
const petraProvider = window.petra;
// 调整后(UKey Wallet 优先,Petra 作为备选)
const aptosProvider = window.$ukey?.aptos || petraProvider;
使用 Aptos Wallet Adapter
React 项目也可以使用 Aptos Wallet Adapter。UKey Wallet 会通过 Wallet Standard 出现在钱包列表中:
npm install @aptos-labs/wallet-adapter-react
import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react";
function AptosProviderShell() {
return (
<AptosWalletAdapterProvider>
<YourApp />
</AptosWalletAdapterProvider>
);
}
UKey Wallet 会被 Aptos Wallet Adapter 自动检测,无需手动注册。