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 programmatic APIs needed to interact with Hive login providers without much work on provider-specific code, all within one or two lines of code. Recommended when login UI customizability is important to the application.

  1. Ready Made Login UI

These are ready to use framework-specific libraries that implements all the UI logic required for an Aioha-powered Hive login modal. It includes and uses the Aioha core API (described above) under the hood. Best for most developers so they have more time to focus on the main functionality of the application.

Supported Providers

Feature Matrix

FeaturePeak VaultKeychainHiveAuthHiveSignerLedger
Login1
Login (non-interactive)
Memo encryption4
Memo decryption42
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.

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
  • HiveAuth: hiveauthToken, hiveauthKey, hiveauthExp
  • HiveSigner: hivesignerTxId, hivesignerToken, hivesignerExpiry, hivesignerUsername
  • Ledger: ledgerPath