Home

findora-javascript 1.0.1

This API enables construction of wallet applications that interact with Findora Ledger. Findora Ledger is a multi-purpose transactional system that provides the necessary tools for financial applications to operate transparently over a financial ledger in a publicly-auditable, yet confidential way.

Developers can use this API to:

  • Manage Findora key pairs
  • Manage asset records
  • Manage confidential credentials
  • Construct and submit transactions

The API includes runnable examples in the examples folder. You can also view the markdown versions of the examples as tutorials by clicking on the link in the navigation bar.

What is Findora Ledger?

Findora Ledger is an authenticated data structure (ADS) that records transactions. Because it is an authenticated data structure, anyone with access can verify that the Ledger is a faithful persistent record of transactions, and the Ledger responds identically to queries regardless of origin. Any inconsistency in responses to queries from different origins could only result from some inconsistency in the ADS commitment, and this can be discovered.

Transactions are added to the ledger history in batches called blocks. Transactions must be validated before they are incorporated in the ledger history, and contain operations that can create new assets, issue units of assets, and change asset ownership. For instance, a DefineAsset operation registers a new asset with the ledger that can be issued and transferred using other types of operations.

What is a wallet?

A wallet is an application that helps users manage their keys, assets, and any other information required to interact with Findora Ledger. Say that Alice is user of Findora Ledger. A well-designed wallet might allow Alice to:

  • Securely store private information like private keys
  • Define, issue, and transfer assets
  • View a list of assets she has recently received from Bob, another user
  • View the assets that she has created and issued

Modules

The Findora JavaScript API consists of three submodules, described below.

Findora-Wasm

Findora-Wasm is a Rust-generated WebAssembly (Wasm) library. The library contains JavaScript glue code that allows a client environment like Node.js or the browser to use it. Developers can use Findora-Wasm to:

  • Build transactions
  • Fetch information needed to check that Findora Ledger is a valid ADS
  • Generate credential, tracing, and asset key pairs
  • Create credentials and selectively disclose credential attributes

Findora-Network

Findora-Network is a library for composing requests to Findora’s RESTful API. Using this library, developers can:

  • Submit transactions constructed by Findora-Wasm to Findora's transaction submission service
  • Track the status of submitted transactions
  • Query the Findora Ledger state commitment
  • Query committed transactions and transaction outputs
  • Query important information associated with public keys (e.g. asset records owned by Alice, assets defined by Bob, etc.)

KeyStore

Findora-KeyStore exposes a serializable and deterministic keystore that makes it easy for users to manage their asset key pairs. The keystore is encrypted by a user-provided password.

Targets

lib/web_pkgis the browser-compatible Wasm package. lib/pkg is the Node.js-compatible Wasm package.

Tutorials

Refer to the tutorials linked in the navigation bar for instructions on using the API. Tutorials range from simple topics like asset definition, issuance, and transfer, to advanced topics like anonymous credentials and confidentiality.