1.1.4 • Published 9 months ago
@fourt/sdk v1.1.4
@fourt/sdk
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/sdknpm install @fourt/sdkyarn add @fourt/sdkUsage
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. The SDK supports authentication through passkeys (see Web Authentication), email, and oauth (using either Google, Apple or Facebook as providers).
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...')
}