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
-
forkthis repo -
run
npm installoryarn install -
Open
src/index.ts -
Change all
AptosWindowappereances to<Your-Wallet-Name>Window -
Change
AptosWalletNameto be<Your-Wallet-Name>WalletName -
Change
urlto match your website url -
Change
iconto your wallet icon (pay attention to the required format) -
Change
window.aptosto bewindow.<your-wallet-name>
NOTE: Ensure the
nameprop 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 Interfacehas<your-wallet-name>as a key (instead ofaptos) - Open
__tests/index.test.tsxand changeAptosWalletto<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.jsonname, description, author and any other properties. - Run
npm installthennpm run build- adistfolder should be available - (optional) Run
npm publish --dry-runto see what would get published (make sure there is adistfolder)
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
signTransactionon the wallet core package