๐ Installation
npm install @djuno/web3auth-sdk
# or
yarn add @djuno/web3auth-sdk
โจ Quickstart
import { Client } from '@djuno/web3auth-sdk';
const client = new Client({ accessKey: 'your-access-key', });
const networks = await client.networks(); 
console.log(networks.data);
๐งฉ Constructor
new Client(configs?: ClientConfigs)
ClientConfigs type:
type ClientConfigs = { 
   endpointUrl?: string; // Defaults to https://web3auth.djuno.cloud        
   accessKey?: string; // Required 
   version?: string; // Defaults to 'v1' 
   headers?: Record<string, string>;
}
๐ Methods
networks
client.networks(): Promise<{ data: Network[] }>
Fetches the list of supported blockchain networks and wallets.
handshake
client.handshake(networkId: string, walletAddress: string)
Starts the authentication flow by requesting a signable message.
Returns:
{ 
  data: string; // Message to sign 
  status: boolean; 
}
verify
client.verify(networkId: string, walletAddress: string, signature: string)
Verifies the signed message and returns a JWT token.
Returns:
{ 
  data: string; // JWT Token 
  status: boolean; message: string; 
}
getProfile
client.getProfile(token: string)
Retrieves the authenticated user's profile.
updateProfile
client.updateProfile(token: string, data: object)
Updates the user's profile with the provided data.
getProfileAvatar
client.getProfileAvatar(token: string)
Returns the userโs avatar as a Blob URL (browser-compatible only).
const { data: blobUrl } = await client.getProfileAvatar(token);
const img = new Image(); 
img.src = blobUrl;Automatically revokes the blob URL after 5 seconds.
saveProfileAvatar
client.saveProfileAvatar(token: string, formData: FormData)
Uploads a profile avatar image.
const formData = new FormData();
formData.set('img', file);
await client.saveProfileAvatar(token, formData);
Node.js compatible (form-data headers handled automatically).
setAccessKey
client.setAccessKey(newKey: string)
Dynamically updates the API key for the SDK instance.
๐งพ Types
Network
type Network = { 
   Id: number;
   NetworkName: string;
   ChainId: string;
   WalletResponses: NetworkWallet[];
}NetworkWallet
type NetworkWallet = { 
   Id: number;
   WalletName: string;
   NetworkId: number;
}