Appearance
Getting Started
Getting Started is wallet-focused first. The shortest path is to create an embedded wallet, sign a user-approved intent, then add recovery, delegation, or rotation as the product matures.
The same infrastructure can later support access passes, delegated credentials, shipping agents, embedded devices, and other policy-bound applications.
Wallet Path
text
create wallet -> approve intent -> sign with policy -> audit- Create A Wallet: register a wallet key and bind it to the user's auth method.
- Sign With Policy: request a wallet signature through a typed intent, Wallet Session quota, capability claim, and Router A/B.
- Delegate Or Rotate: add linked devices, issue delegated-agent lanes, refresh shares, export, or rekey under policy.
Basic Setup
Wrap the app once with SeamsWebProvider.
tsx
import { SeamsWebProvider, type SeamsConfigsInput } from '@seams/sdk/react';
const seamsConfig = {
iframeWallet: {
walletOrigin: import.meta.env.VITE_WALLET_ORIGIN,
walletServicePath: '/wallet-service',
sdkBasePath: '/sdk',
},
relayerAccount: 'w3a-relayer.testnet',
relayer: {
url: import.meta.env.VITE_RELAYER_URL,
},
registration: {
mode: 'managed',
projectEnvironmentId: import.meta.env.VITE_SEAMS_PROJECT_ENVIRONMENT_ID,
publishableKey: import.meta.env.VITE_SEAMS_PUBLISHABLE_KEY,
},
chains: [
{
network: 'near-testnet',
rpcUrl: 'https://rpc.testnet.near.org',
explorerUrl: 'https://testnet.nearblocks.io',
},
],
} satisfies SeamsConfigsInput;
export function App() {
return (
<SeamsWebProvider config={seamsConfig}>
<WalletApp />
</SeamsWebProvider>
);
}Other Applications
After the wallet path is clear, the same primitives can express other authority models: