diff --git a/docs/dapi-client-js/overview.md b/docs/dapi-client-js/overview.md
new file mode 100644
index 000000000..4d975cdf2
--- /dev/null
+++ b/docs/dapi-client-js/overview.md
@@ -0,0 +1,39 @@
+# Overview
+
+## DAPI-Client
+
+[](https://www.npmjs.com/package/@dashevo/dapi-client)
+[](https://github.com/dashevo/js-dapi-client/actions/workflows/test_and_release.yml)
+[](https://github.com/dashpay/platform/releases/latest)
+[](https://github.com/RichardLitt/standard-readme)
+
+Client library used to access Dash DAPI endpoints
+
+This library enables HTTP-based interaction with the Dash blockchain and Dash Platform via the decentralized API ([DAPI](https://github.com/dashpay/platform/tree/master/packages/dapi)) hosted on Dash masternodes.
+
+- `DAPI-Client` provides automatic server (masternode) discovery using either a default seed node or a user-supplied one
+- `DAPI-Client` maps to DAPI's [RPC](https://github.com/dashpay/platform/tree/master/packages/dapi/lib/rpcServer/commands) and [gRPC](https://github.com/dashpay/platform/tree/master/packages/dapi/lib/grpcServer/handlers) endpoints
+
+### Install
+
+### ES5/ES6 via NPM
+
+In order to use this library in Node, you will need to add it to your project as a dependency.
+
+Having [NodeJS](https://nodejs.org/) installed, just type in your terminal :
+
+```sh
+npm install @dashevo/dapi-client
+```
+
+### CDN Standalone
+
+For browser usage, you can also directly rely on unpkg :
+
+```
+
+```
+
+## Licence
+
+[MIT](https://github.com/dashevo/dapi-client/blob/master/LICENCE.md) © Dash Core Group, Inc.
\ No newline at end of file
diff --git a/docs/dapi-client-js/quick-start.md b/docs/dapi-client-js/quick-start.md
new file mode 100644
index 000000000..411e04d37
--- /dev/null
+++ b/docs/dapi-client-js/quick-start.md
@@ -0,0 +1,37 @@
+# Quick start
+
+## ES5/ES6 via NPM
+
+In order to use this library in Node, you will need to add it to your project as a dependency.
+
+Having [NodeJS](https://nodejs.org/) installed, just type in your terminal :
+
+```sh
+npm install @dashevo/dapi-client
+```
+
+## CDN Standalone
+
+For browser usage, you can also directly rely on unpkg :
+
+```
+
+```
+
+You can see an [example usage here](https://github.com/dashpay/platform/blob/master/packages/js-dapi-client/examples/web/web.usage.html) .
+
+## Initialization
+
+```js
+const DAPIClient = require('@dashevo/dapi-client');
+const client = new DAPIClient();
+
+(async () => {
+ const bestBlockHash = await client.core.getBestBlockHash();
+ console.log(bestBlockHash);
+})();
+```
+
+## Quicknotes
+
+This package allows you to fetch & send information from both the payment chain (layer 1) and the application chain (layer 2, a.k.a Platform chain).
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/broadcasttransaction.md b/docs/dapi-client-js/usage/core/broadcasttransaction.md
new file mode 100644
index 000000000..49cabc979
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/broadcasttransaction.md
@@ -0,0 +1,17 @@
+# broadcasttransaction
+
+**Usage**: `await client.core.broadcastTransaction(transaction)`
+**Description**: Allow to broadcast a valid **signed** transaction to the network.
+
+Parameters:
+
+| parameters | type | required | Description |
+| ------------------------- | ------- | ---------- | ---------------------------------------------------------------------------------------------------------------- |
+| **transaction** | Buffer | yes | A valid Buffer representation of a transaction |
+| **options** | Object | | |
+| **options.allowHighFees** | Boolean | no[=false] | As safety measure, "absurd" fees are rejected when considered to high. This allow to overwrite that comportement |
+| **options.bypassLimits** | Boolean | no[=false] | Allow to bypass default transaction policy rules limitation |
+
+Returns : transactionId (string).
+
+N.B : The TransactionID provided is subject to [transaction malleability](https://dashcore.readme.io/docs/core-guide-transactions-transaction-malleability), and is not a source of truth (the transaction might be included in a block with a different txid).
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/core.md b/docs/dapi-client-js/usage/core/core.md
new file mode 100644
index 000000000..bb7ffee96
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/core.md
@@ -0,0 +1,18 @@
+# Core
+
+```{toctree}
+:maxdepth: 2
+:titlesonly:
+
+
+broadcasttransaction
+generatetoaddress
+getbestblockhash
+getblockbyhash
+getblockbyheight
+getblockhash
+getmnlistdiff
+getstatus
+gettransaction
+subscribetotransactionswithproofs
+```
diff --git a/docs/dapi-client-js/usage/core/generatetoaddress.md b/docs/dapi-client-js/usage/core/generatetoaddress.md
new file mode 100644
index 000000000..5e94781d5
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/generatetoaddress.md
@@ -0,0 +1,15 @@
+# generatetoaddress
+
+**Usage**: `await client.core.generateToAddress(blockMumber, address, options)`
+**Description**: Allow to broadcast a valid **signed** transaction to the network.
+**Notes**: Will only works on regtest.
+
+Parameters:
+
+| parameters | type | required | Description |
+| ---------------- | ----------------- | -------- | --------------------------------------------------------- |
+| **blocksNumber** | Number | yes | A number of block to see generated on the regtest network |
+| **address** | String | yes | The address that will receive the newly generated Dash |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise\} - a set of generated blockhashes.
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/getbestblockhash.md b/docs/dapi-client-js/usage/core/getbestblockhash.md
new file mode 100644
index 000000000..7964a4203
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/getbestblockhash.md
@@ -0,0 +1,12 @@
+# getbestblockhash
+
+**Usage**: `await client.core.getBestBlockHash(options)`
+**Description**: Allow to fetch the best (highest/latest block hash) from the network
+
+Parameters:
+
+| parameters | type | required | Description |
+| ----------- | ----------------- | -------- | ----------- |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise} - The best block hash
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/getblockbyhash.md b/docs/dapi-client-js/usage/core/getblockbyhash.md
new file mode 100644
index 000000000..949f1f329
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/getblockbyhash.md
@@ -0,0 +1,13 @@
+# getblockbyhash
+
+**Usage**: `await client.core.getBlockByHash(hash, options)`
+**Description**: Allow to fetch a specific block by its hash
+
+Parameters:
+
+| parameters | type | required | Description |
+| ----------- | ----------------- | -------- | ------------------ |
+| **hash** | String | yes | A valid block hash |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise\} - The specified bufferized block
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/getblockbyheight.md b/docs/dapi-client-js/usage/core/getblockbyheight.md
new file mode 100644
index 000000000..f73d9ce8a
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/getblockbyheight.md
@@ -0,0 +1,13 @@
+# getblockbyheight
+
+**Usage**: `await client.core.getBlockByHeight(height, options)`
+**Description**: Allow to fetch a specific block by its height
+
+Parameters:
+
+| parameters | type | required | Description |
+| ----------- | ----------------- | -------- | -------------------- |
+| **height** | Number | yes | A valid block height |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise\} - The specified bufferized block
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/getblockhash.md b/docs/dapi-client-js/usage/core/getblockhash.md
new file mode 100644
index 000000000..e9aa91d47
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/getblockhash.md
@@ -0,0 +1,13 @@
+# getblockhash
+
+**Usage**: `await client.core.getBlockHash(height, options)`
+**Description**: Allow to fetch a specific block hash from its height
+
+Parameters:
+
+| parameters | type | required | Description |
+| ----------- | ----------------- | -------- | -------------------- |
+| **height** | Number | yes | A valid block height |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise\} - the corresponding block hash
\ No newline at end of file
diff --git a/docs/dapi-client-js/usage/core/getmnlistdiff.md b/docs/dapi-client-js/usage/core/getmnlistdiff.md
new file mode 100644
index 000000000..f6282e1e6
--- /dev/null
+++ b/docs/dapi-client-js/usage/core/getmnlistdiff.md
@@ -0,0 +1,14 @@
+# getmnlistdiff
+
+**Usage**: `await client.core.getMnListDiff(baseBlockHash, blockHash, options)`
+**Description**: Allow to fetch a specific block hash from its height
+
+Parameters:
+
+| parameters | type | required | Description |
+| ----------------- | ----------------- | -------- | ----------------------------- |
+| **baseBlockHash** | String | yes | hash or height of start block |
+| **blockHash** | String | yes | hash or height of end block |
+| **options** | DAPIClientOptions | no | |
+
+Returns : {Promise