Skip to content

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.

  1. 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.

  2. Add the origin where your app will run

    Settings → Allowed origins → add (for example) http://localhost:5173. The iframe rejects postMessage from anything not on this list.

  3. Mint a publishable key

    API keys → New key → type publishable. Copy the key. It is safe to commit and ship in your bundle.

  4. Install the SDK

    Terminal window
    pnpm add @sigil/sdk
  5. 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 dashboard
    publishableKey: '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>
    </>
    );
    }
  6. 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.