@msquared/web3-metagame-sdk
v0.0.85
Published
A TypeScript SDK for game-focused web 3 tooling
Readme
MSquared Web3 Metagame SDK
A typescript SDK that abstracts the complexity of using web3 tooling for gaming within a browser or server environment
Key features
- User data backed by an on-chain key value store
Usage
Installation
NPM
npm i @msquared/web3-metagame-sdkYarn
yarn add @msquared/web3-metagame-sdkPeer Dependencies
In order to use this SDK, a viem public (and optionally wallet client) is required
The goal with this SDK is to detach any keys / signers from on-chain interactions!
Example - Creating and updating a wallet's on-chain profile
import { SDK } from "@msquared/web3-metagame-sdk";
type Web3Profile = {
tokenData: Map<
string,
{
chainId: bigint
contractAddress: string
tokenId: bigint
}
>
stringData: Map<string, string>
}
// Instantiate the SDK
const sdk = new SDK({
public: getPublicClient(),
wallet: getWalletClient(), // Required to execute transactions
})
const profile: Web3Profile = {
tokenData: new Map(),
stringData: new Map()
}
// Set the latest profile
const hash = await sdk.player.data.setProfile(profile, account, {
erc4337Nonce, // Optional but used for high transaction through put in AA environments
})
await waitForTransactionReceipt({ hash })Example - Reading Data from chain
import { SDK } from "@msquared/web3-metagame-sdk"
// Instantiate the SDK with just a public viem client
const sdk = new SDK({ public: getPublicClient() })
// Fetch the profile
const profile = await sdk.player.data.getProfile(
getAddress(wallet),
)