sh -c "$(curl -sSfL https://release.anza.xyz/v3.0.0/install)"
2
Then run the command below to create a keypair at .config/solana/id.json
Copy
Ask AI
solana-keygen new
3
Fund wallet with devnet SOL
Copy
Ask AI
# Check current balancesolana balance --url devnet# Airdrop 1 SOL to your default walletsolana airdrop 1 --url devnet# or use https://faucet.solana.com/
Run quickstart.ts with the following code:
quickstart.ts
Copy
Ask AI
// ZK Compression Quickstart - DevNet// 1. Load wallet and connect to DevNet via Helius RPC// 2. Create SPL mint with token pool for compression via createMint()// 3. Mint compressed tokens to recipient account via mintTo()// 4. Verify compressed token balance via getCompressedTokenAccountsByOwnerimport { createRpc } from "@lightprotocol/stateless.js";import { createMint, mintTo } from "@lightprotocol/compressed-token";import { Keypair } from "@solana/web3.js";import { readFileSync } from "fs";import { homedir } from "os";// Step 1: Load wallet from filesystemconst payer = Keypair.fromSecretKey(new Uint8Array(JSON.parse(readFileSync(`${homedir()}/.config/solana/id.json`, "utf8"))));// Helius exposes Solana and compression RPC endpoints through a single URLconst RPC_ENDPOINT = "https://devnet.helius-rpc.com?api-key=<API_KEY>";const connection = createRpc(RPC_ENDPOINT, RPC_ENDPOINT, RPC_ENDPOINT);const main = async () => { try { // Step 2: Create SPL mint with token pool for compression console.log("\nCreating SPL mint with token pool for compression"); const { mint, transactionSignature } = await createMint( connection, payer, payer.publicKey, // mintAuthority 9 ); console.log(`Mint address: ${mint.toBase58()}`); console.log(`Create mint transaction: https://explorer.solana.com/tx/${transactionSignature}?cluster=devnet`); // Step 3: Mint compressed tokens to recipient account console.log("\nMinting compressed token..."); const mintAmount = 1000000000; // mintAmount with decimals const mintToTxId = await mintTo( connection, payer, mint, // SPL mint with token pool for compression payer.publicKey, // recipient.publicKey payer, // mintAuthority mintAmount ); console.log(`Compressed Token minted ${mintAmount / 1e9} token`); console.log(`Transaction: https://explorer.solana.com/tx/${mintToTxId}?cluster=devnet`); // Step 4: Verify compressed token balance via getCompressedTokenAccountsByOwner const tokenAccounts = await connection.getCompressedTokenAccountsByOwner( payer.publicKey, { mint } // SPL mint with token pool for compression ); } catch (error: any) { console.error("Error:", error.message); }};main().catch(console.error);