dapp

Build Stellar dApp frontends with wallet integration, transaction signing, and smart contract invocation.

3|Updated Feb 26, 2026
One-click install
npx skills add https://github.com/stellar-zk/stellar-zk --skill dapp-stellar-zk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: dapp
Source: https://github.com/stellar-zk/stellar-zk/tree/main/.claude/skills/dapp
Command: npx skills add https://github.com/stellar-zk/stellar-zk --skill dapp-stellar-zk

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires @stellar/stellar-sdk, @stellar/freighter-api, @creit-tech/stellar-wallets-kit, smart-account-kit, @openzeppelin/relayer-plugin-channels.

What problem does it solve? Building a Stellar dApp frontend requires coordinating the JavaScript SDK, wallet connections, transaction building and signing, network configuration, and smart contract invocation — a workflow with many failure points and version-specific pitfalls. This Skill provides tested patterns for the entire client-side stack so you avoid common integration errors. ## Core Features & Use Cases - Wallet Integration: Connect Freighter directly or support multiple wallets via Stellar Wallets Kit v2, plus passkey-based smart accounts with Smart Account Kit. - Transaction Lifecycle: Build, simulate, sign, submit, and poll both classic payments and Soroban smart contract calls using contract.Client and rpc.Server. - Framework Patterns: Ready-to-use React hooks, components, and Next.js App Router setup with proper environment configuration for Testnet and Mainnet. - Use Case: You are building a Next.js app that lets users connect Freighter, read a token balance from a Soroban contract, and submit a payment — this Skill gives you the SDK initialization, wallet hook, contract client, and submission code end to end. ## Quick Start Use the dapp skill to build a React component that connects a Freighter wallet and invokes a Stellar smart contract method.

Frequently Asked Questions about dapp

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I connect Freighter wallet to a React app?▼

Use @stellar/freighter-api with isConnected, requestAccess, and getAddress to detect the extension and prompt the user for access. Wrap the calls in a React hook that tracks connection state, address, and network, then expose a sign function using signTransaction with the correct network passphrase.

How to invoke a Stellar smart contract from JavaScript?▼

Use contract.Client.from() from @stellar/stellar-sdk with the contract ID, RPC URL, network passphrase, and a signTransaction function. Each method returns an AssembledTransaction you can preview via simulation or apply on-chain with signAndSend, without building ScVal arguments by hand.

What is the difference between Freighter API and Stellar Wallets Kit?▼

Freighter API connects only to the Freighter browser extension, while Stellar Wallets Kit supports multiple wallets through a single static interface. Wallets Kit v2 is distributed on JSR as @creit-tech/stellar-wallets-kit and uses authModal() for wallet selection and address retrieval.

Does @stellar/stellar-sdk v16 work with older Node versions?▼

No, SDK v16 requires Node.js 22 or later and produces an EBADENGINE warning on older versions. It is ESM-first, uses native fetch instead of axios, and folds @stellar/stellar-base into the main package, so you should uninstall the separate base package.

Why does my Soroban transaction submission hang or fail?▼

Submissions fail from network passphrase mismatches, unfunded accounts, or missing simulation before signing. Use rpc.prepareTransaction to simulate and assemble fees and auth, then rpc.pollTransaction to track confirmation instead of a hand-rolled polling loop.

Can users transact on Stellar without holding XLM for fees?▼

Yes, fee sponsorship via the OpenZeppelin Relayer channels service submits transactions using Stellar's fee bump mechanism so users need no XLM. A hosted testnet instance is available, and production deployments self-host via Docker.