
Web3 Utilities for Huddle01
The @huddle01/web3 package provides utility functions for integrating Web3 functionality with Huddle01, including NFT fetching, DID resolution, and access token generation.
``bash`
npm install @huddle01/web3
`bash`
yarn add @huddle01/web3
`bash`
pnpm add @huddle01/web3
Retrieves NFTs owned by a given address across specified chains.
`typescript
import { fetchUserNFT } from "@huddle01/web3";
const address = "0x1234567890123456789012345678901234567890";
const chains = ["polygon", "ethereum", "arbitrum"];
const nfts = await fetchUserNFT(address, chains);
console.log(nfts);
`
Resolves a Decentralized Identifier (DID) for an Arbitrum address.
`typescript
import { resolveArbDID } from "@huddle01/web3";
const address = "0x1234567890123456789012345678901234567890";
const did = await resolveArbDID(address);
console.log(did);
`
Generates an access token for a user based on NFT ownership and room data.
`typescript
import { Role } from "@huddle01/server-sdk/auth";
import { generateAccessToken } from "@huddle01/web3";
const authData = {
condition: "ERC721",
address: "0x1234567890123456789012345678901234567890",
chainId: 1,
contractAddress: "0x1234567890123456789012345678901234567890",
tokenId: "1",
};
const roomData = {
roomId: "your-room-id",
apiKey: "your-api-key",
role: Role.HOST,
};
const token = await generateAccessToken(authData, roomData);
console.log(token);
`
Fetches NFTs owned by the given address across specified chains.
- address: The Ethereum address to fetch NFTs for.chains
- : An array of chain names to search for NFTs.
Resolves the Arbitrum Decentralized Identifier (DID) for the given address.
- address: The Ethereum address to resolve the DID for.
Generates an access token for a user based on NFT ownership and room data.
- data: Authentication data including condition type and NFT details.roomData
- : Room information including room ID, API key, and user role.
All functions in this package use try-catch blocks for error handling. Errors are logged to the console and can be caught in your application for custom error handling.
This package relies on the following dependencies:
- @huddle01/server-sdk/auth`: For access token generation.
- SimpleHash API: For fetching NFT data.
- Space ID API: For resolving Arbitrum DIDs.
Make sure to set up the necessary API keys and environment variables as required by these dependencies.
We welcome contributions to the @huddle01/web3 package. Please feel free to submit issues and pull requests on our GitHub repository.
---
For more information, visit the Huddle01 documentation.