# 4 SDKs for creating private apps with Aleo

By [Colliseum](https://paragraph.com/@colliseum) · 2025-07-25

---

Hi, I’m Heorhii. If you're building with Aleo, you’re probably aiming to create apps that protect user data while staying fully verifiable. That’s what makes Aleo different from most blockchain platforms. To build with Aleo effectively, you need the right SDK for the job.

In this guide, I’ll walk through the four main SDKs available for Aleo development. Each serves a different purpose, depending on your language, platform, and project type. I’ll also show how to use each one with real examples.

[https://developer.aleo.org/guides/introduction/getting\_started/](https://developer.aleo.org/guides/introduction/getting_started/)

**1) snarkVM – the Rust SDK for Aleo ZK apps.** snarkVM is the low-level zkVM powering Aleo’s private execution engine. If you’re working in Rust and need full control over proof generation or on-chain logic, this is the SDK to use.

**How to install snarkVM:**

First, install Rust:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

Then install snarkVM:

You can also build from source:

    git clone --branch mainnet --single-branch https://github.com/ProvableHQ/snarkVM.git
    cd snarkVM
    git checkout tags/testnet-beta
    cargo install --path .
    

To run it:

Use it for testing, proof generation, and local execution of Leo programs.

_More info you can find here:_

[https://github.com/ProvableHQ/snarkVM](https://github.com/ProvableHQ/snarkVM)

**2) Provable SDK for Node.js and full-stack apps.** The Provable SDK is a TypeScript SDK designed for building web and backend applications that use Aleo’s private functions, encrypted records, and credit system. You can run private transitions directly in JavaScript and interact with Aleo’s blockchain using this SDK.

**Install the SDK:**

    npm install @provablehq/sdk
    

To target mainnet explicitly:

    import { Account, ProgramManager, initThreadPool } from '@provablehq/sdk/mainnet.js';
    

**Initialize multi-threading:**

Call this once at startup:

    await initThreadPool();
    

**Create or import an account:**

    const account = new Account();
    console.log(account.address());
    
    const imported = new Account({ privateKey: 'your-private-key' });
    

**Run a public transition:**

    const manager = new ProgramManager(account);
    
    const result = await manager.execute(
      'credits.aleo',
      'transfer_public',
      ['aleo1recipient...', '1000000u64']
    );
    
    console.log('Transaction:', result);
    

You can also scan and spend records, manage encrypted state, and perform staking operations.

To scaffold a full app quickly, use:

    npx create-leo-app@latest
    

This command sets up a private dApp using the SDK and Leo.

_More info you can find here:_

[https://docs.explorer.provable.com/docs/sdk/92sd7hgph3ggt-overview](https://docs.explorer.provable.com/docs/sdk/92sd7hgph3ggt-overview)

**3) Puzzle SDK – for connecting to the Puzzle Wallet.** The Puzzle SDK offers React hooks and a JavaScript API to integrate your Aleo dApp with the Puzzle Wallet. It is focused on frontend development and works well with apps that rely on wallet-based authentication and record management.

**Install the SDK:**

For React:

    npm install @puzzlehq/sdk
    

For pure JavaScript:

    npm install @puzzlehq/sdk-core
    

**Run the starter app:**

Clone one of their demo projects:

    git clone https://github.com/puzzlehq/build-a-token.git
    cd build-a-token
    npm install
    npm run dev
    

This gives you a working token dApp with Aleo and Puzzle integration.

_More info you can find here:_

[https://docs.puzzle.online/](https://docs.puzzle.online/)

**4) Leo Wallet Adapter – for browser-based wallet integration.** This SDK provides modular wallet adapters for Aleo-compatible wallets. It works especially well in React apps and provides a modal UI, signing, decryption, and record management.

**Install required packages:**

    npm install --save \
      @demox-labs/aleo-wallet-adapter-base \
      @demox-labs/aleo-wallet-adapter-react \
      @demox-labs/aleo-wallet-adapter-reactui \
      @demox-labs/aleo-wallet-adapter-leo \
      react
    

**Set up the wallet provider:**

    import { WalletProvider } from '@demox-labs/aleo-wallet-adapter-react';
    import { WalletModalProvider } from '@demox-labs/aleo-wallet-adapter-reactui';
    import { LeoWalletAdapter } from '@demox-labs/aleo-wallet-adapter-leo';
    
    const Wallet = () => {
      const wallets = useMemo(() => [new LeoWalletAdapter({ appName: 'My App' })], []);
    
      return (
        <WalletProvider wallets={wallets} autoConnect>
          <WalletModalProvider>
            {/* your app UI */}
          </WalletModalProvider>
        </WalletProvider>
      );
    };
    

**Example: Sign a message:**

    const { wallet, publicKey } = useWallet();
    
    const onClick = async () => {
      if (!publicKey) throw new WalletNotConnectedError();
    
      const bytes = new TextEncoder().encode('message to sign');
      const signatureBytes = await (wallet?.adapter as LeoWalletAdapter).signMessage(bytes);
      const signature = new TextDecoder().decode(signatureBytes);
      alert('Signature: ' + signature);
    };
    

_More info you can find here:_

[https://docs.leo.app/aleo-wallet-adapter](https://docs.leo.app/aleo-wallet-adapter)

**Final words.** Each of these SDKs helps you unlock different parts of the Aleo development experience.

*   Use snarkVM if you want deep Rust control over zero-knowledge execution.
    
*   Use the Provable SDK when you’re building a backend or full-stack app with JavaScript.
    
*   Use the Puzzle SDK when connecting a browser dApp to the Puzzle Wallet.
    
*   Use the Leo Wallet Adapter if you need modular wallet support in a modern React app.
    

All four tools are actively maintained and open source. Together, they give you the flexibility to build private-by-default applications that scale.

[Subscribe](null)

_To know more about Aleo, join now!_

> *   _Aleo_ [_Twitter_](https://twitter.com/aleohq)
>     
> *   _Aleo_ [_Discord_](https://discord.gg/aleo)
>     
> *   _Aleo_ [_Website_](https://www.aleo.org/)
>     
> *   _List of_ [_Aleo and Leo code and resourses_](https://github.com/howardwu/awesome-aleo#%EF%B8%8F-a-curated-list-of-aleo--leo-code-and-resources-%EF%B8%8F)
>     

Prepared by Colliseum

---

*Originally published on [Colliseum](https://paragraph.com/@colliseum/4-sdks-for-creating-private-apps-with-aleo)*
