Follow the instructions here to implement an AIP-62 wallet adapter plugin.
Implementing an AIP-62 standard wallet adapter plugin is backwards compatible with this legacy version. Implementing the above AIP-62 standard makes it simple for dapps to include your Wallet as an option by updating the version of the wallet-adapter package.
This legacy plugin template required dapps to manually look for new wallets to include from a README which was easier to miss.
This repo provides wallet builders a pre-made class with all required wallet functionality following the wallet standard for easy and fast development to interact with the Aptos Wallet Adapter
-
fork
this repo -
run
npm install
oryarn install
-
Open
src/index.ts
-
Change all
AptosWindow
appereances to<Your-Wallet-Name>Window
-
Change
AptosWalletName
to be<Your-Wallet-Name>WalletName
-
Change
url
to match your website url -
Change
icon
to your wallet icon (pay attention to the required format) -
Change
window.aptos
to bewindow.<your-wallet-name>
NOTE: Ensure the
name
prop is the same as thewindow.<name>
. The adapter will look for the matching name when detecting a wallet. For example, if your wallet's name prop isPetra
, then the window should bewindow.petra
.
NOTE2 window object key (i.e
window.<name>
) has to be lowercase exact match (petra
). Wallet name prop can have capitalization (Petra
/PetraWallet
)
- Make sure the
Window Interface
has<your-wallet-name>
as a key (instead ofaptos
) - Open
__tests/index.test.tsx
and changeAptosWallet
to<Your-Wallet-Name>Wallet
- Run tests with
npm run test
- all tests should pass
At this point, you have a ready wallet class with all required properties and functions to integrate with the Aptos Wallet Adapter.
Next step is to publish your wallet as a npm package so dapps can install it as a dependency.
- Make sure to update
package.json
name, description, author and any other properties. - Run
npm install
thennpm run build
- adist
folder should be available - (optional) Run
npm publish --dry-run
to see what would get published (make sure there is adist
folder)
Creating and publishing scoped public packages https://docs.npmjs.com/creating-and-publishing-scoped-public-packages
Creating and publishing unscoped public packages https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages
Once the package is published, you can create a PR against the aptos-wallet-adapter repo and add your wallet name as a url to the npm package to the supported wallet list on the README file.
Note: if your wallet provides function that is not included, you should open a PR against aptos-wallet-adapter in the core package so it would support this functionality. You can take a look at the
signTransaction
on the wallet core package