# Lelantos SDK > Client SDK for the Lelantos Multi-Asset Shielded Pool — shielded transfers, swaps, and client-side proving on EVM. TypeScript, published as `@lelantos-org/sdk` (this documentation describes v0.47.0). Every page below is plain markdown. Start with Concepts and Quickstart; the whole guide is also available as a single file at https://docs.lelantos.xyz/llms-full.txt. Every TypeScript example is typechecked against this SDK version at build time; lines under `// setup` are scaffolding (`declare`d inputs standing in for your own values), the rest is the usage being shown. Import from the subpath an example uses — subpaths are part of the API. ## Getting started - [Installation](https://docs.lelantos.xyz/guide/installation.md): `@lelantos-org/sdk` is published to **GitHub Packages**, not the public npm registry. - [Quickstart](https://docs.lelantos.xyz/guide/quickstart.md): This page runs a complete round trip in one script: shield, transfer, and unshield. ## Concepts - [Concepts](https://docs.lelantos.xyz/guide/concepts.md): The SDK hides the cryptography, but four concepts determine how its API behaves. - [How it fits together](https://docs.lelantos.xyz/guide/system.md): The SDK communicates with **contracts** on an EVM chain and three **backend services** that index and relay transactions. - [Glossary](https://docs.lelantos.xyz/guide/glossary.md): Terms used throughout this guide and the API reference. ## Wallet - [Connecting a wallet](https://docs.lelantos.xyz/guide/wallet.md): `connect(options)` returns a `WalletApi`: a frozen object of bound methods (`deposit`, `transfer`, `withdraw`, `quoteSwap`, `sync`, `balance`, `state`, …). - [Networks](https://docs.lelantos.xyz/guide/networks.md): A network preset contains the deployment details `connect()` needs: chain id, pool and relayer addresses, service URLs, and the circuit's tree depth. - [Addresses](https://docs.lelantos.xyz/guide/addresses.md): A shielded address is a **bech32m** string with the human-readable prefix `lelantos` and a 112-byte payload, `d || pk_d || pk || ck_d`. - [Amounts and assets](https://docs.lelantos.xyz/guide/amounts.md): A value can be held in three unit spaces. ## Transactions - [Deposit](https://docs.lelantos.xyz/guide/deposit.md): A deposit moves tokens from a public ERC-20 balance into the shielded pool. - [Transfer](https://docs.lelantos.xyz/guide/transfer.md): A transfer moves value between shielded addresses. - [Withdraw](https://docs.lelantos.xyz/guide/withdraw.md): A withdrawal spends shielded notes and pays a public EVM address. - [Swap](https://docs.lelantos.xyz/guide/swap.md): A swap exchanges one shielded asset for another in a single atomic operation: - [Names](https://docs.lelantos.xyz/guide/names.md): A handle is a short name, such as `alice`, that publishes one of an account's shielded addresses. - [Fees](https://docs.lelantos.xyz/guide/fees.md): An operation can incur three separate costs, each charged by a different party. ## Notes & sync - [Syncing](https://docs.lelantos.xyz/guide/sync.md): A note is spendable only when the wallet has three things locally: the note, the Merkle tree containing it, and the nullifier set showing whether it is spent. - [Balances and state](https://docs.lelantos.xyz/guide/state.md): A wallet exposes what it knows two ways: `balance(asset)`, an async read that splits one asset's value by what a spend can reach, and `state()`, a synchronous immutable snapshot for rendering without polling. - [Note management](https://docs.lelantos.xyz/guide/notes.md): The pool stores notes, not balances. - [Watch-only wallets](https://docs.lelantos.xyz/guide/watch-only.md): A viewing key gives read access to a shielded account without the ability to spend. ## Privacy - [Denominations](https://docs.lelantos.xyz/guide/denominations.md): A withdrawal publishes its gross amount, `publicOut`. - [Privacy checklist](https://docs.lelantos.xyz/guide/privacy.md): The pool hides which notes a transaction spends, who receives a transfer, and transfer amounts. ## Integration - [Package subpaths](https://docs.lelantos.xyz/guide/subpaths.md): `@lelantos-org/sdk` publishes eleven typed entry points. - [x402 payments](https://docs.lelantos.xyz/guide/x402.md): x402 uses HTTP `402 Payment Required` as a protocol: the server answers an unpaid request with the terms it accepts, the client pays, and the request is repeated with a receipt attached. - [Browser usage](https://docs.lelantos.xyz/guide/browser.md): The SDK runs in browsers with the same API as on Node. - [Node usage](https://docs.lelantos.xyz/guide/node.md): `connect()` detects Node and configures the prover, scanner, and HTTP clients for it. - [Custom storage](https://docs.lelantos.xyz/guide/storage.md): The wallet persists three kinds of state, each through its own interface: - [Pluggable interfaces](https://docs.lelantos.xyz/guide/interfaces.md): Every external dependency of a wallet is an interface with a working default. - [Chain adapters](https://docs.lelantos.xyz/guide/chain-adapter.md): The chain port is the SDK's only interface to the chain. ## Operations - [Errors](https://docs.lelantos.xyz/guide/errors.md): Every wallet method rejects with a `WalletError`, or with the `reason` of an `AbortSignal` you passed. - [Logging](https://docs.lelantos.xyz/guide/logging.md): The SDK emits no log output by default. - [Troubleshooting](https://docs.lelantos.xyz/guide/troubleshooting.md): Common symptoms, their causes, and fixes. - [Benchmarks](https://docs.lelantos.xyz/guide/benchmarks.md): Proof generation is the most expensive client-side operation. ## Internals - [Architecture](https://docs.lelantos.xyz/guide/architecture.md): The SDK is organized in tiers. - [Building transactions manually](https://docs.lelantos.xyz/guide/primitives.md): The wallet API covers every operation on this page. ## API reference Generated from the package's type declarations, one page per export. - [@lelantos-org/sdk/advanced](https://docs.lelantos.xyz/reference/advanced/index.md) - [@lelantos-org/sdk](https://docs.lelantos.xyz/reference/index/index.md) - [@lelantos-org/sdk/internal](https://docs.lelantos.xyz/reference/internal/index.md) - [@lelantos-org/sdk/primitives](https://docs.lelantos.xyz/reference/primitives/index.md) - [@lelantos-org/sdk/protocol](https://docs.lelantos.xyz/reference/protocol/index.md) - [@lelantos-org/sdk/prover](https://docs.lelantos.xyz/reference/prover/index.md) - [@lelantos-org/sdk/services](https://docs.lelantos.xyz/reference/services/index.md) - [@lelantos-org/sdk/watch](https://docs.lelantos.xyz/reference/watch/index.md) - [@lelantos-org/sdk/workers/prover](https://docs.lelantos.xyz/reference/workers/prover/index.md) - [@lelantos-org/sdk/workers/scanner](https://docs.lelantos.xyz/reference/workers/scanner/index.md) - [@lelantos-org/sdk/x402](https://docs.lelantos.xyz/reference/x402/index.md) ## Optional - [Full guide](https://docs.lelantos.xyz/llms-full.txt): every guide page above, concatenated - [Reference index](https://docs.lelantos.xyz/reference/index.md)