Commit e3bca70
Add Freighter developer documentation (#1)
* Add Freighter developer documentation
Migrate docs from freighter-integration-docs, removing unused GitBook
assets. Includes developer guide, mobile integration, and API reference.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Address PR review feedback: fix broken links, wrong paths, and browser compat issues
- Fix mobile/ link to mobile/README.md for GitBook/docsify compatibility
- Replace undocumented signBlob with signMessage in import example
- Standardize on @stellar/stellar-sdk (not js-stellar-sdk or stellar-sdk)
- Fix broken soroban-development.md link to point to Stellar developer docs
- Fix CDN paths from dist/ to build/ to resolve 404s
- Correct setAllowed() return type description to { isAllowed: true }
- Clarify chainId is a top-level WalletConnect request field, not inside params
- Replace Buffer.from() with TextEncoder/atob for browser compatibility
- Use consistent client.request() variable name in auth entry example
- Pin docsify (4.13.1) and prismjs (1.29.0) CDN versions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix error type: error is FreighterApiError object, not string
The actual @stellar/freighter-api returns error as a FreighterApiError
object with { code, message, ext? }, not a plain string. Updated all
return type signatures and code examples to use error.message.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix mobile signing docs to match freighter-mobile source
- Blockaid site scan happens at connection time, not at auth-entry
signing time
- Add missing "non-string" condition to signAuthEntry error table
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Rewrite introduction and add Stellar Wallets Kit integration
- Rewrote README.md with What You Can Build, How It Works, and Why
Freighter sections to walk developers through the integration
experience without code samples
- Added Stellar Wallets Kit (stellarwalletskit.dev) to the Introduction
and Integrations page for multi-wallet support
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Note that Stellar Wallets Kit is desktop-only
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix missed error.message in reading-data.md and docsify CDN 404
- reading-data.md: console.error(error) -> console.error(error.message)
to match FreighterApiError object type (missed in earlier update)
- index.html: docsify path dist/ -> lib/ to fix 404
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Update README.md
Co-authored-by: Jake Urban <10968980+JakeUrban@users.noreply.github.com>
* Update developer-guide/signing.md
Co-authored-by: Jake Urban <10968980+JakeUrban@users.noreply.github.com>
* Rename developer-guide/ to extension/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Reduce redundant non-custodial/user-control messaging in intro
Define non-custodial once in the opening line and remove repeated
references to private key handling and user control throughout the
page. Addresses PR review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Emphasize in-app browser WalletConnect flow over QR code scanning
The primary mobile use case is the in-app browser where WalletConnect
shows a wallet selection panel, not QR scanning. QR is now mentioned
as a secondary desktop-to-mobile option. Addresses PR review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix Stellar Wallets Kit description: it supports mobile via WalletConnect
Removes incorrect "desktop only" note. Addresses PR review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Rewrite Why Freighter to differentiate vs other Stellar wallets
Focus on what sets Freighter apart from Lobstr, xBull, etc:
SDF-maintained, most advanced feature set (custom tokens, auth entry
inspection, message signing, Blockaid scanning), desktop + mobile.
Addresses PR review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Replace "Choose Your Integration" with straightforward Get Started links
Extension is the only option for desktop, WalletConnect is the only
option for mobile — there's no real choice. Simplified to direct
links per platform. Addresses PR review feedback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Remove recommendation label from requestAccess()
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add context for why dapps need addToken
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Align token terminology with Stellar developer docs
Replace "Soroban token" and "custom token" with "contract token"
to match developers.stellar.org nomenclature.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Rename extension overview title to Extension Integration
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Move import examples from extension overview to installation page
Addresses PR feedback that the overview references freighter-api
imports before the reader has been through installation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Move dual-integration guidance to Get Started, remove inaccurate details
Removed the "Supporting Both Extension and Mobile" section from the
mobile overview (contained inaccurate window.freighterApi reference).
Added a concise "Both" option to the Get Started section instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add hint that isConnected can detect desktop vs mobile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix inconsistencies between extension and mobile docs
1. "dApp" -> "Dapp" in mobile/installation.md (consistent with rest)
2. Network table: "Mainnet" -> "Mainnet (PUBLIC)" to map to enum value
3. "Pubnet's passphrase" -> "Mainnet passphrase" in token-management
4. Mobile connecting title: "Connecting" -> "Connecting to Freighter Mobile"
5. Added note about different response field names between extension
and mobile (signedTxXdr vs signedXDR, signedMessage vs signature)
6. Clarified SEP-43 reference in mobile API table
7. Added error tables to extension signing methods (matching mobile)
8. Aligned parameter/example headings to bold text (matching mobile)
9. SUMMARY.md: "Extension" -> "Extension (freighter-api)" for symmetry
10. Added full connect-sign-submit example to mobile signing
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix isConnected hint and mobile full example requiredNamespaces
- isConnected() hint: clarify it checks for extension installation,
not mobile detection. Point to window.stellar?.platform for that.
- Mobile signing full example: add all 4 methods to requiredNamespaces
(was missing stellar_signMessage and stellar_signAuthEntry).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Apply Cassio's review feedback on WalletConnect docs
- Fix WalletConnect docs links to point to docs.walletconnect.network/app-sdk/overview (the .com URL routes to WalletConnect Pay)
- Rename WalletConnect Cloud to WalletConnect Dashboard with new dashboard.walletconnect.com URL
- Note that Stellar Wallets Kit's WC module only supports 2 of 4 Freighter Mobile signing methods
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Migrate mobile docs to @walletconnect/universal-provider (#2)
* Migrate mobile installation to @walletconnect/universal-provider
Replace @walletconnect/sign-client with @walletconnect/universal-provider
in installation instructions. Add Stellar Wallets Kit alternative note
and link to Reown docs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Migrate mobile connecting to UniversalProvider
Replace SignClient connect/event/disconnect patterns with
UniversalProvider equivalents. Add public key extraction example.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Migrate mobile signing examples to UniversalProvider
Replace all client.request() calls with provider.request() pattern.
Update full connect-sign-submit example.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Remove isFreighterInAppBrowser branching from full example
The in-app browser detection is a Stellar Wallets Kit implementation
detail, not needed by dapp developers using UniversalProvider directly.
Simplified the full example and clarified the in-app vs external
browser UX difference in prose instead.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Add AppKit modal for wallet selection and QR code display
- Add @reown/appkit to installation alongside universal-provider
- Initialize createAppKit with manualWCControl for standalone modal
- Use modal.open({ uri }) in display_uri handler instead of console.log
- Add links to Reown UniversalProvider and AppKit modal docs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Clarify that wallet selection triggers deep-linking
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Clarify that QR code and wallet list are in the same modal
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Pass universalProvider to createAppKit
Wire the provider to the modal via the universalProvider option,
matching the pattern from the Reown migration guide.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix review issues: modal API, imports, and cross-file clarity
Critical:
- Replace display_uri + modal.open({ uri }) with modal.open() before
provider.connect() — AppKit handles URI display automatically when
manualWCControl and universalProvider are set
Important:
- Add comment explaining mainnet placeholder in AppKit networks config
- Fix README chainId hint to reference provider.request() argument
- Add session null check after provider.connect()
Suggestions:
- Switch to named import { UniversalProvider } matching Reown docs
- Add cross-file reference notes to connecting.md and signing.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Fix: use namespaces instead of requiredNamespaces for UniversalProvider
UniversalProvider.ConnectParams does not accept requiredNamespaces —
the correct field is namespaces. Passing requiredNamespaces was silently
ignored, meaning the Stellar namespace would not be registered.
Also added a note explaining that UniversalProvider treats namespaces as
optional on the first connection (they become required on reconnections
via storage). dApps should verify session.namespaces.stellar.methods
after connecting.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* Address Jake's review feedback
- Clarify requestAccess() does full Allow List authorization, not just public key access
- Remove internal password/caching details from signing docs (not actionable for dapps)
- Add note that addToken() will become a no-op once auto-detect ships
- Remove "Building the entryXdr" section from mobile signing (out of scope)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Jake Urban <10968980+JakeUrban@users.noreply.github.com>
Co-authored-by: Cássio Marcos Goulart <3228151+CassioMG@users.noreply.github.com>1 parent fff4be9 commit e3bca70
16 files changed
Lines changed: 1127 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
0 commit comments