# dYdX Chain Client for Javascript

The v4-Client Typescript client is used for placing transactions and querying the dYdX chain.&#x20;

### Repository: [v4-client-js](https://github.com/dydxprotocol/v4-clients/tree/main/v4-client-js)

***

## Development

`v4-client-js` uses node `v18` for development. You can use `nvm` to manage different versions of node.

```
nvm install
nvm use
nvm alias default $(nvm version) # optional
```

You can run the following commands to ensure that you are running the correct `node` and `npm` versions.

```
node -v # expected: v18.x.x (should match .nvmrc)
npm -v  # expected: 8.x.x
```

***

## Single-JS for mobile apps

Mobile apps needs to load JS as a single JS file. To build, run

```
npm run webpack
```

The file is generated in **native**/**ios**/v4-native-client.js Pending: Different configurations may be needed to generate JS for Android app

***

## Release

Using the `npm version` command will update the appropriate version tags within the package locks and also will add a git tag with the version number.. For example `npm version minor` will perform the necessary changes for a minor version release. After the change is merged, a GitHub action will [publish](https://github.com/dydxprotocol/v4-clients/blob/master/.github/workflows/js-publish.yml) the new release.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dydx.community/dydx-chain-technical-docs/getting-started/developer-tools/dydx-chain-client-for-javascript.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
