The StakeKit Signers is a package that allows you to create a signing wallet instance from a mnemonic phrase or ledger app and sign transactions.
In addition to that, you can provide a custom derivation path for your mnemonic phrase and get different wallets derived from it, from different types of wallet mechanisms, such as MetaMask, Omni, Phantom or Keplr.
We currently support the following networks:
- Avalanche-C
- Avalanche-C Atomic
- Avalanche-P
- Arbitrum
- Binance
- BinanceBeacon
- Celo
- Ethereum
- Ethereum Goerli
- Fantom
- Harmony
- Optimism
- Polygon
- Akash
- Cosmos
- Juno
- Kava
- Osmosis
- Stargaze
- Near
- Solana
- Tezos
We currently support:
- MetaMask
- Omni
- Phantom
- Keplr
- SteakWallet
- Temple
install proto
toolchain manager.
Once you have installed proto
, run:
proto use
Install packages:
pnpm i
Build package:
pnpm build
To install StakeKit Signers (in addition, we recomment installing the packages @stakekit/common):
npm install @stakekit/signers
or
yarn add @stakekit/signers
or
pnpm add @stakekit/signers
import { ImportableWallets, getSigningWallet } from '@stakekit/signers';
import { Networks } from '@stakekit/common';
import { TransactionRequest } from '@ethersproject/abstract-provider';
const walletoptions = {
mnemonic: process.env.MNEMONIC,
walletType: ImportableWallets.MetaMask,
index: 0,
};
const signingWallet = await getSigningWallet(Networks.Ethereum, walletoptions);
const address = await signingWallet.getAddress();
console.log('My wallet address: ', address);
const someUnsignedTx: TransactionRequest = {}; // Your unsigned transaction.
const signedTx = await wallet.signTransaction(unsignedTransaction);
// submitTransaction(signedTx);
import { ImportableWallets, getSigningWallet } from '@stakekit/signers';
import { Networks } from '@stakekit/common';
const walletoptions = {
mnemonic: process.env.MNEMONIC,
walletType: ImportableWallets.MetaMask,
index: 0,
};
const signingWallet = await getSigningWallet(Networks.Solana, walletoptions);
const address = await signingWallet.getAddress();
console.log('My wallet address: ', address);
const someUnsignedTx: string = ''; // Your unsigned transaction in hex.
const signedTx = await wallet.signTransaction(unsignedTransaction);
// submitTransaction(signedTx);