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.
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"
})
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 |
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.
For more configuration options, please see the documentation.
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:
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.