# @vechain/connex

> Standard interface to connect DApp with VeChain and user

Latest version **2.3.2** (published 2026-03-23) · LGPL-3.0 license · 0 weekly downloads

## Install

```sh
npm install @vechain/connex
pnpm add @vechain/connex
yarn add @vechain/connex
bun add @vechain/connex
```

## Health

**Score 60/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.3.2 |
| Published | 2026-03-23 |
| First published | 2018-12-03 |
| Weekly downloads | 0 |
| License | LGPL-3.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 5 |
| Unpacked size | 4.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 84 |
| Author | qianbin |
| Maintainers | tony.li, agilulfo, samuelebello, lucabandini, vechain-ci, victor-vechain, doublemme |
| Keywords | connex, vechain, dapp, blockchain |

## Links

- npm: https://www.npmjs.com/package/@vechain/connex
- Repository: https://github.com/vechain/connex
- Homepage: https://github.com/vechain/connex/tree/master/packages/connex/#readme
- Issues: https://github.com/vechain/connex/issues
- npm.io page: https://npm.io/package/@vechain/connex

## Dependencies (5)

- [randombytes](https://npm.io/package/randombytes.md) ^2.1.0
- [thor-devkit](https://npm.io/package/thor-devkit.md) ^2.2.0
- [@vechain/connex-types](https://npm.io/package/@vechain/connex-types.md) ^2.2.1
- [@vechain/connex-driver](https://npm.io/package/@vechain/connex-driver.md) ^2.3.2
- [@vechain/connex-framework](https://npm.io/package/@vechain/connex-framework.md) ^2.3.2

## Recent versions

- 2.3.2 (latest) — 2026-03-23
- 2.0.0-beta.42 (beta) — 2021-01-20
- 2.3.1 — 2026-03-23
- 2.3.0 — 2026-03-23
- 2.2.1 — 2025-05-23
- 2.2.0 — 2025-05-16
- 2.1.0 — 2023-09-14
- 2.0.14 — 2022-12-21
- 2.0.13 — 2022-12-19
- 2.0.12 — 2022-12-15
- 2.0.11 — 2022-06-24
- 2.0.10 — 2022-05-05
- 2.0.9 — 2021-12-24
- 2.0.8 — 2021-12-24
- 2.0.7 — 2021-11-26
- … 72 more at https://npm.io/package/@vechain/connex/versions

## README

# Connex

[![npm version](https://badge.fury.io/js/%40vechain%2Fconnex.svg)](https://badge.fury.io/js/%40vechain%2Fconnex)

The out of the box Connex implementation for **browser**.

## ⚠️ Repository Notice: End-of-Life (EOL)

**This repository now has reached its end-of-life (EOL).** We have transitioned to brand new and comprehensive [VeChain SDK](https://github.com/vechain/vechain-sdk-js) that will continue to receive updates, support, and new features.

For any further questions or migration guidance, please reach out using our [support portal](https://support.vechain.org/support/home).

## Installation

### Include in `<script>` tag

Just include the CDN link within a script tag. `Connex` will then be registered as a global variable.

```html
<!-- install the latest v2 -->
<script src="https://unpkg.com/@vechain/connex@2" />
```

### NPM

It's recommended for larger projects.

```sh
npm i @vechain/connex
```

```ts
import Connex from '@vechain/connex'
```

## Get Started

Connex was composed with two parts, `Connex.Thor` and `Connex.Vendor`, the former is the blockchain access layer, the latter is the vendor(signer) specific layer.

### Create Thor 

Connects to **mainnet**.

``` ts
const thor = new Connex.Thor({
    node: 'https://mainnet.veblocks.net/', // veblocks public node, use your own if needed
    network: 'main' // defaults to mainnet, so it can be omitted here
})
```

Connects to **testnet**.

``` ts
const thor = new Connex.Thor({
    node: 'https://testnet.veblocks.net/',
    network: 'test'
})
```

Or connect to a *private network*

```ts
const thor = new Connex.Thor({
    node: '<the API url of your node>',
    // the genesis block of your private network
    network: {
        id: '0x...',
        ...
    }
})
```

### Create Vendor

Vendor module handles user's signing requests. It's designed to be pluggable, so you can use your own vendor module, or use the built-in vendor module. For example, ['Buy me a coffee'](https://codepen.io/qianbin/pen/YzGBeOB) is a classic demo for a vendor only app.

```ts
/**
 * @param network 'main' or 'test' or genesis ID if it's private network
 * @param signer 'sync2' or 'sync'(sync and vechainthor mobile wallet), 'sync2' will be used if omitted
 */

// will throw error if signer is not supported.
const vendor = new Connex.Vendor('main'， 'sync2') // create a sync2 vendor for mainnet
const vendor = new Connex.Vendor('test'， 'sync')  // sync or vechainthor mobile wallet
```

**Wallets:**

- [Sync2](https://sync.vecha.in/) - Option `sync2`
- [Sync](https://env.vechain.org/#sync) - Option `sync`
- [VeChainThor Wallet](https://env.vechain.org/#thor-wallet) - Option `sync`

### Create Full Connex

```ts
const connex = new Connex({
    node: 'https://mainnet.veblocks.net/',
    network: 'main',
    signer: 'sync2'
})

// read best block
const best = await connex.thor.block().get()
// sign a transaction
const res = await connex.vendor.sign('tx', [{
    to: '0x...',
    value: 0x0,
    data: '0x...'
}]).request()
// composed by thor and vendor
const {thor, vendor} = connex
```

## Note for Node.js

This package, **@vechain/connex** is designed only work in the browser, if you are interested in running it in Node.js, try [@vechain/connex-framework](https://github.com/vechain/connex/tree/master/packages/framework).

## License

This package is licensed under the
[GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.html), also included in *LICENSE* file in the repository.

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