Skip to content
kyranjamie edited this page Apr 21, 2022 · 11 revisions

App Developers' Guide

This documentation explains how developers can interact with the Hiro Wallet. This is relevant for app developers looking to craft their own onboarding user experience.

Looking to easily integrate the Hiro Wallet with your app? Check out @stacks/connect

Getting started

When the Hiro Wallet is installed, a script is injected to the page, and a new object StacksProvider assigned to the global window variable.

if (window.StacksProvider) {
  // User has Hiro Wallet installed 🥳 
} else {
  // Prompt user to install the wallet
}

StacksProvider API Reference

The StacksProvider is a JavaScript object injected into web pages of users with the Hiro Wallet web extension installed.

authenticationRequest

This method accepts an encoded JWT payload, and returns a JWT payload signed with the users dataPrivateKey. A wallet popup will open, requesting the user select an account.

StacksProvider.authenticationRequest(encodedJwt: string) => Promise<string>

transactionRequest

This method accepts an JWT payload with an unsigned transaction encrypted with the app's appPrivateKey. This is decoded, decrypted, validated, and the user prompted to confirm the transaction be signed and broadcast.

StacksProvider.transactionRequest(encodedJwt: string) => Promise<SponsoredFinishedTxPayload | FinishedTxPayload>

getProductInfo

Returns information about the users Hiro Wallet installation

StacksProvider.getProductInfo() => { version: string, name: string, meta: { tag: string; commit: string } }

Clone this wiki locally