跳到主要内容

快速上手

这里演示如何在浏览器中检测 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 自动检测,无需手动注册。