You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Your First Code Contribution](#your-first-code-contribution)
16
16
-[Pull Requests](#pull-requests)
17
+
-[Building the Repo](#building-the-repo)
18
+
-[Release Process](#release-process)
17
19
18
20
[Styleguides](#styleguides)
19
21
@@ -102,6 +104,45 @@ Please follow the [styleguides](#styleguides) to have your contribution consider
102
104
Reviewer(s) may ask you to complete additional design work, tests,
103
105
or other changes before your pull request can be ultimately accepted.
104
106
107
+
### Building the Repo
108
+
109
+
```shell
110
+
npm i
111
+
npm run build
112
+
```
113
+
114
+
### Release Process
115
+
116
+
Packages stable versions releases are controlled by [changesets](https://github.com/changesets/changesets) from the `master` branch
117
+
118
+
#### Creating a changeset
119
+
120
+
Changesets are used to track changes to the packages in the repository. They are used to generate changelogs and determine the next version of the package.
121
+
122
+
To create a changeset, run:
123
+
```
124
+
npx changeset
125
+
```
126
+
127
+
#### Prerelease(alpha)
128
+
In order to create an `alpha` (pre-)release
129
+
- create a branch with `release-<VERSION>` as a branch name
130
+
- run:
131
+
```
132
+
npm run changeset pre enter alpha
133
+
npm run changeset version
134
+
npm run changeset publish
135
+
```
136
+
137
+
*NOTE: you need to have an npm account and be a member of [OnFlow organization](https://www.npmjs.com/org/onflow)*
138
+
139
+
`changeset` commands should preferably be run from the `release` branch and not from feature branches in order to avoid merge conflicts with other feature branches
140
+
when the release is ready to be published as stable run from the release branch
Copy file name to clipboardExpand all lines: README.md
+26-46
Original file line number
Diff line number
Diff line change
@@ -18,48 +18,27 @@
18
18
</p>
19
19
</p>
20
20
21
-
## What is FCL?
21
+
## 🌟 What is FCL?
22
22
23
-
The Flow Client Library (FCL) JS is a package used to interact with user wallets and the Flow blockchain. When using FCL for authentication, dapps are able to support all FCL-compatible wallets on Flow and their users without any custom integrations or changes needed to the dapp code.
23
+
The **Flow Client Library (FCL) JS** is a package designed to facilitate interactions between dapps, wallets, and the Flow blockchain. It provides a standardized way for applications to connect with users and their wallets, **eliminating the need for custom integrations**.
24
24
25
-
It was created to make developing applications that connect to the Flow blockchain easy and secure. It defines a standardized set of communication patterns between wallets, applications, and users that is used to perform a wide variety of actions for your dapp. FCL also offers a full featured SDK and utilities to interact with the Flow blockchain.
25
+
### 🔑 Key Features:
26
+
- 🔌 **Universal Wallet Support** – Works seamlessly with all FCL-compatible wallets, making authentication simple.
27
+
- 🔐 **Secure Authentication** – Standardized authentication flow ensures a smooth user experience.
28
+
- ⚡ **Blockchain Interactions** – Enables querying, mutating, and interacting with smart contracts on Flow.
- 🌍 **Flexible Environment** – Can run in both browser and server environments, though wallet interactions are browser-only.
26
31
27
-
While FCL itself is a concept and standard, FCL JS is the javascript implementation of FCL and can be used in both browser and server environments. All functionality for connecting and communicating with wallet providers is restricted to the browser. We also have FCL Swift implementation for iOS, see [FCL Swift](https://github.com/Outblock/fcl-swift) contributed by [@lmcmz](https://github.com/lmcmz).
32
+
FCL was created to make building Flow-connected applications **easy, secure, and scalable** by defining **standardized communication patterns** between wallets, applications, and users.
33
+
34
+
For iOS, we also offer [FCL Swift](https://github.com/Outblock/fcl-swift).
28
35
29
36
---
30
37
## Getting Started
31
38
32
39
### Requirements
33
40
- Node version `v12.0.0 or higher`.
34
41
35
-
### Build
36
-
```shell
37
-
npm i
38
-
npm run build
39
-
```
40
-
41
-
### Release
42
-
Packages stable versions releases are controlled by [changesets](https://github.com/changesets/changesets) from the `master` branch
43
-
44
-
#### Prerelease(alpha)
45
-
In order to create an `alpha` (pre-)release
46
-
- create a branch with `release-<VERSION>` as a branch name
47
-
- run:
48
-
```
49
-
npm run changeset pre enter alpha
50
-
npm run changeset version
51
-
npm run changeset publish
52
-
```
53
-
54
-
*NOTE: you need to have an npm account and be a member of [OnFlow organization](https://www.npmjs.com/org/onflow)*
55
-
56
-
`changeset` commands should preferably be run from the `release` branch and not from feature branches in order to avoid merge conflicts with other feature branches
57
-
when the release is ready to be published as stable run from the release branch
58
-
```
59
-
npm run changeset pre exit
60
-
```
61
-
and merge `release-<VERSION>` branch to `master`
62
-
63
42
### Installation
64
43
65
44
To use the FCL JS in your application, install using **yarn** or **npm**
@@ -177,14 +156,10 @@ For all type definitions available, see [this file](./packages/typedefs/src/inde
177
156
178
157
## Next Steps
179
158
180
-
See the [Flow App Quick Start](https://developers.flow.com/tutorials/flow-app-quickstart).
181
-
182
-
See the full [API Reference](https://developers.flow.com/tooling/fcl-js/api) for all FCL functionality.
183
-
184
-
Learn Flow's smart contract language to build any script or transactions: [Cadence](https://developers.flow.com/cadence).
185
-
186
-
Explore all of Flow [docs and tools](https://developers.flow.com).
187
-
159
+
- See the [Flow App Quick Start](https://developers.flow.com/build/getting-started/fcl-quickstart).
160
+
- See the full [API Reference](https://developers.flow.com/tools/clients/fcl-js/api) for all FCL functionality.
161
+
- Learn Flow's smart contract language to build any script or transactions: [Cadence](https://cadence-lang.org).
162
+
- Explore all of Flow [docs and tools](https://developers.flow.com).
188
163
189
164
---
190
165
## FCL for Wallet Providers
@@ -198,10 +173,11 @@ The communication channels involve responding to a set of pre-defined FCL messag
-[Dapper Wallet](https://www.meetdapper.com/) (beta access - general availability coming soon)
204
-
-[Lilico Wallet](https://lilico.app/) Fully non-custodial chrome extension wallet focused on NFTs
205
181
206
182
### Wallet Discovery
207
183
It can be difficult to get users to discover new wallets on a chain. To solve this, we created a [wallet discovery service](https://github.com/onflow/fcl-discovery) that can be configured and accessed through FCL to display all available Flow wallet providers to the user. This means:
@@ -214,16 +190,20 @@ The discovery feature can be used via API allowing you to customize your own UI
214
190
215
191
### Building a FCL compatible wallet
216
192
217
-
- Read the [wallet guide](https://github.com/onflow/fcl-js/blob/master/packages/fcl-core/src/wallet-provider-spec/draft-v3.md) to understand the implementation details.
193
+
- Read the [wallet guide](https://github.com/onflow/fcl-js/blob/master/packages/fcl-core/src/wallet-provider-spec/draft-v4.md) to understand the implementation details.
218
194
- Review the architecture of the [FCL dev wallet](https://github.com/onflow/fcl-dev-wallet) for an overview.
219
195
- If building a non-custodial wallet, see the [Account API](https://github.com/onflow/flow-account-api) and the [FLIP](https://github.com/onflow/flow/pull/727) on derivation paths and key generation.
220
196
221
197
---
222
198
223
-
## Support
199
+
## 🛠 Want to Use the Flow SDK Directly?
224
200
225
-
Notice a problem or want to request a feature? [Add an issue](https://github.com/onflow/fcl-js/issues).
201
+
If you prefer to interact with Flow at a **lower level** without using FCL, you can use the [Flow JavaScript SDK](packages/sdk/readme.md) directly. The SDK provides raw access to Flow's API for sending transactions, executing scripts, and managing accounts.
226
202
227
-
Discuss FCL with the community on the [forum](https://forum.onflow.org/c/developer-tools/flow-fcl/22).
203
+
FCL is built **on top of the Flow SDK**, making it easier to handle authentication, wallet interactions, and dapp connectivity. Choose the approach that best fits your use case.
204
+
205
+
## Support
228
206
229
-
Join the Flow community on [Discord](https://discord.gg/k6cZ7QC) to keep up to date and to talk to the team.
207
+
- Notice a problem or want to request a feature? [Add an issue](https://github.com/onflow/fcl-js/issues).
208
+
- Join the Flow community on [Discord](https://discord.gg/flow) to keep up to date and to talk to the team.
209
+
- Read the [Contributing Guide](./CONTRIBUTING.md) to learn how to contribute to the project.
Copy file name to clipboardExpand all lines: packages/fcl/README.md
+26-47
Original file line number
Diff line number
Diff line change
@@ -18,48 +18,27 @@
18
18
</p>
19
19
</p>
20
20
21
-
## What is FCL?
21
+
## 🌟 What is FCL?
22
22
23
-
The Flow Client Library (FCL) JS is a package used to interact with user wallets and the Flow blockchain. When using FCL for authentication, dapps are able to support all FCL-compatible wallets on Flow and their users without any custom integrations or changes needed to the dapp code.
23
+
The **Flow Client Library (FCL) JS** is a package designed to facilitate interactions between dapps, wallets, and the Flow blockchain. It provides a standardized way for applications to connect with users and their wallets, **eliminating the need for custom integrations**.
24
24
25
-
It was created to make developing applications that connect to the Flow blockchain easy and secure. It defines a standardized set of communication patterns between wallets, applications, and users that is used to perform a wide variety of actions for your dapp. FCL also offers a full featured SDK and utilities to interact with the Flow blockchain.
25
+
### 🔑 Key Features:
26
+
- 🔌 **Universal Wallet Support** – Works seamlessly with all FCL-compatible wallets, making authentication simple.
27
+
- 🔐 **Secure Authentication** – Standardized authentication flow ensures a smooth user experience.
28
+
- ⚡ **Blockchain Interactions** – Enables querying, mutating, and interacting with smart contracts on Flow.
- 🌍 **Flexible Environment** – Can run in both browser and server environments, though wallet interactions are browser-only.
26
31
27
-
While FCL itself is a concept and standard, FCL JS is the javascript implementation of FCL and can be used in both browser and server environments. All functionality for connecting and communicating with wallet providers is restricted to the browser. We also have FCL Swift implementation for iOS, see [FCL Swift](https://github.com/Outblock/fcl-swift) contributed by [@lmcmz](https://github.com/lmcmz).
32
+
FCL was created to make building Flow-connected applications **easy, secure, and scalable** by defining **standardized communication patterns** between wallets, applications, and users.
33
+
34
+
For iOS, we also offer [FCL Swift](https://github.com/Outblock/fcl-swift).
28
35
29
36
---
30
37
## Getting Started
31
38
32
39
### Requirements
33
40
- Node version `v12.0.0 or higher`.
34
41
35
-
### Build
36
-
```shell
37
-
npm i
38
-
npm run build
39
-
```
40
-
41
-
### Release
42
-
Packages stable versions releases are controlled by [changesets](https://github.com/changesets/changesets) from the `master` branch
43
-
44
-
#### Prerelease(alpha)
45
-
In order to create an `alpha` (pre-)release
46
-
- create a branch with `release-<VERSION>` as a branch name
47
-
- run:
48
-
```
49
-
npm run changeset pre enter alpha
50
-
npm run changeset version
51
-
npm run changeset publish
52
-
```
53
-
54
-
*NOTE: you need to have an npm account and be a member of [OnFlow organization](https://www.npmjs.com/org/onflow)*
55
-
56
-
`changeset` commands should preferably be run from the `release` branch and not from feature branches in order to avoid merge conflicts with other feature branches
57
-
when the release is ready to be published as stable run from the release branch
58
-
```
59
-
npm run changeset pre exit
60
-
```
61
-
and merge `release-<VERSION>` branch to `master`
62
-
63
42
### Installation
64
43
65
44
To use the FCL JS in your application, install using **yarn** or **npm**
@@ -177,14 +156,10 @@ For all type definitions available, see [this file](./packages/typedefs/src/inde
177
156
178
157
## Next Steps
179
158
180
-
See the [Flow App Quick Start](https://developers.flow.com/tutorials/flow-app-quickstart).
181
-
182
-
See the full [API Reference](https://developers.flow.com/tooling/fcl-js/api) for all FCL functionality.
183
-
184
-
Learn Flow's smart contract language to build any script or transactions: [Cadence](https://developers.flow.com/cadence).
185
-
186
-
Explore all of Flow [docs and tools](https://developers.flow.com).
187
-
159
+
- See the [Flow App Quick Start](https://developers.flow.com/build/getting-started/fcl-quickstart).
160
+
- See the full [API Reference](https://developers.flow.com/tools/clients/fcl-js/api) for all FCL functionality.
161
+
- Learn Flow's smart contract language to build any script or transactions: [Cadence](https://cadence-lang.org).
162
+
- Explore all of Flow [docs and tools](https://developers.flow.com).
188
163
189
164
---
190
165
## FCL for Wallet Providers
@@ -196,12 +171,12 @@ FCL is agnostic to the communication channel and be configured to create both cu
196
171
197
172
The communication channels involve responding to a set of pre-defined FCL messages to deliver the requested information to the dapp. Implementing a FCL compatible wallet on Flow is as simple as filling in the responses with the appropriate data when FCL requests them. If using any of the front-channel communication methods, FCL also provides a set of [wallet utilities](https://github.com/onflow/fcl-js/blob/master/packages/fcl-core/src/wallet-utils/index.js) to simplify this process.
-[Dapper Wallet](https://www.meetdapper.com/) (beta access - general availability coming soon)
204
-
-[Lilico Wallet](https://lilico.app/) Fully non-custodial chrome extension wallet focused on NFTs
205
180
206
181
### Wallet Discovery
207
182
It can be difficult to get users to discover new wallets on a chain. To solve this, we created a [wallet discovery service](https://github.com/onflow/fcl-discovery) that can be configured and accessed through FCL to display all available Flow wallet providers to the user. This means:
@@ -214,16 +189,20 @@ The discovery feature can be used via API allowing you to customize your own UI
214
189
215
190
### Building a FCL compatible wallet
216
191
217
-
- Read the [wallet guide](https://github.com/onflow/fcl-js/blob/master/packages/fcl-core/src/wallet-provider-spec/draft-v3.md) to understand the implementation details.
192
+
- Read the [wallet guide](https://github.com/onflow/fcl-js/blob/master/packages/fcl-core/src/wallet-provider-spec/draft-v4.md) to understand the implementation details.
218
193
- Review the architecture of the [FCL dev wallet](https://github.com/onflow/fcl-dev-wallet) for an overview.
219
194
- If building a non-custodial wallet, see the [Account API](https://github.com/onflow/flow-account-api) and the [FLIP](https://github.com/onflow/flow/pull/727) on derivation paths and key generation.
220
195
221
196
---
222
197
223
-
## Support
198
+
## 🛠 Want to Use the Flow SDK Directly?
224
199
225
-
Notice a problem or want to request a feature? [Add an issue](https://github.com/onflow/fcl-js/issues).
200
+
If you prefer to interact with Flow at a **lower level** without using FCL, you can use the [Flow JavaScript SDK](packages/sdk/readme.md) directly. The SDK provides raw access to Flow's API for sending transactions, executing scripts, and managing accounts.
226
201
227
-
Discuss FCL with the community on the [forum](https://forum.onflow.org/c/developer-tools/flow-fcl/22).
202
+
FCL is built **on top of the Flow SDK**, making it easier to handle authentication, wallet interactions, and dapp connectivity. Choose the approach that best fits your use case.
203
+
204
+
## Support
228
205
229
-
Join the Flow community on [Discord](https://discord.gg/k6cZ7QC) to keep up to date and to talk to the team.
206
+
- Notice a problem or want to request a feature? [Add an issue](https://github.com/onflow/fcl-js/issues).
207
+
- Join the Flow community on [Discord](https://discord.gg/flow) to keep up to date and to talk to the team.
208
+
- Read the [Contributing Guide](./CONTRIBUTING.md) to learn how to contribute to the project.
0 commit comments