# Sui TypeScript SDK Documentation > Reference documentation for the @mysten/* TypeScript SDK packages for the Sui blockchain. ## BCS > Encoding and decoding Sui objects - [BCS - Binary Canonical Serialization](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/bcs): Encode and decode Sui Move types with Binary Canonical Serialization. ## TypeScript Codegen > Generate type-safe TypeScript code from Sui Move packages - [Sui TypeScript Codegen](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/codegen): Generate type-safe TypeScript bindings from onchain Sui Move packages. ## dApp Kit > Build Sui dApps with @mysten/dapp-kit-core and @mysten/dapp-kit-react - [Sui dApp Kit](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit): Build Sui apps with framework-agnostic core and React bindings. - [@mysten/create-dapp](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/getting-started/create-dapp): Create a Sui app with one command using the create-dapp CLI scaffolding tool. - [React](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/getting-started/react): Set up dApp Kit in a React application. - [Next.js](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/getting-started/next-js): Set up dApp Kit in a Next.js application. - [Vue](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/getting-started/vue): Set up dApp Kit in a Vue application. - [DApp Kit Instance](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/dapp-kit-instance): Create and configure a DAppKit instance for wallet and client management - [State](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/state): Access and subscribe to wallet connection state in dApp Kit. - [Connect Wallet](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/connect-wallet): Programmatically connect to a Sui wallet using the dApp Kit connectWallet action. - [Disconnect Wallet](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/disconnect-wallet): Programmatically disconnect from a Sui wallet using the dApp Kit disconnectWallet action. - [Sign and Execute Transaction](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/sign-and-execute-transaction): Sign and execute a transaction on the Sui network using the connected wallet. - [Sign Personal Message](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/sign-personal-message): Sign an arbitrary message with the connected wallet for authentication or proof of ownership. - [Sign Transaction](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/sign-transaction): Sign a Sui transaction without executing it for deferred or multi-signature scenarios. - [Switch Account](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/switch-account): Switch the active account in the connected wallet using the dApp Kit switchAccount action. - [Switch Network](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/actions/switch-network): Switch the active network for the dApp Kit instance between mainnet, testnet, and other networks. - [DAppKitProvider](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/dapp-kit-provider): React context provider that makes dApp Kit available throughout your application. - [React Hooks](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks): React hooks for accessing dApp Kit state and actions in Sui applications. - [useDAppKit](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-dapp-kit): React hook to access the full dApp Kit instance for calling actions directly. - [useCurrentAccount](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-current-account): React hook to get the currently selected wallet account in a Sui dApp. - [useCurrentClient](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-current-client): React hook to get the current Sui client instance for the active network. - [useCurrentNetwork](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-current-network): React hook to get the currently selected Sui network in dApp Kit. - [useCurrentWallet](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-current-wallet): React hook to get the currently connected wallet in a Sui dApp. - [useWalletConnection](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-wallet-connection): React hook to manage wallet connection status and information in a Sui dApp. - [useWallets](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/hooks/use-wallets): React hook to list all available Sui wallets detected by dApp Kit. - [React Components](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/components): Pre-built React UI components for wallet interaction in Sui dApps. - [Connect Button](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/components/connect-button): React button component for connecting and disconnecting Sui wallets. - [Connect Modal](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/react/components/connect-modal): React modal component for selecting and connecting to a Sui wallet. - [Connect Button](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/web-components/connect-button): Framework-agnostic web component providing a complete wallet connection UI for Sui dApps. - [Connect Modal](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/web-components/connect-modal): Framework-agnostic web component for wallet selection and connection in Sui dApps. - [Theming](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/theming): Customize the appearance of dApp Kit UI components. - [Sui dApp Kit (Legacy)](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/dapp-kit/legacy): Legacy dApp Kit API reference for the deprecated @mysten/dapp-kit package using JSON RPC. ## Kiosk > Interact with on-chain commerce applications - [Kiosk SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk): TypeScript SDK for interacting with Sui Kiosk onchain commerce. - [Kiosk Client](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/introduction): Introduction to the KioskClient extension for querying and managing kiosks on Sui. - [Querying](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/querying): Query kiosk contents, owned kiosks, items, and transfer policies using the Kiosk SDK. - [KioskTransaction](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/kiosk-transaction/kiosk-transaction): Build kiosk transactions for listing, purchasing, and managing items on Sui. - [Managing Owned Kiosk](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/kiosk-transaction/managing): Manage kiosk items by placing, listing, delisting, and withdrawing using the Kiosk SDK. - [Purchasing from a kiosk](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/kiosk-transaction/purchasing): Purchase items from kiosks with automatic transfer policy rule resolution. - [Examples](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/kiosk-transaction/examples): Practical code examples for kiosk transactions including minting, listing, and purchasing. - [TransferPolicyTransaction](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/transfer-policy-transaction/introduction): Create and manage transfer policies for kiosk items using the Kiosk SDK. - [Using the manager](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/kiosk-client/transfer-policy-transaction/using-the-manager): Use the TransferPolicyTransaction manager to add rules and withdraw profits. - [Advanced Examples](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/advanced-examples): Advanced Kiosk SDK usage patterns and code examples for complex scenarios. - [Migrating from Kiosk SDK V1](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/kiosk/from-v1): Migrate from Kiosk SDK v1 to the current version with the builder-pattern API. ## Payment Kit > Accept payments in any coin type on Sui - [Payment Kit](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/payment-kit): Accept payments in any coin type on the Sui blockchain with built-in duplicate prevention. - [Getting Started](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/payment-kit/getting-started): Install and set up Payment Kit for your Sui application. - [Payment Kit SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/payment-kit/payment-kit-sdk): Payment Kit SDK API reference and configuration for the PaymentKitClient. - [Payment Processing](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/payment-kit/payment-processing): Process registry-based and ephemeral payments and handle transaction results on Sui. - [Registry Management](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/payment-kit/registry-management): Create, configure, and manage payment registries and accepted coin types on Sui. ## Seal > Use Seal, a decentralized secrets management service that secures your data using threshold encryption and on-chain access control. - [Seal SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/seal): Decentralized secrets management with threshold encryption on Sui. ## Slush Wallet > Slush Wallet Integration - [Slush Wallet Integration](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/slush-wallet): Integrate Slush Wallet into your Sui application for mobile and web wallet support. - [App Integration](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/slush-wallet/dapp): Connect your app to Slush Wallet using the Slush Wallet SDK and wallet standard. - [Deep Linking](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/slush-wallet/deep-linking): Configure deep links to open Slush Wallet directly to specific screens or actions. ## Sui SDK > TypeScript interfaces for Sui - [Sui TypeScript SDK Quick Start](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui): The Sui TypeScript SDK is a modular library of tools for interacting with the Sui blockchain. - [Install Sui TypeScript SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/install): Install the @mysten/sui package and configure your project. - [LLM Documentation](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/llm-docs): Give AI agents access to Sui SDK documentation in your project. - [Hello Sui](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/hello-sui): Build your first Sui application with the TypeScript SDK. - [Faucet](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/faucet): Request test SUI tokens from the faucet on Devnet, Testnet, or local networks. - [Sui Clients](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/clients): Choose and configure gRPC, GraphQL, or JSON-RPC clients for the Sui network. - [Core API](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/clients/core): Transport-agnostic Core API shared by all Sui clients. - [SuiGrpcClient](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/clients/grpc): Connect to Sui through gRPC with SuiGrpcClient. - [SuiGraphQLClient](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/clients/graphql): Connect to Sui through GraphQL with SuiGraphQLClient. - [SuiJsonRpcClient](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/clients/json-rpc): Connect to Sui through JSON-RPC with SuiJsonRpcClient. - [Sui Programmable Transaction Basics](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/transaction-building/basics): Construct programmable transaction blocks with the Transaction API. - [Paying for Sui Transactions with Gas Coins](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/transaction-building/gas): Configure gas budget, price, and coin selection for Sui transactions. - [Sponsored Transactions](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/transaction-building/sponsored-transactions): Pay gas fees on behalf of other users with sponsored transactions. - [Building Offline](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/transaction-building/offline): Build transactions without a network connection. - [Transaction Intents](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/transaction-building/intents): Use high-level intents to simplify transaction building. - [Key pairs](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/cryptography/keypairs): Create and manage Ed25519, Secp256k1, and Secp256r1 keypairs for Sui transaction signing. - [Multi-Signature Transactions](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/cryptography/multisig): Create multi-signature transactions with multiple signers on Sui. - [Passkey](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/cryptography/passkey): Use WebAuthn passkeys for Sui transaction signing. - [Web Crypto Signer](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/cryptography/webcrypto-signer): Sign transactions using the Web Crypto API for secure browser-based key management. - [The `@mysten/sui/utils` package](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/utils): Utility functions for addresses, coins, and common operations in the Sui TypeScript SDK. - [Derived Objects](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/utils/derived_objects): Compute derived object IDs from parent objects for deterministic offline derivation. - [BCS](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/bcs): Binary Canonical Serialization for encoding Sui Move types. - [ZkLogin](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/zklogin): Zero-knowledge authentication with OAuth providers on Sui. - [Transaction Executors](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/executors): Manage transaction execution with queuing and parallel strategies. - [Transaction Plugins](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/plugins): Extend transaction building with reusable plugins. - [Building SDKs](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/sdk-building): Build custom SDKs on top of the Sui TypeScript SDK. - [Migrate to 2.0](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0): Migration guide for Sui TypeScript SDK 2.0 covering all @mysten packages. - [Agent Migration Prompt](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/agent-prompt): AI agent prompt for automated SDK 2.0 migration of your codebase. - [@mysten/sui](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/sui): Migrate @mysten/sui from 1.x to 2.0 with new client APIs and BCS changes. - [Migrating from JSON-RPC](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/json-rpc-migration): Migrate from JSON-RPC to the new Core API using SuiGrpcClient or SuiGraphQLClient. - [@mysten/dapp-kit](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/dapp-kit): Migrate @mysten/dapp-kit to the new dapp-kit-react package in 2.0. - [@mysten/kiosk](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/kiosk): Migrate @mysten/kiosk to 2.0 with client extension pattern and KioskTransaction. - [@mysten/zksend](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/zksend): Migrate @mysten/zksend to 2.0 with client extension pattern and simplified API. - [@mysten/suins](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/suins): Migrate @mysten/suins to 2.0 with client extension pattern. - [@mysten/deepbook-v3](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/deepbook-v3): Migrate @mysten/deepbook-v3 to 2.0 with client extension pattern. - [@mysten/walrus](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/walrus): Migrate @mysten/walrus to 2.0 with required client parameter and updated API. - [@mysten/seal](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/seal): Migrate @mysten/seal to 2.0 with the new registration function pattern. - [Wallet Builders](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/wallet-builders): Migration guide for wallet extension developers upgrading to 2.0. - [SDK Maintainers](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-2.0/sdk-maintainers): Migration guide for SDK maintainers and library authors upgrading to 2.0. - [Migrate to 1.0](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/sui-1.0): Migrate to Sui TypeScript SDK 1.0 with new features and API changes. - [Migrate to 0.38.0](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/sui/migrations/0.38): Migrate from SDK version 0.37 to 0.38 with updated module structure and API changes. ## Walrus > Publish and Read blobs directly from walrus storage nodes - [Walrus SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/walrus): Store and retrieve blobs on Walrus decentralized storage using the TypeScript SDK. ## ZkSend > Send Sui with a link - [zkSend SDK](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/zksend): Send Sui assets through shareable claim links using the zkSend SDK. - [Creating zkSend Links](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/zksend/link-builder): Create and customize zkSend claim links for sending Sui assets. - [Composable Claims](https://sui-typescript-docs-jcxd25n45-mysten-labs.vercel.app/zksend/composable-claim): Claim a zkSend link and use the assets in the same transaction