Aptos Snap
Aptos Snap is the application allowing users to directly manage Aptos within the MetaMask interface. Since Snaps is
pre-release software, the alpha version of Aptos Snap is currently live on Metamask Flask
only, a canary distribution for developers that provides access to upcoming features.
*Note: MetaMask Flask is an experimental playground for developers and is not to be confused with the
normal MetaMask wallet app.
MetaMask Snaps Introduction
Snaps is a system that allows developers to safely build and expand the capabilities of MetaMask. It is a program that
is run in an isolated environment with a limited set of capabilities, that can customize and modify MetaMask's wallet
experience for end users. For example, a snap can add new APIs to MetaMask thus adding support for different blockchains
or modify existing functionalities using internal APIs.
Additional information can be found here.
Usage
- Enable
Aptos Snap
in your dapp
const result: boolean = await ethereum.request({
method: 'wallet_enable',
params: [
{
wallet_snap: {'npm:@keystonehq/aptossnap': {}},
},
],
});
- Get an Aptos Public Account
const result: string = await ethereum.request({
method: 'wallet_invokeSnap',
params: [
"npm:@keystonehq/aptossnap",
{
method: 'aptso_getAccount'
},
],
});
- Sign Transaction
const result: { txId: string, txHex: string } = await ethereum.request({
method: 'wallet_invokeSnap',
params: [
snapId,
{
method: 'aptos_signTransaction',
params: {
rawTransaction: bcsBytes
},
},
],
})
Building
Build the snap and test it locally with the following command:
yarn build
Live Example
If you would like to integrate Aptos Snap into your dapp, you can use the following
codes here.