Download

arrow_down

Build

arrow_down

More

arrow_down
activityactivityactivityactivity
  • themelight
  • languageIcon

  • menu
Skip to Content
En Docs
Guide
Tutorial Aptos-AIP-62

Aptos-AIP-62

AIP-62 standard is a new standard officially introduced by Aptos. It is a set of chain-agnostic interfaces and conventions designed to improve the interaction between applications and injected wallets. It uses the Wallet Standard method to detect installed wallets and automatically display a list of connectable wallets. AIP-62 also upgrades the data interfaces for interaction between DApps and wallets, such as the encapsulated RawTransaction, etc.

💡
Tip

In the near future, as wallets adopt the new standard, wallet adapters will deprecate the old standard and only retain support for the AIP-62 wallet standard.

When running a DApp in the Bitget Wallet App or in the Chrome browser with the Chrome Extension installed, the app can achieve wallet injection by wrapping AptosWalletAdapterProvider.

        
import { AptosWalletAdapterProvider } from "@aptos-labs/wallet-adapter-react"; <AptosWalletAdapterProvider autoConnect> <App /> </AptosWalletAdapterProvider>;

Get wallet list

DApps can directly use hooks to get the list of wallets registered via registerWallet:

        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { wallets } = useWallet(); // [{name: 'Bitget Wallet', icon: '...'}]

Connect Wallet

Pass the wallet name to the connect method to connect to a specified wallet:

Parameters

  • name - string:wallet name
        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { connect } = useWallet(); // [{name: 'Bitget Wallet', icon: '...'}] await connect("Bitget Wallet");

Get Wallet Address

        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { account } = useWallet(); // {address: '...', publicKey: '...'}

Get Network

        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { network } = useWallet();

Sign Message

Parameters

  • options
    • message - string
    • nonce - string
        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { signMessage } = useWallet(); const res = await signMessage({ message: "The message to be signed and displayed to the user", nonce: "1", });

Send Transaction

        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { signTransaction } = useWallet(); const transaction = { arguments: ["100000", "330679"], function: "0xc7efb4076dbe143cbcd98cfaaa929ecfc8f299203dfff63b95ccb6bfe19850fa::router::swap_exact_input", type: "entry_function_payload", type_arguments: [ "0x1::aptos_coin::AptosCoin", "0x159df6b7689437016108a019fd5bef736bac692b6d4a1f10c941f6fbb9a74ca6::oft::CakeOFT", ], }; try { const res = await signTransaction(transaction); } catch (error) { // see "Errors" }

Sign and Submit

        
import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { signAndSubmitTransaction } = useWallet(); try { const pendingTransaction = await signAndSubmitTransaction({ data: transaction, }); } catch (error) { // see "Errors" }

Verification

Signing information is intended to verify ownership of private resources.

        
import nacl from 'tweetnacl'; import { useWallet } from "@aptos-labs/wallet-adapter-react"; const { signMessage, account } = useWallet(); const message = "hello"; const nonce = "random_string" try { const response = await signMessage({ message, nonce, }); // Remove the 0x prefix const key = account.publicKey!.slice(2, 66); const verified = nacl.sign.detached.verify(Buffer.from(response.fullMessage), Buffer.from(response.signature, 'hex'), Buffer.from(key, 'hex')); console.log(verified); } catch (error) { console.error(error); }
Last updated on