Skip to content

stellar/freighter-developer-docs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Welcome to Freighter

Freighter is a non-custodial wallet for the Stellar network, available as a browser extension and a mobile app. Non-custodial means your users hold their own keys — your dapp never sees or stores private keys. This guide walks you through integrating Freighter so your users can connect their wallets, sign transactions, and interact with Soroban smart contracts.

What You Can Build

With Freighter, your dapp can connect a user's wallet with a single call — no signup form, no password, just a familiar wallet popup and an immediate public key. From there you can read their active network, hand off transactions for signing, and submit to the network.

For dapps that integrate with smart contracts, Freighter also handles authorization entry signing for smart contract calls and arbitrary message signing for account verification.

How It Works

The integration model is simple: your dapp talks to the wallet, and the wallet talks to the user.

For desktop browsers, you integrate with the Freighter extension through a lightweight JavaScript library. It injects itself into the page, and your dapp calls methods like "is the wallet connected?", "what's the user's address?", and "please sign this transaction."

For mobile, the integration works over WalletConnect v2. When a user opens your dapp in a mobile browser, WalletConnect presents a modal where they select Freighter as their wallet and approve the connection. On desktop, the same flow can display a QR code for the user to scan. Either way, a secure relay session is established and signing requests flow through the same pattern — your dapp proposes, the user reviews and approves in the wallet.

Both paths produce the same output: signed transactions you can submit to the Stellar network. So your backend and submission logic stay the same regardless of whether your user connected from a laptop or a phone.

If you want to support multiple Stellar wallets — not just Freighter — take a look at Stellar Wallets Kit. It provides a unified interface across Stellar wallets, including browser extensions and WalletConnect-based mobile wallets, so your users can connect with whichever wallet they prefer.

Note: Stellar Wallets Kit's WalletConnect module currently only exposes stellar_signXDR and stellar_signAndSubmitXDR. If your dapp needs stellar_signMessage or stellar_signAuthEntry against Freighter Mobile, integrate WalletConnect directly for now (tracked in stellar/freighter-mobile#815).

Why Freighter

Built and maintained by SDF. Freighter is developed by the Stellar Development Foundation, the same team behind the core Stellar protocol and SDKs.

Complete Stellar support. Transaction signing, Soroban authorization entry signing with contract invocation inspection, SEP-53 message signing, contract token management, and Blockaid transaction scanning.

Desktop and mobile. Browser extension for desktop, WalletConnect for mobile. Both paths produce the same signed output, so your dapp supports both with minimal branching.

Get Started

Desktop — integrate with the Freighter browser extension using @stellar/freighter-api. See the Extension Guide.

Mobile — connect to Freighter Mobile over WalletConnect v2. See the Mobile Guide.

Both — if your dapp needs to support desktop and mobile users, use both integration paths. Both produce the same output (signed XDR), so your submission logic stays the same regardless of how the user connected.

Quick links

I want to... Extension Mobile
Install / set up Installation Installation
Connect to Freighter Connecting Connecting
Sign a transaction Signing Signing
Add a token Token Management

Resources

About

Freighter wallet developer documentation

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages