Skip to main content

Introduction

Aioha (All-In-One Hive Authentication) is an API that provides a common interface for working with different Hive login providers. This allows easier integration of Hive login and transacting on the network with fewer code.

Aioha is designed for use in browser contexts and can be used through two different ways:

  1. Core API

This is the base library containing the inner workings of Aioha. It provides the APIs needed to interact with different Hive login providers, all within one or two lines of code. Recommended when flexibility is important.

  1. Framework Libraries

These are libraries that provide framework-specific conveniences for integrating Aioha. Optionally includes all the UI logic required for an Aioha-powered Hive login modal. Best for most developers.

Supported Providers

Supported Frameworks

Feature Matrix

FeaturePeak VaultKeychainHiveAuthHiveSignerLedger
Login1
Login (non-interactive)
Discover accounts
Memo encryption4
Memo decryption52
Sign message
Sign tx (without broadcast)3
Sign tx (with broadcast)
Transact using owner auth

1 A HiveSigner access token will be returned instead of an ECDSA signature.
2 Memo must be encrypted using @hivesigner's public posting key.
3 While technically supported by the provider, the PKSA generates the transaction headers instead of using supplied values. This is unhelpful for signing multisig transactions.
4 Developer claims to be possible however this is not documented anywhere therefore not implemented in Aioha.
5 Only available in protocol 1.0 that doesn't seem to be deployed therefore not implemented in Aioha.

Local Storage Reserved Keys

Aioha uses certain keys in browser localStorage to store persistent logins, and in the case of HiveSigner provider, pass info from callback URL.

warning

Do not modify any values for the local storage keys below outside Aioha core and HiveSigner callback page.

The following keys are reserved:

  • General: aiohaUsername, aiohaProvider, aiohaPubKey, aiohaOtherLogins
  • HiveAuth: hiveauthToken, hiveauthKey, hiveauthExp
  • HiveSigner: hivesignerTxId, hivesignerToken, hivesignerExpiry, hivesignerUsername
  • Ledger: ledgerPath