import { useUser } from '@sageprotocol/sdk/react';
import { useWallet } from '@suiet/wallet-kit';
function CreateUser() {
const { create } = useUser();
const { account, signAndExecuteTransaction } = useWallet();
const handleCreateUser = async () => {
const result = await create({
amounts: [0, 0], // Required; typically [0,0] by default
avatar: 0, // Optional avatar blob ID (default: 0)
banner: 0, // Optional banner blob ID (default: 0)
description: "Blockchain enthusiast", // Supports markdown formatting
inviteCode: "your-invite-code", // Required invite code
inviteKey: "your-invite-key", // Required invite key
name: "john-doe", // Globally unique username
self: account.address // User's connected wallet address
});
if (result.ok) {
await signAndExecuteTransaction({ transaction: result.transaction });
console.log("User created successfully!");
} else {
console.error("User creation error:", result.err);
}
};
return (
<button onClick={handleCreateUser}>
Create User
</button>
);
}
export default CreateUser;
Creating a User with Invites Using Direct JavaScript Integration
const createUserResult = await sageClient.createUser({
amounts: [0, 0], // Required; typically [0,0] by default
avatar: 0, // Optional avatar blob ID (default: 0)
banner: 0, // Optional banner blob ID (default: 0)
description: "Blockchain enthusiast", // Supports markdown formatting
inviteCode: "your-invite-code", // Required invite code
inviteKey: "your-invite-key", // Required invite key
name: "john-doe", // Globally unique username
self: walletAddress // User's wallet address
});
if (createUserResult.ok) {
await signAndExecuteTransaction({ transaction: createUserResult.transaction });
console.log("User created successfully!");
} else {
console.error("User creation error:", createUserResult.err);
}