Skip to content
Web3 native

Wallet linking.
One profile, every wallet.

Most apps make users pick one wallet — and treat that single address as their whole identity. Synq does the opposite. After sign-in, a user can link as many wallets as they want by signing a message with each one. Your app sees the full footprint, and the user only has to manage one account.

Why it matters

Treat the user as one person, not one address

Crypto users keep a hot wallet for daily activity and a cold wallet for the assets they actually own. Some keep one per project, one per identity, one for testing. Asking them to pick "their" wallet forces them to fragment — and forces your app to undercount. Synq treats wallets as connections on a single user, and your app gets the union of all of them on every sign in.

Per-user limit
No cap
Link as many as the user owns
Verification
Signed message
Never a transaction
Primary wallet
User chooses
One flagged as default

Trigger a link, read the list

Linking another wallet is one SDK call. The full list of linked wallets comes back on every server-side userinfo call.

import { useSynq } from '@synqid/react'

function WalletsPanel() {
  const { requestConnect } = useSynq()

  const linkAnother = async () => {
    const address = await requestConnect({
      title: 'Link another wallet',
    })
    if (address) {
      // Wallet was added to the user's profile.
      // Refetch their linked-wallets list and re-render.
    }
  }

  return <button onClick={linkAnother}>Link another wallet</button>
}

How wallet linking works

No setup required for wallet linking itself — it's automatic when SIWS is enabled. The flow below is what your user sees.

  1. User signs in (any method)

    They can sign up with Google, a Telegram account, or a wallet — any first-touch method. Synq creates the user record and issues a session.
  2. User opens "Link wallet" in your app

    You call `requestConnect()` from the SDK. Synq opens the wallet picker — Phantom, Solflare, Backpack, MWA on Android, or any wallet-adapter the user has installed.
  3. Wallet signs a Synq-issued nonce

    The wallet signs an ephemeral message with a fresh server-issued nonce. No transaction. No gas. Just proof of control.
  4. Synq verifies and links

    The signature is verified against the public key on the Synq API. The wallet is added to the user’s profile and a `wallet.linked` event is fired to your webhook subscribers.
  5. Your app sees the new wallet immediately

    On the next userinfo call (or via the wallet.linked webhook), the new wallet appears in the linked_wallets array with its address, chain, and primary-flag.

How multi-wallet linking compares

Most identity platforms treat the wallet as the user. Synq treats wallets as connections on a profile that can have many.

FeatureClerkWorkOSAuth0PrivyDynamicSynq
Multi-wallet linking shipped
Wallets linked via signed message (no tx)
Primary wallet selection per user
Wallets surfaced via standard OIDC userinfo
Per-wallet labels (set by user or app)LimitedLimited
Pairs with non-wallet auth (Google, Telegram, etc.)

Pair it with

Common questions

See the user's whole on-chain footprint.

Multi-wallet is the default in Synq. Drop the SDK in, call requestConnect, and your users link as many wallets as they need.