Beacon SDK
Connect Wallets with dApps on Tezos
Beacon is the implementation of the wallet interaction standard tzip-10 which describes the connnection of a dApp with a wallet.
Intro
The beacon-sdk
simplifies and abstracts the communication between dApps and wallets over different transport layers.
Developers that plan to develop complex smart contract interactions can use Taquito with the BeaconWallet
, which uses this SDK under the hood, but provides helpful methods to interact with contracts.
Besides this Typescript SDK, we also provide SDKs for native iOS and Android Wallets:
Documentation
The documentation can be found here, technical documentation can be found here.
Installation
npm i --save @airgap/beacon-sdk
Example DApp integration
const client = new DAppClient({ name: 'My Sample DApp' })
client
.requestPermissions()
.then((permissions) => {
console.log('got permissions', permissions)
})
.catch((error) => console.log(error))
For a more complete example, take a look at the example-dapp.html
file.
Example Wallet integration
const client = new WalletClient({ name: 'My Wallet' })
await client.init()
client
.connect(async (message) => {
if (message.type === BeaconMessageType.PermissionRequest) {
const response: PermissionResponseInput = {
type: BeaconMessageType.PermissionResponse,
network: message.network,
scopes: [PermissionScope.OPERATION_REQUEST],
id: message.id,
publicKey: 'tezos public key'
}
await client.respond(response)
}
})
.catch((error) => console.error('connect error', error))
For a more complete example, take a look at the example-wallet.html
file.
Adding a wallet to beacon-sdk
Please create a PR and add your wallet here.
For iOS wallets, the wallet needs to define a custom url scheme to support the same-device functionality.
Development
$ npm i
$ npm run build
$ npm run test
Once the SDK is built, you can open the example-dapp.html
file in your browser and try out the basic functionality. To support browser extensions as well, the file should be viewed over a webserver. You can easily start one with python -m SimpleHTTPServer 8000
and then open the file with http://localhost:8000/example-dapp.html
.