Build financial products for businesses
Give every business customer a white-label digital asset account it controls. Each business manages its own funds, team, and approval workflows, while your platform defines how money can move.
Platform view· the other side
Each business here gets its own account. See how the payment service provider (PSP) behind them runs accounts for many businesses, with platform guardrails it sets for all of them. Open the platform view
Create the platform client
DocsCreate one Dynamic client for your application, then add the blockchain networks your platform supports.
lib/dynamic/client.tsimport { createDynamicClient } from "@dynamic-labs-sdk/client"; import { addEvmExtension } from "@dynamic-labs-sdk/evm"; import { addSolanaExtension } from "@dynamic-labs-sdk/solana"; export const client = createDynamicClient({ environmentId: process.env.NEXT_PUBLIC_DYNAMIC_ENVIRONMENT_ID!, }); addEvmExtension(client); addSolanaExtension(client);Connect Dynamic to your platform
DocsWrap your application with
QueryClientProviderandDynamicProviderso Dynamic hooks are available across your platform.app/providers.tsximport { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { DynamicProvider } from "@dynamic-labs-sdk/react-hooks"; import { client } from "@/lib/dynamic/client"; const queryClient = new QueryClient(); export function Providers({ children }: { children: React.ReactNode }) { return ( <QueryClientProvider client={queryClient}> <DynamicProvider client={client}>{children}</DynamicProvider> </QueryClientProvider> ); }Give each team member their own login
DocsSend a one-time code to their email, then verify it to sign them in.
components/screens/auth-screen.tsximport { useSendEmailOTP, useVerifyOTP } from "@dynamic-labs-sdk/react-hooks"; const { mutate: sendOtp, data: otpVerification } = useSendEmailOTP(); const { mutate: verifyOtp } = useVerifyOTP(); sendOtp({ email }); // User types the 6-digit code from their inbox: verifyOtp({ otp: code, otpVerification });Show the organizations they can access
List the organizations available to the signed-in user. Each organization represents a business they belong to.
hooks/use-business-accounts.tsimport { listBusinessAccounts } from "@dynamic-labs-sdk/client/waas"; const { items = [], nextCursor } = await listBusinessAccounts(); for (const account of items) { console.log(account.id, account.name, account.externalRef); }