Beacon — connect Tezos wallets with dApps

Beacon allows you to seamlessly connect your Tezos wallet with an application and interact with it. Requests from the dApp can be signed on a mobile, desktop, hardware wallet or browser extension.

Published in
4 min readJan 30, 2020

--

Beacon in short

  • Scan QR code from browser application directly with mobile wallet to establish connection
  • Beacon browser extension with multiple possible signing methods: wallets, Ledger and local secret (development)
  • Implementation of the tzip-10 standard which describes how a wallet interacts with a dApp
  • Decentralized transport layer (based on the matrix protocol) for the communication between dApp and wallet
  • Currently still in Alpha and under heavy development

Decentralized communication between wallets and dApps

To interact with a browser application the user just has to scan the pairing QR code with their mobile wallet like AirGap Wallet, grant the permissions and they’re ready to sign transactions on a mobile device from a browser application.

👉 Beacon Website

Beacon is the implementation of the tzip-10 standard, that describes the various message types, the transport layer and possible implementations.

The messages, specified in tzip-10, between the wallet and the dApp are sent over a decentralized network using the matrix protocol. This allows for an approach where anyone can spin up a node and without any reliability on a central server.

Beacon Extension

The extension acts as a relayer between the dApp and a chosen signing method. The final version of the extension will offer the following options:

  • Mobile & desktop wallets
    For wallets, the initial setup is the same as with the direct dApp integration. The pairing QR code shown in the extension is scanned by the wallet to establish the connection. The advantage of this approach is that the setup with the QR code has to be only done once. If an application supporting Beacon is visited in a browser with the extension installed, the connection will be done automatically.
  • Ledger Nano
    The extension can connect to a Ledger hardware wallet and sign transactions requested by a dApp.
  • Local secret (development)
    Intended as a development only option, due to security concerns. The extension can generate a private key and store it. With this approach the extension itself will be capable of signing transactions.

👉 Download Beacon Extension (Alpha)

Beacon SDK

The Beacon SDK is the library for wallet and applications developers to easily integrate Beacon with a few lines of code. The SDK manages everything for you. It brings support for the various message types, talks to the beacon-extension, offers fallback to direct dApp connection if the extension is not detected, send the messages over the beacon-matrix network etc.

It’s as easy as that:

const client = new DAppClient('My Sample DApp')

client
.requestPermissions()
.then(permissions => {
console.log('got permissions', permissions)
})
.catch(error => console.log(error))

👉 Beacon SDK

Are you a developer of a dApp or wallet and would like to integrate the Beacon SDK? Please don’t hesitate and reach out to us if you have any question.

Beacon dApp

Besides being the landing page of Beacon, the Beacon Website is also a dApp that acts as a reference implementation of the Beacon SDK and is showcased in the videos about the two different flows.

The code of the Beacon Example dApp is available on GitHub to provide a better understanding for developers how an integration of the Beacon SDK looks like on the dApp side.

👉 Beacon Example dApp

The current state of development

Beacon is currently in Alpha state and heavily under development as seen in the videos a complete flow with both the Extension and the direct dApp integration is already possible. Nevertheless there a still some open tasks ahead, the most important ones are:

  • Beacon Extension: handle all message types and operations, Ledger integration, UI improvements
  • Beacon SDK: manage and enforce permissions, error handling, expose further events, push notifications
  • AirGap Wallet: handle all message types and operations, permission management

Do you want to try Beacon?

You can try out Beacon (Alpha) by using the Beacon Extension, the Beacon Example dApp and AirGap Wallet.

👉 Beacon Website
👉 Beacon SDK
👉 Beacon Extension
👉 Beacon Example dApp
👉 AirGap Wallet — Beacon integration

Interested in a secure wallet solution for Tezos with delegation support? Take a look at AirGap.

Beacon Website | GitHub | Telegram | AirGap Website | Twitter

--

--