Quickstart
The fastest path. We’ll create a company in the portal, mint a publishable key, and embed the wallet in a fresh React app.
-
Sign up at the portal
Go to platform.sigilkeys.com/register. You’ll get an email with a one-time code. Enter the code, set up a company, pick a slug.
-
Add the origin where your app will run
Settings → Allowed origins → add (for example)
http://localhost:5173. The iframe rejectspostMessagefrom anything not on this list. -
Mint a publishable key
API keys → New key → type publishable. Copy the key. It is safe to commit and ship in your bundle.
-
Install the SDK
Terminal window pnpm add @sigil/sdk -
Drop the provider into your app
app.tsx import { SigilProvider, useWallet, useSignMessage } from '@sigil/sdk/react';const config = {organizationId: 'org_xxx', // shown in the portal dashboardpublishableKey: 'pk_live_xxx',iframeUrl: 'https://wallet.sigilkeys.com',authMode: 'sigil' as const,};export default function App() {return (<SigilProvider config={config}><Wallet /></SigilProvider>);}function Wallet() {const { address, ready, error } = useWallet();const { signMessage, isLoading } = useSignMessage();if (error) return <p>{error.message}</p>;if (!ready) return <p>loading…</p>;return (<><p>{address}</p><button disabled={isLoading} onClick={() => signMessage('hi')}>Sign</button></>);} -
Run it
The first time the iframe loads it will ask the user for an email and send a 6-digit code. Verify the code, the wallet is created, and you get an address back.
That’s it. The private key was generated, split, and reconstructed entirely inside the iframe — your bundle never touched it.
Next: How Sigil works for the architecture, or the SDK reference for every option.