# Veil > Veil is a TypeScript SDK for Aleo with viem-style clients, wallet adapters, local signing and proving, React hooks, agent tools, private trading, and cross-chain bridges. Start with the package guide and the README for the relevant package. All links below point to Markdown sources. Packages compose around `@provablehq/veil-core`; choose a signing adapter based on where the keys live. Read-only chain queries need no signing key. Programs use names such as `credits.aleo`, and transition inputs use Aleo-encoded values such as `100u64`. Core and Shield Swap expose `/agent` tool schemas and `/mcp` tools. Before operating Shield Swap, read its trading runbooks. The bridge SDK is a preview; consult its package README for supported routes and execution capabilities. ## Start here - [Repository README](https://raw.githubusercontent.com/ProvableHQ/veil/main/README.md): Use cases, quick starts, packages, and agent integrations. - [Getting started](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/getting-started.md): Installation and first client. - [Package guide](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/packages/overview.md): Choose packages for a dApp, service, agent, or local testing. ## Packages - [@provablehq/veil-core](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/core/README.md): Viem-style TypeScript SDK for Aleo clients, contract calls, transports, and MCP agent tools. - [@provablehq/veil-aleo-sdk](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/provable-sdk/README.md): Local accounts, signing, and delegated or local proving for the Veil Aleo TypeScript SDK. - [@provablehq/veil-aleo-wallet-adapter](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/wallet-adapter/README.md): Aleo wallet adapter bindings for Veil clients with Shield, Leo, Puzzle, and Fox wallets. - [@provablehq/veil-aleo-react-hooks](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/react/README.md): React hooks and providers for Aleo wallet connections and Veil public and wallet clients. - [@provablehq/shield-swap-sdk](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/shield-swap/README.md): TypeScript SDK for Shield Swap private token swaps, concentrated liquidity, and pool data on Aleo. - [@provablehq/shield-swap-cli](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/shield-swap-cli/README.md): Command line interface for Shield Swap account setup, token swaps, balances, and liquidity on Aleo. - [@provablehq/veil-codegen](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/codegen/README.md): Generate typed TypeScript contract bindings from Aleo program ABIs with the veil-codegen CLI. - [@provablehq/veil-aleo-devnode](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/devnode/README.md): Start and control local Aleo devnodes from TypeScript for development and integration testing. - [@provablehq/veil-leo](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/leo/README.md): TypeScript wrapper for the Leo CLI to build, deploy, run, and test Aleo programs. - [@provablehq/aleo-bridge-sdk](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/bridge/README.md): Cross-chain bridge SDK for Aleo, EVM, and Solana using Circle xReserve, Circle CCTP, and Hyperlane. ## Guides and agents - [Agent integrations](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/agents.md): MCP and framework-independent tool calling. - [Reading chain state](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/reading-chain-state.md): Public clients and mapping reads. - [Executing transactions](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/executing-transactions.md): Wallet clients and program transitions. - [Working with records](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/working-with-records.md): Private state, scanning, and decryption. - [Record management](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/record-inventory.md): Shared record reservations, joins/splits, configuration, fees, and recovery. - [Concurrent swaps](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/shield-swap.md#concurrent-swaps): Client setup, inventory preparation, simultaneous trades, and claims after partial failures. - [Transaction lifecycle](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/transaction-lifecycle.md): Submission, status, and settlement. - [Shield Swap trading runbooks](https://raw.githubusercontent.com/ProvableHQ/veil/main/packages/shield-swap/skills/SKILL.md): Required starting point for account setup, swaps, and liquidity. ## Concurrent swaps and high-frequency trading For a trading loop that submits swaps concurrently, start with the [concurrent swaps walkthrough](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/shield-swap.md#concurrent-swaps) and the [example commands](https://raw.githubusercontent.com/ProvableHQ/veil/main/examples/shield-swap/README.md). The examples use client-attached actions and a local signer. 1. Enable `recordManagement` explicitly. Share the record store, `chainId`, and one blinded identity store instance across clients trading for the same account. Use persistent stores for recovery. Run one process per account with the bundled identity store; SQLite alone does not coordinate blinded identity counters across processes. 2. Prepare one sufficient input record per simultaneous trade. Use `client.planInventory()` to review joins and splits, then `client.rebalanceRecordInventory({ plan })` to execute that plan. For example, six simultaneous sales of 0.1 USDCx need six available records holding at least 0.1 USDCx each. 3. Fetch fresh quotes after inventory preparation. Quotes expire after 60 seconds. Submit the batch with `Promise.allSettled` and `client.swap({ quote })`. Omit `tokenRecord` for automatic local selection: a reservation conflict tries another available record before proving; it does not join records or retry a submitted swap. 4. Keep every successful handle. Call `client.waitForSwapOutput({ handle })`, then `client.claimSwapOutput({ handle })` for each trade. Inspect every swap and claim result; a batch can partially succeed, and claims can return both output tokens and unspent input. 5. Before the next batch, account for confirmed claims, refresh the inventory, and prepare replacement input records as needed. Bound concurrent work by available records and proving capacity. Reconcile uncertain transactions before submitting replacement trades. For high-frequency trading, concurrency lets independent trades progress while others await proofs or confirmation. The SDK does not guarantee a trading rate: proving, chain confirmation, scanner visibility, and API limits constrain throughput. A quote does not reserve liquidity, and trades in the same batch can affect one another's execution price. Stop submitting new work when inventory, claims, or transaction outcomes cannot be reconciled. - [Record management](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/record-inventory.md): Store configuration, maintenance plans, private fee records, and restart recovery. - [Selection and recovery](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/shield-swap.md#selection-failures-and-recovery): Reservation diagram, partial batch results, and code to recover existing claims. - [Shield Swap API](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/shield-swap.md#the-shield-swap-api): API access, quoting, and the role of on-chain reads and transactions. ## Optional - [Contributor instructions](https://raw.githubusercontent.com/ProvableHQ/veil/main/AGENTS.md): Repository navigation and contributor constraints. - [Contributor constraints](https://raw.githubusercontent.com/ProvableHQ/veil/main/.agents/contributors.md): Required rules for repository changes. - [Local testing](https://raw.githubusercontent.com/ProvableHQ/veil/main/site/docs/guides/devnode.md): Compile, deploy, and test against a local Aleo node.