@mintbase-js/auth

@mintbase-js/auth

Working with Web3 Accounts

This package abstracts login, auth and signing functionality away from @mintbase-js/sdk core.

As more complex use cases grow with more complex credential verification (ZK), message signing and whatever the future of web3 may hold, having standalone methods and documentation around these features is prudent.

Wallet

A stateful module that wraps the core features found in near/wallet-selector.

This module can be used as a framework agnostic wrapper using framework specific integrations:

Check back soon for documentation on wallet selector wrapper methods and example usage with other frameworks in the near future.

config vars

read about config global variables on: Config SDK method

Account

The primary method used for loading a NEAR account into your Node programs is via the connect method

connect(
  accountId: string,
  keyStore: Keystore,
  network: NearNetwork = 'testnet'
): Promise<Account>

This method uses near-api-js to load account accountId with credentials in the provided keystore.

To use the near account signing method with the SDK contract api, you will need to implement a form of key management. You will want to read up on using KeyStore in the NEAR Documentation

Example usage:

loadAccount.ts
import { connect } from '@mintbase-js/auth';
import { KeyPair, InMemoryKeyStore, KeyStore  } from '@mintbase-js/sdk';

const loadAuthenticatedNearAccountInNodeJS = async (accountId: string) => {
  // NOTE: You will have to implement the method that securely fetches your private key.
  // See above note
  const privateKey: string = await <your-super-secure-key-method>();
  const keyStore: KeyStore = new InMemoryKeyStore();

  keyStore.setKey(
    NEAR_NETWORK,
    account,
    KeyPair.fromString(privateKey),
  );

  return await connect(accountId, keyStore);
}

Here is a working example from our testing library of this using GCP Secret Manager.

Last updated