open-index/open-npm huggingface dataset:
npm package: @iov/certificate-parser
Description: Allows to easily parse and use certificates supported by Starname blockchain.
Author: Jatin Sarda
Latest version: 1.1.5

# @iov/certificate-parser

Allows to easily parse and use certificates supported by Starname blockchain.

## Installation  

```bash
yarn add @iov/certificate-parser
```

## Usage  

```ts
import { CertificateParser } from "certificate-parser";

// this throws on invalid certificate
const parsedCertificate = new CertificateParser("stringifiedJSONCertificate");
parsedCertificate.getStarnameInfo();

// Output
{
    starname: "*starname",
    address: "staraddress..."
}
```
npm package: @iov/cosmos
Description: Transaction codec and client to communicate with the Cosmos Hub blockchain
Author: IOV SAS
Latest version: 2.1.0
Deprecated: Unmaintained. This was renamed to @iov/cosmoshub.

# @iov/cosmos

[![npm version](https://img.shields.io/npm/v/@iov/cosmos.svg)](https://www.npmjs.com/package/@iov/cosmos)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/cosmos-sdk
Description: Transaction codec and client to communicate with a Cosmos SDK 0.38 blockchain
Latest version: 2.5.0

# @iov/cosmos-sdk

[![npm version](https://img.shields.io/npm/v/@iov/cosmos-sdk.svg)](https://www.npmjs.com/package/@iov/cosmos-sdk)

A [BCP](https://github.com/iov-one/iov-core/tree/master/packages/iov-bcp) implementation for Cosmos SDK 0.38.

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/cosmoshub
Description: Transaction codec and client to communicate with the Cosmos Hub blockchain.
Author: IOV SAS
Latest version: 2.5.0

# @iov/cosmoshub

[![npm version](https://img.shields.io/npm/v/@iov/cosmos.svg)](https://www.npmjs.com/package/@iov/cosmoshub)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/crypto
Description: Cryptography resources for IOV projects
Latest version: 2.5.0

# @iov/crypto

[![npm version](https://img.shields.io/npm/v/@iov/crypto.svg)](https://www.npmjs.com/package/@iov/crypto)

@iov/crypto contains low-level cryptographic functionality used in other @iov
libraries. Little of it is implemented here, but mainly it is a curation of
external libraries along with correctness tests. We add type-safety, some more
checks, and a simple API to these libraries. This can also be freely imported
outside of IOV-Core based applications.

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-crypto/](https://iov-one.github.io/iov-core-docs/latest/iov-crypto/)

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/dpos
Description: Common functionality used for @iov/lisk and @iov/rise
Author: IOV SAS
Latest version: 1.2.0

# @iov/dpos

[![npm version](https://img.shields.io/npm/v/@iov/dpos.svg)](https://www.npmjs.com/package/@iov/dpos)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/encoding
Description: Encoding helpers for IOV projects
Author: IOV SAS
Latest version: 2.5.0

# @iov/encoding

[![npm version](https://img.shields.io/npm/v/@iov/encoding.svg)](https://www.npmjs.com/package/@iov/encoding)

This package is an extension to the JavaScript standard library that is not
bound to IOV products. It provides basic hex/base64/ascii/integer encoding to
Uint8Array that doesn't rely on Buffer and also provides better error messages
on invalid input.

## Convert between bech32 and hex addresses

```
>> Bech32.encode("tiov", fromHex("1234ABCD0000AA0000FFFF0000AA00001234ABCD"))
'tiov1zg62hngqqz4qqq8lluqqp2sqqqfrf27dzrrmea'
>> toHex(Bech32.decode("tiov1zg62hngqqz4qqq8lluqqp2sqqqfrf27dzrrmea").data)
'1234abcd0000aa0000ffff0000aa00001234abcd'
```

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-encoding/](https://iov-one.github.io/iov-core-docs/latest/iov-encoding/)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/ethereum
Description: Transaction codec and client to communicate with the Ethereum blockchain
Author: IOV SAS
Latest version: 2.5.0

# @iov/ethereum

[![npm version](https://img.shields.io/npm/v/@iov/ethereum.svg)](https://www.npmjs.com/package/@iov/ethereum)

## Getting started

The primary way to use @iov/ethereum is together with @iov/multichain. Alternatively,
you can use @iov/ethereum to create offline transactions which can be posted manually.

All examples are made for use in @iov/cli and you may need to include some
missing symbols if used in a different environment.

### Using with @iov/multichain

You can use @iov/ethereum as an extension of @iov/multichain to interact with the
Ethereum blockchain as follows.

### Local test

To run Ethereum tests locally, you need to install ganache and start with the following settings:
- RPC Server: `http://127.0.0.1:8545`
- Network ID: `5777`
- Mnemonic: `oxygen fall sure lava energy veteran enroll frown question detail include maximum`

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/faucets
Description: Faucets for some of the supported blockchains
Author: IOV SAS
Latest version: 2.5.0

# @iov/faucets

[![npm version](https://img.shields.io/npm/v/@iov/faucets.svg)](https://www.npmjs.com/package/@iov/faucets)

Use some Testnet faucets from JavaScript.

## Getting started

The basic usage of this package is:

```ts
import { TokenTicker } from "@iov/bcp";
import { IovFaucet } from '@iov/faucets';

const faucet = new IovFaucet("https://iov-faucet.yaknet.iov.one");
await faucet.credit(address, "IOV" as TokenTicker)
```

There is a complete example in the [@iov/cli README](https://github.com/iov-one/iov-core/blob/master/packages/iov-cli/README.md#faucet-usage).

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-faucets/](https://iov-one.github.io/iov-core-docs/latest/iov-faucets/)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/gdrive-custodian
Description: This package safely stores a mnemonic used for transaction signing on a user's GDrive.
Author: IOV SAS
Latest version: 1.4.0

## GDrive Custodian

This repository contains a signer/custodian for safely storing private keys in a web application. It stores the private key in the GDrive of a user via the file metadata.

It also uses 2 sandboxed iframes to actually access the sensitive data. The user program that wishes to use this would just include it in their project and call a function to attach a click listener to a button. Upon clicking this button a google signin flow starts and within it the user creates a new mnemonic or the application loads the one that they already own in their GDrive and initializes a signer with it.

The application will be listening to state change events and ultimately be able to create another flow through which it can send transactions to signer for it to sign them and then send these to the blockchain afterwards.
npm package: @iov/jsonrpc
Description: Framework for implementing a JSON-RPC 2.0 API
Author: IOV SAS
Latest version: 2.5.0

# @iov/jsonrpc

[![npm version](https://img.shields.io/npm/v/@iov/jsonrpc.svg)](https://www.npmjs.com/package/@iov/jsonrpc)

This package provides a light framework for implementing a [JSON-RPC 2.0 API](https://www.jsonrpc.org/specification).

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/keycontrol
Description: Keyrings and Keycontroller for safe cryptography
Latest version: 2.5.0

# @iov/keycontrol

[![npm version](https://img.shields.io/npm/v/@iov/keycontrol.svg)](https://www.npmjs.com/package/@iov/keycontrol)

Keycontrol manages all private keys and keeps them safe.

![KeyBase Diagram](https://raw.githubusercontent.com/iov-one/iov-core/master/docs/KeyBaseDiagram.png)

Please stick to using the
[public API](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/classes/userprofile.html)
even if you are importing from JavaScript, where `private` is not enforced.

## Getting started

Please see the following documents for how to get started using the
`@iov/keycontrol` classes:

1. [@iov/multichain README](https://github.com/iov-one/iov-core/tree/master/packages/iov-multichain/README.md)
2. [@iov/cli README](https://github.com/iov-one/iov-core/tree/master/packages/iov-cli/README.md)

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/)

As you see above, everything goes through the
[UserProfile](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/classes/userprofile.html),
which is the main entry point into this package.

The main wallet types you can add are

- [Ed25519Wallet](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/classes/ed25519wallet.html),
  which stores arbitrary Ed25519 keypairs.
- [Ed25519HdWallet](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/classes/ed25519hdwallet.html),
  which generates HD keys à la SLIP-0010 (BIP-0032), with an arbitrary path (not
  chain-dependent).
- [LedgerSimpleAddressWallet](https://iov-one.github.io/iov-core-docs/latest/iov-ledger-bns/classes/ledgersimpleaddresswallet.html)
  which allows you to connect to a Ledger device for signing BNS transaction.

## HD derivation paths

Ed25519HdWallet and Secp256k1HdWallet use SLIP-0010 HD key derivation. The class
[HdPaths](https://iov-one.github.io/iov-core-docs/latest/iov-keycontrol/classes/hdpaths.html)
can be used to generate derivation paths.

| Coin     | Derivation path for<br>account index `a = 0,1,…` | Code                     |
| -------- | ------------------------------------------------ | ------------------------ |
| IOV      | `m/44'/234'/a'`                                  | `HdPaths.iov(a)`         |
| Ethereum | `m/44'/60'/0'/0/a`                               | `HdPaths.ethereum(a)`    |
| Lisk     | `m/44'/134'/a'`                                  | `HdPaths.bip44(134, a)`  |
| RISE     | `m/44'/1120'/a'`                                 | `HdPaths.bip44(1120, a)` |
| Stellar  | `m/44'/148'/a'`                                  | `HdPaths.bip44(148, a)`  |

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/ledger-bns
Description: Integration of ledger-cosmos-1 application
Author: IOV SAS
Latest version: 2.0.1
Deprecated: Please use @iov/ledger-iovns.

# @iov/ledger-bns

[![npm version](https://img.shields.io/npm/v/@iov/ledger-bns.svg)](https://www.npmjs.com/package/@iov/ledger-bns)

This package provides an adaptor to use the IOV Ledger app as a wallet.

It should also demonstrate how to implement an additional Wallet outside of @iov/keycontrol
that can be dynamically loaded by any app in initialization.

## Getting started

Create a wallet for signing with a Ledger.  All further functionality is provided by the `UserProfile`.

```ts
import { UserProfile } from "@iov/core";
import { IovLedgerWallet } from "@iov/ledger-bns";

const profile = new UserProfile();
profile.addWallet(new IovLedgerWallet());
```

## API Documentation

Docs are not published at the moment. To generate them locally run

```
$ yarn install
$ yarn docs
```

and check the `./docs` folder.

## License

Copyright 2018-2020 IOV SAS

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
npm package: @iov/ledger-iovns
Description: Integration of ledger-cosmos-1 application
Author: IOV SAS
Latest version: 2.1.1

# @iov/ledger-bns

[![npm version](https://img.shields.io/npm/v/@iov/ledger-iovns.svg)](https://www.npmjs.com/package/@iov/ledger-iovns)

This package provides an adaptor to use the IOV Ledger app as a wallet.

It should also demonstrate how to implement an additional Wallet outside of @iov/keycontrol
that can be dynamically loaded by any app in initialization.

## Getting started

Create a wallet for signing with a Ledger.  All further functionality is provided by the `UserProfile`.

```ts
import { UserProfile } from "@iov/core";
import { IovLedgerWallet } from "@iov/ledger-iovns";

const profile = new UserProfile();
profile.addWallet(new IovLedgerWallet());
```

## API Documentation

Docs are not published at the moment. To generate them locally run

```
$ yarn install
$ yarn docs
```

and check the `./docs` folder.

## License

Copyright 2018-2020 IOV SAS

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
npm package: @iov/query-starnames
Description: Client package to query starnames
Author: Jatin Sarda
Latest version: 1.0.8

# @iov/query-starnames [![npm version](https://img.shields.io/npm/v/@iov/query-starnames.svg?style=flat-square)](https://www.npmjs.com/package/@iov/query-starnames)  

Client package to query starnames

## Installation  

```bash
yarn add @iov/query-starnames
```

## Usage  

```ts
import { StarnameQueryClient } from "query-starnames";

const client = new StarnameQueryClient("LCD_ENDPOINT here");

client.getAccountInfo()
```
npm package: @iov/socket
Description: Utility functions for working with WebSockets
Author: IOV SAS
Latest version: 2.3.2

# @iov/socket

[![npm version](https://img.shields.io/npm/v/@iov/socket.svg)](https://www.npmjs.com/package/@iov/socket)

@iov/socket are some helper methods and classes for working with WebSockets.

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/starname-npm
Description: Client library for Starname blockchain.
Author: IOV SAS
Latest version: 1.1.2

# @iov/starname-npm [![npm version](https://img.shields.io/npm/v/@iov/starname-npm.svg?style=flat-square)](https://www.npmjs.com/package/@iov/starname-npm)

Client library for Starname blockchain.

Packs in a [StarnameClient](/src/starnameClient/index.ts) class that can be used to interact with the Starname blockchain and a [Wallet](/src/wallet.ts) class that can be used to sign transactions.

## Installation

```bash
yarn add @iov/starname-npm
```

## Initialization

```ts
import { SeedPhraseSigner, StarnameClient, Wallet } from "@iov/starname-npm";

const client = await StarnameClient.createConnected(rpcUrl, apiUrl, ...);
// Now for creating a wallet you need a signer
// Lets create and use a mnemonic/seed-phrase signer
const signer = new SeedPhraseSigner();
// Now we need to initialize this signer
// Every signer implementing the Signer interface needs to be initialized
// This is where the signer will be asked to provide authorization for the wallet
// Here we are using random method which can auto generate a random seed phrase
await signer.initializeRandom();
const wallet = new Wallet(signer, starnameClient);
// Our wallet is ready to perform transactions
```

## Usage

Now that we have a client and a wallet...  
We can use our client to (For eg.) resolve a starname.

```ts
const task = client.resolveStarname("alice*iov");
task.run().then((result) => {
  console.log(result);
});
```

And can use our wallet instance to sign and broadcast transactions.

```ts
const result = await wallet.registerDomain("helloworld");
```

For more info you can check out [this](/src/starnameClient/stargate.spec.ts).

Also check out [@iov/wallet-providers](https://github.com/iov-one/wallet-providers) if you are planning on building a web application.
npm package: @iov/stream
Description: Utility functions for producing and consuming Streams
Author: IOV SAS
Latest version: 2.3.2

# @iov/stream

[![npm version](https://img.shields.io/npm/v/@iov/stream.svg)](https://www.npmjs.com/package/@iov/stream)

@iov/stream are some helper methods and classes to ceal with stream processing.
As BCP's `BlockchainConnection` exposes a Stream based event API, and
tendermint/RpcClient exposes Stream based subscriptions, there is common useful
functionality for creating and consuming streams both in applications as well as
in the test code.

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/tendermint-types
Description: Types for the communication with tendermint
Author: IOV SAS
Latest version: 0.8.0
Deprecated: Discontinued. Renamed to @iov/base-types starting from IOV-Core 0.9.0

# @iov/tendermint-types

[![npm version](https://img.shields.io/npm/v/@iov/tendermint-types.svg)](https://www.npmjs.com/package/@iov/tendermint-types)

@iov/tendermint-types is a set of types needed to define the @iov/tendermint-rpc, and likely many other
blockchain rpc adapters (so we may need to change it's name). It is relatively low-level, sticking with
the types on the wire, while [@iov/bcp-types](../iov-bcp-types) deals with higher-level constructs for the bcp api.

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-tendermint-types/](https://iov-one.github.io/iov-core-docs/latest/iov-tendermint-types/)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/testing
Description: Developer tools for testing code
Author: IOV SAS
Latest version: 2.0.0-alpha.3
Deprecated: Unmaintained. This was renamed to @iov/utils.

# @iov/testing

[![npm version](https://img.shields.io/npm/v/@iov/testing.svg)](https://www.npmjs.com/package/@iov/testing)

Tools for testing code. This package should only appear in `devDependencies`, not `dependencies`.

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-testing/](https://iov-one.github.io/iov-core-docs/latest/iov-testing/)

## License

This package is part of the IOV-Core repository, licensed under the Apache License 2.0
(see [NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and [LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).
npm package: @iov/utils
Description: Utility tools, primarily for testing code
Author: IOV SAS
Latest version: 2.5.0

# @iov/utils

[![npm version](https://img.shields.io/npm/v/@iov/utils.svg)](https://www.npmjs.com/package/@iov/utils)

Utility functions independent of IOV's applications. Primarily used for testing
but stuff like `sleep` can also be useful at runtime.

## API Documentation

[https://iov-one.github.io/iov-core-docs/latest/iov-utils/](https://iov-one.github.io/iov-core-docs/latest/iov-utils/)

## License

This package is part of the IOV-Core repository, licensed under the Apache
License 2.0 (see
[NOTICE](https://github.com/iov-one/iov-core/blob/master/NOTICE) and
[LICENSE](https://github.com/iov-one/iov-core/blob/master/LICENSE)).