# multichain-node

> A wrapper for the Multichain JSON-RPC api that parses your input.

Latest version **2.2.0-version1.0.4** (published 2018-05-01) · ISC license · 0 weekly downloads

## Install

```sh
npm install multichain-node
pnpm add multichain-node
yarn add multichain-node
bun add multichain-node
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.2.0-version1.0.4 |
| Published | 2018-05-01 |
| First published | 2016-02-24 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 34.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 72 |
| Author | Greg Piccolo |
| Maintainers | scoin |
| Keywords | blockchain, multichain, bitcoin, rpc |

## Links

- npm: https://www.npmjs.com/package/multichain-node
- Repository: https://github.com/scoin/multichain-node
- Homepage: https://github.com/scoin/multichain-node#readme
- Issues: https://github.com/scoin/multichain-node/issues
- npm.io page: https://npm.io/package/multichain-node

## Recent versions

- 2.2.0-version1.0.4 (latest) — 2018-05-01
- 2.1.6-version1.0.2 — 2017-11-18
- 2.1.5-version1.0.2 — 2017-11-18
- 2.1.1-version1.0-beta1 — 2017-05-06
- 2.1.0-version1.0-beta1 — 2017-05-06
- 2.0.1-alpha24 — 2016-09-28
- 2.0.0-alpha24 — 2016-09-20
- 1.8.1 — 2016-08-10
- 1.8.0 — 2016-07-21
- 1.7.0 — 2016-05-16
- 1.6.0 — 2016-05-16
- 1.5.0 — 2016-04-07
- 1.4.1 — 2016-03-04
- 1.4.0 — 2016-03-04
- 1.0.6 — 2016-02-27
- … 9 more at https://npm.io/package/multichain-node/versions

## README

A native Javascript client built for Multichain and Bitcoin
---------------------------------------------------

Note: The current version is compatible with Multichain 1.0.x. For previous versions of Multichain that may be incompatible, see [Releases](https://github.com/scoin/multichain-node/releases).

All methods from the [Multichain API spec](http://www.multichain.com/developers/json-rpc-api/) are available. This library does not currently contain all bitcoind commands that are not part of the Multichain API spec, and as such is not really suitable for use with bitcoind. If you would like to add these commands, please submit a pull request with tests.

See [commands.js](https://github.com/scoin/multichain-node/blob/development/lib/commands.js) for all methods and their required / optional parameters. 

### Parser

The library includes a parser so you can pass an unordered object containing the parameters and omit any optional parameters you want, as seen in the examples below. 

You may also pass an ordered array of commands like you would for any JSON RPC client that will not be parsed.

### Promises

All commands can be supplied a callback. If a callback is not supplied, a native Promise will be returned.

### SSL

SSL is supported. Pass your connection parameters as you would to the [core HTTPS library](https://nodejs.org/api/https.html#https_https_globalagent).

### Usage

To use in your project:

```
npm install multichain-node --save
```

To run the tests:

Make sure you have multichain installed, so that `multichaind` and `multichain-util` are on your path.

```
git clone <the repo>
npm install
npm test
```

### Examples:

Many more examples in `test.js`, but here's some basics:
       
```javascript 
let multichain = require("multichain-node")({
    port: 6282,
    host: '127.0.0.1',
    user: "multichainrpc",
    pass: "somepass"
});

multichain.getInfo((err, info) => {
    if(err){
        throw err;
    }
    console.log(info);
})

multichain.issue({address: someAddress, asset: "zcoin", qty: 50000, units: 0.01, details: {hello: "world"}}, (err, res) => {
    console.log(res)
})

multichain.sendAssetFrom({from: someAddress, to: someOtherAddress, asset: "zcoin", qty: 5}, (err, tx) => {
    console.log(tx);
})

multichain.getAddresses((err, addresses) => {

    multichain.createMultiSig({nrequired: 2, keys: addresses}, (err, wallet) => {
        console.log(wallet)
    })
    
})

multichain.getRawTransaction({txid: someTxId}, (err, tx) => {

    multichain.decodeRawTransaction({"hexstring": tx}, (err, dTx) => {
        console.log(dTx)
    })
})


```
### Tests

All commands are tested. To run the tests, pull the repo and make sure multichaind and multichain-util are on your path.

From inside the directory, run `npm test`.

---
_Source: https://npm.io/package/multichain-node · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
