README.md
February 27, 2024 ยท View on GitHub
Discovery
When building an dapp on Flow using @onflow/fcl, Discovery eliminates the need for dapp developers to write code to integrate their user's preferred wallet into their application. Instead, @onflow/fcl and this repo uses a secure discovery protocol that wallets can implement to connect to @onflow/fcl. The end result is dapps using @onflow/fcl automatically integrate all compatible wallets without their developers needing to write any custom code!
To read more about consuming/using this repo via FCL, visit the Discovery docs.
Getting Started
First, run the development server:
npm run dev
# or
yarn dev
Then add Discovery to your FCL app:
import * as fcl from "@onflow/fcl"
fcl.config({
"discovery.wallet": "https://fcl-discovery.onflow.org/testnet/authn",
"discovery.authn.endpoint": "https://fcl-discovery.onflow.org/api/testnet/authn"
})
Networks
Discovery UI URLs
| Environment | Example |
|---|---|
| Mainnet | http://localhost:3002/authn or http://localhost:3002/mainnet/authn |
| Testnet | http://localhost:3002/testnet/authn |
| Previewnet | http://localhost:3002/previewnet/authn |
| Local | http://localhost:3002/local/authn |
| Emulator | http://localhost:3002/emulator/authn |
Discovery API Endpoints
| Environment | Example |
|---|---|
| Mainnet | http://localhost:3002/api/authn or http://localhost:3002/api/mainnet/authn |
| Testnet | http://localhost:3002/api/testnet/authn |
| Previewnet | http://localhost:3002/api/previewnet/authn |
| Local | http://localhost:3002/api/local/authn |
| Emulator | http://localhost:3002/api/emulator/authn |
Note: Local and emulator will return Dev Wallet as a service for developing locally with the default port of 8701. If you'd like to override the default port add ?port=0000 with the port being whatever you'd like to override it to.
More Configuration
For more configuration options, please see the documentation.
Adding a Wallet to Discovery
Flow compatible wallets wanting to add their wallets to Discovery can do so by creating a PR with the following:
- Add your wallet's service information to the services data file
- Please provide any metadata related to your service if required (see metadata docs)
- Provide a demo of your wallet that can be tested and is connected to Testnet
- Specify if your wallet is opt-in or not. Opt-in wallets are those that don't have support for authentication, authorization, and user signature services.
Before adding your wallet to Discovery, ensure your wallet meets the minimum acceptance criteria.
For more information/examples on how to build a Flow compatible wallet, check out the following links:
Documentation
To learn more about the repo, take a look at the following resources:
- Discovery - Documentation for using Discovery with FCL.
- FCL - Learn more about Flow's FCL
- Next.js Documentation - This app is built with Next. Learn about Next.js features and API.