JSPM

  • Created
  • Published
  • Downloads 10930
  • Score
    100M100P100Q137891F

This is the core package for NEAR Wallet Selector.

Package Exports

  • @near-wallet-selector/core
  • @near-wallet-selector/core/index.cjs
  • @near-wallet-selector/core/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@near-wallet-selector/core) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@near-wallet-selector/core

This is the core package for NEAR Wallet Selector.

Upgrading from v9 to v10

If you're upgrading from v9.x to v10.x, please read the Migration Guide for detailed instructions on the breaking changes and how to update your code.

Installation and Usage

The easiest way to use this package is to install it from the NPM registry

# Using pnpm
pnpm add -w @near-wallet-selector/core

# Using NPM.
npm install @near-wallet-selector/core

Then use it in your dApp:

import { setupWalletSelector } from "@near-wallet-selector/core";
import { setupMyNearWallet } from "@near-wallet-selector/my-near-wallet";

// The entire set of options can be found in the section below.
const selector = await setupWalletSelector({
  network: "testnet",
  modules: [setupMyNearWallet()],
});

// Example with createAccessKeyFor for limited access keys (object format)
const selectorWithLimitedAccess = await setupWalletSelector({
  network: "testnet",
  modules: [setupMyNearWallet()],
  createAccessKeyFor: {
    contractId: "guest-book.testnet",
    methodNames: ["addMessage", "getMessages"]
  },
});

// Example with createAccessKeyFor using string format (creates key with no method restrictions)
const selectorWithSimpleAccess = await setupWalletSelector({
  network: "testnet",
  modules: [setupMyNearWallet()],
  createAccessKeyFor: "guest-book.testnet",
});

Options

  • network (NetworkId | Network): Network ID or object matching that of your dApp configuration . Network ID can be either mainnet or testnet.
    • networkId (string): Custom network ID (e.g. localnet).
    • nodeUrl (string): Custom URL for RPC requests.
    • helperUrl (string): Custom URL for creating accounts.
    • explorerUrl (string): Custom URL for the NEAR explorer.
    • indexerUrl (string): Custom URL for the Indexer service.
  • debug (boolean?): Enable internal logging for debugging purposes. Defaults to false.
  • optimizeWalletOrder (boolean?): Enable automatic wallet order. Reorders last signed in wallet on top, then installed wallets over not installed and deprecated wallets.
  • randomizeWalletOrder (boolean?): Randomize wallets order in the More section of the UI.
  • allowMultipleSelectors (boolean?): Optionally allow creating new instances of wallet selector.
  • languageCode (string?): Optionally set specific ISO 639-1 two-letter language code, disables language detection based on the browser's settings.
  • relayerUrl (string?): Optionally set the URL that meta-transaction enabled wallet modules can use to submit DelegateActions to a relayer
  • createAccessKeyFor (string | object?): The contract ID and method names to create a function call access key for. This allows wallets to create limited access keys for specific contract methods. Can be either:
    • A string containing just the contract ID (creates access key with no method restrictions)
    • An object with the following properties:
      • contractId (string): The contract ID to create the access key for.
      • methodNames (Array<string>): Array of method names that the access key will be limited to.
  • storage (StorageService?): Async storage implementation. Useful when localStorage is unavailable. Defaults to localStorage.
  • modules (Array<WalletModuleFactory>): List of wallets to support in your dApp.

API Reference

You can find the entire API reference for Wallet Selector here.

License

This repository is distributed under the terms of both the MIT license and the Apache License (Version 2.0).