Unlink lets you add private blockchain wallets to your app. Your users can own accounts, send and receive tokens privately, and interact with smart contracts, all without exposing balances or transaction history.Documentation Index
Fetch the complete documentation index at: https://docs.unlink.xyz/llms.txt
Use this file to discover all available pages before exploring further.
What you can build
- Neobank - On-chain banking where users’ financial activity stays private
- Payroll - Salaries and contractor payments that stay confidential
- Treasury - Organizational fund management without revealing strategic decisions
- Stablecoin payments - Move dollars on-chain while keeping balances private
- OTC trading - Settle peer-to-peer trades privately
- Donations & grants - Let users support causes without linking their identity
- AI agents - Autonomous agents that send confidential transactions
How Unlink works
Unlink is a smart contract deployed on the blockchain itself. No bridging, no separate chain. The SDK handles all proof generation and signing. From a builder’s perspective you calldeposit(), transfer(), and withdraw().
How to integrate
The SDK splits work between a process-wide Tenant (holds engine URL and API key) and a per-user Session (holds the user’s account identity). You construct one Tenant at app startup and calltenant.forUser({ account }) once per user.
account.fromPublicIdentity({ address }) with a signSigningRequest callback that round-trips signing to the user’s browser.
Browser dApp (the canonical non-custodial flow): the integrator backend hosts two thin routes (/api/unlink/register, /api/unlink/token) that the browser calls via the SDK’s createUnlinkSigner — your tenant API key never leaves the server, the user’s spending key never leaves the browser. See the SDK README’s Browser auth section for the full setup (route handlers, token rotation, CSRF callout).
Frontend (single-process, trusted) (CLIs, hackathon demos, trusted single-user tooling): one Tenant + one Session in the browser, holding both the tenant API key and the user’s keys. This bypasses the SDK’s createTenant browser guard via dangerouslyAllowBrowser: true — use only when each user runs the app themselves and the API key sharing is intentional.
What’s private, what’s public
| Deposit | Transfer | Withdraw | |
|---|---|---|---|
| Amount | Public | Private | Public |
| Sender | Public | Private | Private |
| Recipient | Private | Private | Public |
| Token type | Public | Private | Public |
Quickstart
Install the SDK and make your first deposit, transfer, and withdrawal.
Faucet
Mint test tokens publicly or fund Unlink accounts privately for onboarding
and QA.
Deposit
Move ERC-20 tokens from an EVM wallet into the unlink contract.
Transfer
Send tokens privately between Unlink addresses.
Withdraw
Move tokens from the unlink contract to any EVM address.