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

# Introduction

> Build private applications on blockchains.

Unlink lets you add private blockchain accounts to your applications. You can now own, send, receive, and interact with smart contracts, all without exposing balances, tokens, amounts or transaction history.

## What you can build

* **Private payouts** - Pay teams, creators, and vendors without exposing history
* **Stablecoin apps** - Add private balances and transfers to user wallets
* **Treasury operations** - Move and rebalance funds without leaking strategy
* **Private DeFi** - Swap, lend, borrow, or allocate from private balances
* **AI agent wallets** - Give agents scoped funds without public strategy leaks
* **Trade settlement** - Settle OTC, RFQ, and market-maker flows privately
* **Grants and rewards** - Fund contributors without linking identity to payments

## How Unlink works

<div className="unlink-flow" aria-label="Unlink private account flow">
  <div className="unlink-flow__lane">
    <div className="unlink-flow__label">Public wallet</div>
    <div className="unlink-flow__node">0x user wallet</div>
  </div>

  <div className="unlink-flow__step">
    <span>Deposit</span>
  </div>

  <div className="unlink-flow__pool">
    <div className="unlink-flow__label">Unlink contract</div>

    <div className="unlink-flow__node unlink-flow__node--strong">
      unlink1 private account
    </div>

    <div className="unlink-flow__rail">
      <span>Private transfer</span>
    </div>

    <div className="unlink-flow__node unlink-flow__node--muted">
      unlink1 recipient
    </div>
  </div>

  <div className="unlink-flow__step">
    <span>Withdraw</span>
  </div>

  <div className="unlink-flow__lane">
    <div className="unlink-flow__label">Public recipient</div>
    <div className="unlink-flow__node">0x destination</div>
  </div>
</div>

Unlink is a smart contract deployed on the blockchain itself. No bridging, no
separate chain. The SDK signs each transaction locally with your spending key —
which never reaches the Unlink Engine — and the Engine generates the
zero-knowledge proofs from that signature. You call `depositWithApproval()`,
`transfer()`, `withdraw()`, and `execute()`. See
[How Unlink works](/how-unlink-works) for the privacy model and the
[trust model](/trust-model) for which secrets live where.

## Where Unlink runs

Unlink is multichain. SDK clients choose a hosted deployment with the
`environment` option. See [Supported chains](/supported-chains) for the current
production environments.

## How to integrate

Choose where user keys live first. Browser apps import from `/browser`.
Custodial server apps import from `/client`. Your backend imports from `/admin`
for registration, auth tokens, and backend reads.

```ts theme={null}
// Browser client.
import { account, createUnlinkClient } from "@unlink-xyz/sdk/browser";

const { account: unlinkAccount } = await account.fromWallet({
  provider,
  appId,
  chainId: 84532,
});

const client = createUnlinkClient({
  environment: "base-sepolia",
  account: unlinkAccount,
});
const tx = await client.transfer({ recipientAddress, token, amount });
await tx.wait();
```

```ts theme={null}
// Backend.
import { createUnlinkAdmin } from "@unlink-xyz/sdk/admin";

const admin = createUnlinkAdmin({
  environment: "base-sepolia",
  apiKey,
});
await admin.users.register(payload);
await admin.authorizationTokens.issue({ unlinkAddress });
```

**Browser app:** your backend hosts two routes for registration and auth tokens.
The user's spending key stays in the browser.

**Custodial server app:** your server creates one user client per account it is
allowed to hold.

<Tip>
  Use `@unlink-xyz/sdk/browser` in browser bundles. Keep `@unlink-xyz/sdk/admin`
  on your backend.
</Tip>

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Install the SDK and make your first deposit, transfer, and withdrawal.
  </Card>

  <Card title="How Unlink works" icon="eye-slash" href="/how-unlink-works">
    The privacy model and what stays public or private at each step.
  </Card>

  <Card title="Custody models" icon="route" href="/custody-models">
    Choose between non-custodial browser and custodial server integration.
  </Card>

  <Card title="Supported chains" icon="globe" href="/supported-chains">
    Hosted environments and the environment name to pass to the SDK.
  </Card>

  <Card title="Deposit" icon="arrow-down-to-bracket" href="/deposit">
    Move ERC-20 tokens from an EVM wallet into the unlink contract.
  </Card>

  <Card title="Transfer" icon="paper-plane" href="/transfer">
    Send tokens privately between Unlink addresses.
  </Card>
</CardGroup>
