# everscale-inpage-provider

> Web3-like interface to the Everscale blockchain

Latest version **0.6.6** (published 2026-02-19) · GPL-3.0 license · 0 weekly downloads

## Install

```sh
npm install everscale-inpage-provider
pnpm add everscale-inpage-provider
yarn add everscale-inpage-provider
bun add everscale-inpage-provider
```

## Health

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

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.6.6 |
| Published | 2026-02-19 |
| First published | 2022-01-22 |
| Weekly downloads | 0 |
| License | GPL-3.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 249.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 31 |
| Maintainers | odrin, rexagon |

## Links

- npm: https://www.npmjs.com/package/everscale-inpage-provider
- Repository: https://github.com/broxus/everscale-inpage-provider
- Homepage: https://github.com/broxus/everscale-inpage-provider#readme
- Issues: https://github.com/broxus/everscale-inpage-provider/issues
- npm.io page: https://npm.io/package/everscale-inpage-provider

## Recent versions

- 0.6.6 (latest) — 2026-02-19
- 0.6.2-beta.0 (beta) — 2025-08-28
- 0.6.5 — 2026-02-19
- 0.6.4 — 2026-02-19
- 0.6.3 — 2025-09-30
- 0.6.2 — 2025-08-28
- 0.6.1 — 2025-05-05
- 0.6.0 — 2025-05-02
- 0.5.2 — 2025-04-30
- 0.5.1 — 2025-04-30
- 0.5.0 — 2025-04-28
- 0.4.1 — 2025-03-11
- 0.4.1-beta.0 — 2024-12-12
- 0.4.0-beta.1 — 2024-12-12
- 0.4.0 — 2024-12-02
- … 65 more at https://npm.io/package/everscale-inpage-provider/versions

## README

<p align="center">
  <a href="https://github.com/venom-blockchain/developer-program">
    <img src="https://raw.githubusercontent.com/venom-blockchain/developer-program/main/vf-dev-program.png" alt="Logo" width="366.8" height="146.4">
  </a>
</p>

# Everscale inpage provider &emsp;  [![Latest Version]][npmjs.com] [![Docs badge]][docs]

## About

Web3-like interface to the Everscale blockchain.

## Usage

### How to install

```shell
npm install --save everscale-inpage-provider
```

> NOTE: this repo was originally used for `ton-inpage-provider` package which is DEPRECATED now.

### Contents

- [`src/api.ts`](./src/api.ts) - RPC interface description
- [`src/models.ts`](./src/models.ts) - general models, used in RPC interface
- [`src/contract.ts`](./src/contract.ts) - typed contracts wrapper
- [`src/stream.ts`](./src/stream.ts) - user-friendly api for streams
- [`src/utils.ts`](./src/utils.ts) - some useful stuff

### Example

```typescript
import {
  Address,
  ProviderRpcClient,
  TvmException
} from 'everscale-inpage-provider';

const ever = new ProviderRpcClient();

async function myApp() {
  if (!(await ever.hasProvider())) {
    throw new Error('Extension is not installed');
  }

  const { accountInteraction } = await ever.requestPermissions({
    permissions: ['basic', 'accountInteraction'],
  });
  if (accountInteraction == null) {
    throw new Error('Insufficient permissions');
  }

  const selectedAddress = accountInteraction.address;
  const dePoolAddress = new Address('0:bbcbf7eb4b6f1203ba2d4ff5375de30a5408a8130bf79f870efbcfd49ec164e9');

  const dePool = new ever.Contract(DePoolAbi, dePoolAddress);

  const transaction = await dePool
    .methods
    .addOrdinaryStake({
      stake: '10000000000',
    }).send({
      from: selectedAddress,
      amount: '10500000000',
      bounce: true,
    });
  console.log(transaction);

  try {
    const output = await dePool
      .methods
      .getParticipantInfo({
        addr: selectedAddress,
      })
      .call();
    console.log(output);
  } catch (e) {
    if (e instanceof TvmException) {
      console.error(e.code);
    }
  }
}

const DePoolAbi = {
  'ABI version': 2,
  'header': ['time', 'expire'],
  'functions': [{
    'name': 'addOrdinaryStake',
    'inputs': [
      { 'name': 'stake', 'type': 'uint64' },
    ],
    'outputs': [],
  }, {
    'name': 'getParticipantInfo',
    'inputs': [
      { 'name': 'addr', 'type': 'address' },
    ],
    'outputs': [
      { 'name': 'total', 'type': 'uint64' },
      { 'name': 'withdrawValue', 'type': 'uint64' },
      { 'name': 'reinvest', 'type': 'bool' },
      { 'name': 'reward', 'type': 'uint64' },
      { 'name': 'stakes', 'type': 'map(uint64,uint64)' },
      {
        'components': [
          { 'name': 'remainingAmount', 'type': 'uint64' },
          { 'name': 'lastWithdrawalTime', 'type': 'uint64' },
          { 'name': 'withdrawalPeriod', 'type': 'uint32' },
          { 'name': 'withdrawalValue', 'type': 'uint64' },
          { 'name': 'owner', 'type': 'address',
        }],
        'name': 'vestings', 'type': 'map(uint64,tuple)',
      },
      {
        'components': [
          { 'name': 'remainingAmount', 'type': 'uint64' },
          { 'name': 'lastWithdrawalTime', 'type': 'uint64' },
          { 'name': 'withdrawalPeriod', 'type': 'uint32' },
          { 'name': 'withdrawalValue', 'type': 'uint64' },
          { 'name': 'owner', 'type': 'address',
        }],
        'name': 'locks', 'type': 'map(uint64,tuple)',
      },
      { 'name': 'vestingDonor', 'type': 'address' },
      { 'name': 'lockDonor', 'type': 'address' },
    ],
  }],
  'data': [],
  'events': [],
} as const; // NOTE: `as const` is very important here

myApp().catch(console.error);
```

### Build

```shell
npm install

# Build as ts library
# (output will be in the `dist` folder)
npm run build

# Build as js library to use directly in <script> tags
# (output will be in the `vanilla` folder)
npm run build:vanilla
```

## Contributing

We welcome contributions to the project! If you notice any issues or errors, feel free to open an issue or submit a pull request.

## License

Licensed under GPL-3.0 license ([LICENSE](/LICENSE) or https://opensource.org/license/gpl-3-0/).

[latest version]: https://img.shields.io/npm/v/everscale-inpage-provider
[npmjs.com]: https://www.npmjs.com/package/everscale-inpage-provider
[docs badge]: https://img.shields.io/badge/docs-latest-brightgreen
[docs]: https://broxus.github.io/everscale-inpage-provider/index.html

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