Flow's JavaScript SDK was created to make developing JavaScript applications that connect to the Flow blockchain easy and secure.
While it would be possible to create a Flow wallet as a browser plugin, we specifically created @onflow/fcl
so that web-based dapps donโt have to depend on browser
plugins. @onflow/fcl
is able to connect browser-based dapps to a wallet service, or a wallet installed on your phone
or running on your local computer without introducing the security risks that can come from installing
a browser plugin.
@onflow/fcl
also eliminates the need for dapp developers to write code to integrate their user's preferred wallet into
their application. Instead,@onflow/fcl
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!
@onflow/fcl
enables cross-platform dapps. By not depending on JavaScript injection as a mechanism for connecting dapps with wallets,
native desktop dapps and mobile dapps can connect to the same wallet software as browser dapps.
To use the Flow JavaScript SDK in your application, install using yarn or npm
npm i -S @onflow/fcl @onflow/types
Learn to use @onflow/fcl
: Flow App Quickstart
Please note, that some code provided - e.g. Object.fromEntries
- will require Node version v12.0.0 or higher
.
-
Higher Level
-
@onflow/fcl
-- A high level dapp framework built on top an opinionated use of the sdk. -
@onflow/sdk
-- Tools that enable developers to build, resolve, send and decode interactions with the Flow blockchain. -
@onflow/types
-- Type casting interaction params to cadence compatible values. -
send
-- Send interactions to the Flow blockchain get responses back. -
decode
-- Decodes responses return values into Javascript (No need for an ABI).
-
-
Lower Level
-
@onflow/protobuf
-- Dependency of send. Provides transport between the browser and the Flow blockchain. -
interaction
-- A data structure that can be built, resolved and sent to the Flow blockchain. -
response
-- A data structure that represents a response from the Flow blockchain. If the interaction returns something, it can be decoded without something like an ABI. -
encode
-- Transactions needs signatures, this module knows how to create the values that get signed.
-
-
Development Tools
-
@onflow/dev-wallet
-- A local fcl wallet provider for local development and testing.
-