overhide.io blog
— effortless login — from social to wallet — for your Web project
— authorize extras with hassle-free "in-app-purchases" (IAPs) in dollars and cryptos
— back-end code optional and front-end only OK... write minimal code once but support dollars and coins
— as unliable as possible — no custody of user data for logins and purchases
30 Jan 2022
by Jakub Ner

Remuneration API

The overhide remuneration API originally supported two simple end-points:

  • is-signature-valid: used to verify whether provided signature is valid on a given ledger and whether the signee has transacted on the ledger.
  • get-transactions: used to tally transactions between parties optionally specifying time periods.

This, for all ledgers supported:

Ethereum:

US Dollars:

Bitcoin:

These were originally public ledgers: two blockchains and a publicly visible anonymized receipts ledger for USD.

As of 2022 the landscape has changed and transaction privacy is louded as a feature in second layers on top of the original blockchains via various centralizing oracles and other solutions.

As of this writing privacy is introduced into the US dollar overhide-ledger paving the way for other private ledger currency integrations: the API changes introduced now can be applied to any other non-public ledgers added to the overhide ecosystem in the future.

Introducing Privacy Into the US Dollar Overhide-Ledger

Privacy in overhide-ledger transactions means that transactions are visible only to parties that can prove ownership of an address involved in a transaction: either the payer or the payee.

With reference to the overhide-ledger API documentation (test, prod), the GET /v1/get-transactions/.. endpoint now takes an optional signature — which is the Authorization header value signed by the from-address. If this signature resolves, the API will return private transactions as well as public.

What constitutes a private transaction? Transactions are added to the ledger via the transact.js as returned by the GET /v1/transact.js endpoint. This bit of JavaScript is used by the ledgers.js library, which, as of version 4.7.0, is by default used to store privately on overhide-ledger, e.g. by the pay2my.app widgets.

Storing Public Transactions

You may continue to store public transactions with overhide-ledger, although this is not the default behaviour.

To do as much with the ledgers.js library, ensure to set the isPrivate option to false in the options object when calling createTransaction.

Avoiding Data Lock-In and Keeping Your Data Yours

Privacy in overhide-ledger does not mean the data is somehow locked in a silo and you cannot get at your data.

Neither the data — nor the access to it (the code) — is in any way locked in.

You can export all your transactions, including the private ones, using GET /v1/export/.. (test, prod), and re-import them into any other clone of the overhide-ledger, outside of https://overhide.io.

No alternative ledger available or you want your own? No problem: all of the overhide service code is available on GitHub including redacted deployment scripts. You should be able to stand up your own cluster. Need help? Please ask questions at r/overhide.

⚠ as of this writing there is an outstanding issue for importing data into a new overhide-ledger instance. This functionality has not yet been coded. Please feel encouraged to contribute.