wallet-adapter-plugin-template
wallet-adapter-plugin-template copied to clipboard
NOTE: Following AIP-62 new wallet standard, wallets are expected to not implement this wallet plugin but to implement the new wallet standard support by following this integration guide
Aptos wallet plugin template for wallet builders to interact with the Aptos Wallet Adapter
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
Usage
-
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.
Publish as a Package
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
Add your name to the wallets list
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