Getting Started
#
Learn About BeaconBeacon is the implementation of the tzip-10 proposal, which describes an interaction standard between a wallet and a dApp.
A dApp impelementing the beacon-sdk can build up a channel and send messages over a peer to peer communication layer to a wallet. This allows for a communication for example of a mobile wallet with a desktop application. The requests of the dApp are sent to the wallet, signed and returned to the application. The beacon-sdk
can also communicate to chrome extensions if compatible ones are installed.
The beacon-sdk
should allow developers to integrate this functionality with minimal coding, but still be customizable to support more complex flows.
#
Design PrinciplesThe beacon-sdk
handles almost everything for you, but is still customizable if needed.
It detects whether or not a browser extension is installed, tracks what connections have been established and the accounts that have been shared with the dApp.
Generally, you only have to initialize a DAppClient instance (see Getting Started), the rest should be handled for you. Refer to the guides section for some common use cases.
#
MessagesThe messages used in the Beacon communication are defined in the tzip-10 proposal.
Every message contains a unique, random ID that allows use to match request and response. It also contains the ID of the sender.
Some of the messages accept a network as input (default is mainnet). This is used to ask for permissions or broadcast a transaction on another network. This can either be a testnet, or a local development setup.
To see all message types, please refer to the typedocs.
#
ErrorsThe errors used in the Beacon communication are defined in the tzip-10 proposal.
If the wallet encounters an error while processing a request, the response will return an error.
To see all error types, please refer to the typedocs.
#
Default UI ElementsThe beacon-sdk
includes default UI elements for pairing wallets and show the status of a request.
We highly discourage the overwriting of the default UI elements.
You can read more details about this in the UI Elements section.