Skip to content

The StakeKit Signers allows you to create a signing wallet instance from a mnemonic phrase or ledger app and sign transactions

Notifications You must be signed in to change notification settings

stakekit/signers

Repository files navigation

StakeKit Signers

Stakekit's logo

Introduction

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.

Supported Networks

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

Supported Wallets

We currently support:

  • MetaMask
  • Omni
  • Phantom
  • Keplr
  • SteakWallet
  • Temple

Development

install proto toolchain manager.

Once you have installed proto, run:

proto use

Install packages:

pnpm i

Build package:

pnpm build

Installation

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

Usage

Examples

Ethereum

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);

Solana

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);

About

The StakeKit Signers allows you to create a signing wallet instance from a mnemonic phrase or ledger app and sign transactions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •