# @safe-global/protocol-kit

> SDK that facilitates the interaction with Safe Smart Accounts

Latest version **8.0.7** (published 2026-09-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install @safe-global/protocol-kit
pnpm add @safe-global/protocol-kit
yarn add @safe-global/protocol-kit
bun add @safe-global/protocol-kit
```

## Health

**Score 70/100 (B)** — status: active.

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

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 8.0.7 |
| Published | 2026-09-08 |
| First published | 2023-04-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 6 |
| Unpacked size | 1.3 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 324 |
| Author | Safe |
| Maintainers | dasanra, zalens02, akshay-ap, yagopv |
| Keywords | Ethereum, Wallet, Safe, Smart Account, SDK |

## Links

- npm: https://www.npmjs.com/package/@safe-global/protocol-kit
- Repository: https://github.com/safe-global/safe-core-sdk
- Homepage: https://github.com/safe-global/safe-core-sdk#readme
- Issues: https://github.com/safe-global/safe-core-sdk/issues
- npm.io page: https://npm.io/package/@safe-global/protocol-kit

## Dependencies (6)

- [viem](https://npm.io/package/viem.md) ^2.52.2
- [semver](https://npm.io/package/semver.md) ^7.8.0
- [abitype](https://npm.io/package/abitype.md) ^1.2.3
- [@safe-global/types-kit](https://npm.io/package/@safe-global/types-kit.md) ^4.0.1
- [@safe-global/safe-deployments](https://npm.io/package/@safe-global/safe-deployments.md) ^1.37.63
- [@safe-global/safe-modules-deployments](https://npm.io/package/@safe-global/safe-modules-deployments.md) ^3.0.10

## Recent versions

- 8.0.7 (latest) — 2026-09-08
- 5.2.27 (v5-lts) — 2026-04-17
- 4.1.7 (v4-lts) — 2025-04-08
- 6.0.0-alpha.3 (alpha) — 2025-02-18
- 8.0.6 — 2026-08-12
- 8.0.5 — 2026-08-04
- 8.0.4 — 2026-07-16
- 8.0.3 — 2026-07-09
- 8.0.2 — 2026-07-06
- 8.0.1 — 2026-06-22
- 8.0.0 — 2026-06-22
- 7.2.0 — 2026-05-26
- 7.1.0 — 2026-04-14
- 7.0.0 — 2026-03-27
- 5.2.26 — 2026-03-18
- … 85 more at https://npm.io/package/@safe-global/protocol-kit/versions

## README

# Protocol Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Fprotocol-kit.svg)](https://badge.fury.io/js/%40safe-global%2Fprotocol-kit)
[![GitHub Release](https://img.shields.io/github/release/safe-global/safe-core-sdk.svg?style=flat)](https://github.com/safe-global/safe-core-sdk/releases)
[![GitHub](https://img.shields.io/github/license/safe-global/safe-core-sdk)](https://github.com/safe-global/safe-core-sdk/blob/main/LICENSE.md)

Software development kit that facilitates the interaction with [Safe Smart Accounts](https://github.com/safe-global/safe-smart-account) using a TypeScript interface. This Kit can be used to create new Safe accounts, update the configuration of existing Safes, create and execute transactions, among other features.

## Table of contents

- [Documentation](#documentation)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Need Help or Have Questions?](#need-help-or-have-questions)
- [Contributing](#contributing)
- [License](#license)

## Documentation

Head to the [Protocol Kit docs](https://docs.safe.global/sdk/protocol-kit) to learn more about how to use this SDK.

## Installation

Install the package with yarn or npm:

```bash
yarn add @safe-global/protocol-kit
npm install @safe-global/protocol-kit
```

## Quick Start

- `provider`: You can set an EIP-1193 compatible provider or an HTTP/WebSocket RPC URL.
- `signer`: This is an optional parameter. It should be the provider's address you want to use or a private key. If not set, it will try to fetch a connected account from the provider.

Loading an already deployed Safe, using the `safeAddress` property:

```js
import Safe from '@safe-global/protocol-kit'

const protocolKit = await Safe.init({
  provider,
  signer,
  safeAddress
})
```

Initialization of an undeployed Safe using the `predictedSafe` property. Because Safes are deployed in a deterministic way, passing a `predictedSafe` will allow to initialize the SDK with the Safe configuration and use it to some extent before it's deployed:

```js
import Safe, { PredictedSafeProps } from '@safe-global/protocol-kit'

const predictedSafe: PredictedSafeProps = {
  safeAccountConfig,
  safeDeploymentConfig
}

const protocolKit = await Safe.init({
  provider,
  signer,
  predictedSafe
})
```

## Need Help or Have Questions?

If you have any doubts, questions, or need assistance, feel free to reach out! [Here you will find how to get support.](https://github.com/safe-global/safe-core-sdk/tree/main/SUPPORT.md)

## Contributing

Please read our [contribution guidelines](https://github.com/safe-global/safe-core-sdk/tree/main/CONTRIBUTING.md) before submitting any changes. We appreciate your help! 🙌

## License

This library is [released under MIT](https://github.com/safe-global/safe-core-sdk/blob/main/LICENSE.md).

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