React SDK Reference
npm install @partylayer/enterprise-reactProvider
PartyLayerProvider
Wrap your app to provide SDK context to all hooks and components.
import { PartyLayerProvider } from '@partylayer/enterprise-react';
<PartyLayerProvider config={{ appId: 'app_xxx', apiKey: 'pk_live_xxx' }}>
<App />
</PartyLayerProvider>Hooks
useAuth()
const {
user, // AuthSession | null
login, // (provider?: string) => Promise<void>
register, // (email: string, name?: string) => Promise<void>
logout, // () => Promise<void>
isAuthenticated, // boolean
isLoading, // boolean
} = useAuth();useWallet()
const {
wallet, // EmbeddedWallet | null
submitTransaction, // (params) => Promise<TransactionResult>
getContracts, // (template?: string) => Promise<ActiveContract[]>
isReady, // boolean
isLoading, // boolean
} = useWallet();useContracts(templateName)
const {
contracts, // ActiveContract[]
isLoading, // boolean
refetch, // () => Promise<void>
} = useContracts('Cayvox.PartyLayer.RewardDelegation');useTrustLevel()
const {
level, // 'embedded' | 'custodial' | 'self-custody'
requestUpgrade, // (target: TrustLevel) => Promise<void>
isUpgrading, // boolean
} = useTrustLevel();useGuest()
const {
session, // GuestSession | null
createSession, // (options?) => Promise<GuestSessionWithToken>
convert, // (params) => Promise<GuestConvertResult>
expireSession, // () => Promise<void>
isActive, // boolean
isLoading, // boolean
error, // Error | null
} = useGuest();useMfa()
const {
setupMfa, // (method: MfaMethod) => Promise<MfaSetupResponse>
verifySetup, // (method: MfaMethod, code: string) => Promise<{ verified, backupCodes? }>
challenge, // (method: MfaMethod) => Promise<MfaChallenge>
verify, // (challengeId: string, code: string) => Promise<{ verified, verificationToken }>
status, // MfaStatus | null
isLoading, // boolean
} = useMfa();useExternalWallets()
const {
connectedWallet, // ConnectedExternalWallet | null
connect, // (adapterName: string) => Promise<void>
disconnect, // () => Promise<void>
isConnecting, // boolean
} = useExternalWallets();usePartyLayer()
Access the underlying PartyLayerEnterprise instance directly.
const pl = usePartyLayer();
pl.on('tx:confirmed', handler);Components
LoginButton
Pre-built authentication button with multi-provider support.
import { LoginButton } from '@partylayer/enterprise-react';
<LoginButton
providers={['auth0', 'passkey', 'telegram']}
onSuccess={() => {}}
onError={(error) => {}}
className="my-button"
showGuestOption
onGuestStart={() => {}}
/>Shows provider selector dropdown when multiple providers are configured. Includes Telegram icon for Telegram provider and fingerprint icon for passkey.
WalletStatus
import { WalletStatus } from '@partylayer/enterprise-react';
<WalletStatus display="compact" /> // or "full"TransactionButton
import { TransactionButton } from '@partylayer/enterprise-react';
<TransactionButton
templateId={{ package_id: '...', module_name: '...', entity_name: '...' }}
choice="ClaimReward"
args={{ amount: '100.0' }}
contractId="00abcd..."
onSuccess={(result) => console.log(result)}
onError={(error) => console.error(error)}
>
Claim Reward
</TransactionButton>WalletSelector
import { WalletSelector } from '@partylayer/enterprise-react';
<WalletSelector adapters={['cantonParty', 'iframe']} />MfaSetupDialog / MfaChallengeDialog
import { MfaSetupDialog, MfaChallengeDialog } from '@partylayer/enterprise-react';
<MfaSetupDialog userId={user.userId} onComplete={() => {}} />
<MfaChallengeDialog onVerified={(token) => {}} />