carlos-menezes-test-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.16.0 • Public • Published

@fourt/sdk

npm

The Fourt Software Development Kit (SDK) is a TypeScript library that allows you to interact with the Fourt.io services and use them in your projects.

Installation

pnpm add @fourt/sdk
npm install @fourt/sdk
yarn add @fourt/sdk

Usage

To initialize the SDK, you will need to pass your API key to the one of the Signer constructors. You will also be asked to provide additional options for authentication methods. As of now, the SDK only supports authentication through passkeys (see Web Authentication), and thus only FourtWebSigner is available.

import { FourtWebSigner } from '@fourt/sdk'

const fourtWebSigner = new FourtWebSigner({
  auth: {
    webauthn: {
      rpId: 'localhost',
    },
  },
  configuration: {
    apiKey: '<YOUR_API_KEY>',
  },
})

Modules

The SDK is divided into several modules, each one with a specific purpose:

  • AuthModule: A module that allows you to authenticate users with the Fourt.io services;
  • UserModule: A module that allows you to get information about the authenticated user;
  • ViemModule: A module that offers utilities to interact with the Ethereum ecosystem using Viem.

Each module can be accessed through the auth, user and viem properties on the Signer instance, e.g.

await fourtWebSigner.auth.passkeys.signIn({
  email,
})

// Will print a `User` object, as defined in `@fourt/sdk/types`.
console.log(fourtWebSigner.user.info)

// Use the Viem module to interact with the Ethereum ecosystem
const localAccount = await fourtWebSigner.viem.toLocalAccount()

// Sign a message with the local account
const signature = await localAccount.signMessage({ message })
console.log(signature)

// Create a smart account instance
import { createPublicClient, http } from 'viem'
import { polygonAmoy } from 'viem/chains'

// You will need to create a public client to interact with the Ethereum ecosystem
const publicClient = createPublicClient({
  chain: polygonAmoy,
  transport: http('YOUR_RPC_URL'),
})

const smartAccount = await fourtWebSigner.viem.toSmartAccount({
  owner: localAccount,
  client,
})

// Take some action based on the smart account state
if (smartAccount.isDeployed) {
  console.log('Smart account is deployed')
} else {
  console.log('Smart account is not deployed. Airdropping tokens...')
}

Dependencies (9)

Dev Dependencies (3)

Package Sidebar

Install

npm i carlos-menezes-test-sdk

Weekly Downloads

67

Version

0.16.0

License

ISC

Unpacked Size

127 kB

Total Files

14

Last publish

Collaborators

  • carlos-menezes