open-index/open-npm huggingface dataset:
npm package: @safe-angular/http
Description: This library is part of the `safe-angular` project and provides HTTP utilities and services to simplify HTTP requests within Angular applications.
Latest version: 0.3.0


# Safe Angular HTTP Library

This library is part of the `safe-angular` project and provides HTTP utilities and services to simplify HTTP requests within Angular applications.

## Features

- Provides an HTTP client wrapper for easier request handling.
- Optimized for Angular and TypeScript.
- Built-in support for error handling, interceptors, and more.

## Installation

Install the library:

```bash
npm install @safe-angular/http
```

## Usage

Import the `HttpService` in your Angular services or components:

```ts
@Injectable()
@HostUrl('https://jsonplaceholder.typicode.com')
@RestClient('posts')
export class CommonApi extends ApiHttpClient {
    @Get('1')
    public testGet(): Observable<object> {
        return this.restTemplate();
    }
}

```

## Configuration

You can configure interceptors, headers, and other options within your Angular app's HTTP module:

```ts
export const appConfig: ApplicationConfig = {
    providers: [
        provideZoneChangeDetection({ eventCoalescing: true }),
        provideRouter(appRoutes),
        provideHttpClient(),
        provideApiClientModule([CommonApi], {
            hostUrl: 'http://localhost:4200',
            emitFailure: true,
            emitSuccess: true,
        }),
    ],
};
```

## License

This project is licensed under the MIT License.
npm package: @safe-angular/prettier-config
Description: This library contains a shareable Prettier configuration for the `safe-angular` project. It ensures consistent code formatting across the project.
Latest version: 0.3.0


# Safe Angular Prettier Config

This library contains a shareable Prettier configuration for the `safe-angular` project. It ensures consistent code formatting across the project.

## Features

- Preconfigured for Angular and TypeScript projects.
- Enforces a consistent code style.
- Easy to integrate into team workflows.

## Installation

Install the config and peer dependencies:

```bash
npm install --save-dev @safe-angular/prettier-config
```

## Usage

In your project's `prettier.config.js`, extend the configuration:

```js
import { prettierConfig } from '@safe-angular/prettier-config/index.js';
export default { ...prettierConfig };
```

## License

This project is licensed under the MIT License.
npm package: @safe-ds/cli
Description: A command line interface for the Safe-DS DSL.
Author: Lars Reimann
Latest version: 0.24.0

# Safe-DS CLI

Command-line tooling for the [Safe-DS](https://github.com/Safe-DS/DSL) programming language for safe data science.

```txt
Usage: cli [options] [command]

Options:
  -V, --version                  output the version number
  -h, --help                     display help for command

Commands:
  check [options] <paths...>     check Safe-DS code
  document [options] <paths...>  generate Markdown documentation
  format <paths...>              format Safe-DS code
  generate [options] <paths...>  generate Python code
  help [command]                 display help for command
```
npm package: @safe-fullpage/react
Description: ---
Author: Justin Seo
Latest version: 1.0.0

# Safe-fullpage

---

Simple library to let you build page with basic fullpage animation easily with fully mobile compatibilty.

For the ones who don't want to read docs but peek the taste of fullpage.

## Note

For the **🐖lazy devs🐖**, just remember **ONE THING**

1. only one **FullpageContainer** per page.

## Contribution

Any suggestions and PRs are welcomed.

Any of your suggestion or idea or criticizings or any advises would help me a lot.

I'll be glad to hear it.

## Installing

React.js

```
pnpm install @safe-fullpage/react
```

Vanilla.js

```
pnpm install @safe-fullpage/vanilla
```

## Usage

### Vanilla

```
/*  index.html */
<body>
    <safe-fullpage-container>
      <safe-fullpage-element>
        <div class="d1"></div>
      </safe-fullpage-element>
      <safe-fullpage-element>
        <div class="d2"></div>
      </safe-fullpage-element>
      <safe-fullpage-element>
        <div class="d3"></div>
      </safe-fullpage-element>
    </safe-fullpage-container>
    <script type="module" src="/src/main.ts"></script>
</body>
```

```
/*  main.ts */
import '@safe-fullpage/vanilla'
```

### React

```
import { FullpageContainer , FullpageElement } from '@safe-fullpage/react'

const Page = () => {

  return (
    <FullpageContainer>
      <FullpageElement>{/* element */}</FullpageElement>
      <FullpageElement>{/* element */}</FullpageElement>
      <FullpageElement>{/* element */}</FullpageElement>
    </FullpageContainer>
  )
}
```

## Interface

#### FullpageContainer

- ###### **enableKeydown**

  **type** : boolean

  **default** : false

  **description**: enables triggering fullpage animation via keydown

---

- ###### **scrollDelay**

  **type** : number

  **default** : 1500

  **description**: minimum time interval between each animation

---

- ###### **touchMovementThreshold**

  **type** : number

  **default** : 20

  **description**: minimum pan movement to trigger animation ( usally for mobile devices )

---

- ###### **duration**

  **type** : number

  **default** : 900

  **description**: time taken to transition for each animation

---

- ###### **timingMethod**

  **type** : "ease" | "ease-in" | "linear" | "ease-in-out" | "ease-out";

  **default** : "ease"

  **description**: timing function, which will describe how the transition will be held

---

#### FullpageElement

- ###### **elementType**

  **type** : "content" | "footer;

  **default** : "content"

  **description**: Describe how scolling should be handled for current element.

  \_ **content** : Position current element to stick to bottom of viewport

  \_ **footer** : Position current element to stick to top of viewport

  ⚠️Warning⚠️) Do not use 'footer' unless its not literally at the end of FullpageElement List.

---

## License

MIT
npm package: @safe-fullpage/vanilla
Description: ---
Author: Justin Seo
Latest version: 1.0.0

# Safe-fullpage

---

Simple library to let you build page with basic fullpage animation easily with fully mobile compatibilty.

For the ones who don't want to read docs but peek the taste of fullpage.

## Note

For the **🐖lazy devs🐖**, just remember **ONE THING**

1. only one **FullpageContainer** per page.

## Contribution

Any suggestions and PRs are welcomed.

Any of your suggestion or idea or criticizings or any advises would help me a lot.

I'll be glad to hear it.

## Installing

React.js

```
pnpm install @safe-fullpage/react
```

Vanilla.js

```
pnpm install @safe-fullpage/vanilla
```

## Usage

### Vanilla

```
/*  index.html */
<body>
    <safe-fullpage-container>
      <safe-fullpage-element>
        <div class="d1"></div>
      </safe-fullpage-element>
      <safe-fullpage-element>
        <div class="d2"></div>
      </safe-fullpage-element>
      <safe-fullpage-element>
        <div class="d3"></div>
      </safe-fullpage-element>
    </safe-fullpage-container>
    <script type="module" src="/src/main.ts"></script>
</body>
```

```
/*  main.ts */
import '@safe-fullpage/vanilla'
```

### React

```
import { FullpageContainer , FullpageElement } from '@safe-fullpage/react'

const Page = () => {

  return (
    <FullpageContainer>
      <FullpageElement>{/* element */}</FullpageElement>
      <FullpageElement>{/* element */}</FullpageElement>
      <FullpageElement>{/* element */}</FullpageElement>
    </FullpageContainer>
  )
}
```

## Interface

#### FullpageContainer

- ###### **enableKeydown**

  **type** : boolean

  **default** : false

  **description**: enables triggering fullpage animation via keydown

---

- ###### **scrollDelay**

  **type** : number

  **default** : 1500

  **description**: minimum time interval between each animation

---

- ###### **touchMovementThreshold**

  **type** : number

  **default** : 20

  **description**: minimum pan movement to trigger animation ( usally for mobile devices )

---

- ###### **duration**

  **type** : number

  **default** : 900

  **description**: time taken to transition for each animation

---

- ###### **timingMethod**

  **type** : "ease" | "ease-in" | "linear" | "ease-in-out" | "ease-out";

  **default** : "ease"

  **description**: timing function, which will describe how the transition will be held

---

#### FullpageElement

- ###### **elementType**

  **type** : "content" | "footer;

  **default** : "content"

  **description**: Describe how scolling should be handled for current element.

  \_ **content** : Position current element to stick to bottom of viewport

  \_ **footer** : Position current element to stick to top of viewport

  ⚠️Warning⚠️) Do not use 'footer' unless its not literally at the end of FullpageElement List.

---

## License

MIT
npm package: @safe-global/api-kit
Description: SDK that facilitates the interaction with the Safe Transaction Service API
Author: Safe
Latest version: 4.1.0

# Safe API Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Fapi-kit.svg)](https://badge.fury.io/js/%40safe-global%2Fapi-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 the [Safe Transaction Service API](https://github.com/safe-global/safe-transaction-service), allowing to propose and share transactions with the other signers of a Safe, sending the signatures to the service to collect them, getting information about a Safe (like reading the transaction history, pending transactions, enabled Modules and Guards, etc.), 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 [API Kit docs](https://docs.safe.global/sdk/api-kit) to learn more about how to use this SDK.

## Installation

Install the package with yarn or npm:

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

## Quick Start

```js
import SafeApiKit from '@safe-global/api-kit'

const apiKit = new SafeApiKit({
  chainId: 1n,
  // Optional. txServiceUrl must be used to set a custom service. For example on chains where Safe doesn't run services.
  txServiceUrl: 'https://safe-transaction-mainnet.safe.global'
})
```

## 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).
npm package: @safe-global/auth-kit
Description: Authentication library for web2 logins
Author: Safe
Latest version: 2.0.8
Deprecated: WARNING: This package has been deprecated. Please, use direct integrations with auth services instead. You can find some examples that work with Safe in https://docs.safe.global/sdk/signers

# Auth Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Fauth-kit.svg)](https://badge.fury.io/js/%40safe-global%2Fauth-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)

The Auth Kit provides a way to authenticate blockchain accounts using email addresses, social accounts or traditional web3 wallets (ex. Metamask). When using web2 methods as your email or social account, a derived Ethereum address will be generated.

## Documentation

- [Auth Kit integration guides](https://docs.safe.global/sdk/auth-kit)

- [Auth Kit reference](https://docs.safe.global/sdk/auth-kit/reference)

## Example

[Check a functional demo](https://github.com/safe-global/safe-core-sdk/tree/main/packages/auth-kit/example) using the `auth-kit`

## 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).
npm package: @safe-global/cra-template-safe-app
Description: Safe App Starter
Author: Safe
Latest version: 5.0.0
Deprecated: WARNING: This package is no longer supported, create-react-app is deprecated https://react.dev/blog/2025/02/14/sunsetting-create-react-app

# Safe App React Template

This [CRA template](https://create-react-app.dev/docs/custom-templates/) provides an easy start to the Safe App development. 

## Getting started

- Create a new React app using this template
  - `npx create-react-app my-safe-app --template @safe-global/cra-template-safe-app`
- Open your new app
  - `cd my-safe-app`
- Follow the [README](template/README.md) of your Safe app


## Credits

Based on a starter app written by Kris Urbas ([@krzysu](https://twitter.com/krzysu)).

## License

The code in this repository is available under the MIT License.
npm package: @safe-global/onramp-kit
Description: Onramp library
Author: Safe
Latest version: 3.0.8
Deprecated: WARNING: This package has been deprecated. Please, use direct integrations with onramp services instead. You can find some examples that work with Safe in https://docs.safe.global/sdk/onramp

# Onramp Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Fonramp-kit.svg)](https://badge.fury.io/js/%40safe-global%2Fonramp-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)

The Onramp Kit allows users to buy cryptocurrencies using a credit card and other payment options.

## Documentation

- [Onramp Kit integration guides](https://docs.safe.global/sdk/onramp-kit)

- [Onramp Kit reference](https://docs.safe.global/sdk/onramp-kit/reference)

## Example

[Check a functional demo](https://github.com/safe-global/safe-core-sdk/tree/main/packages/onramp-kit/example) using the `onramp-kit`

## 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).
npm package: @safe-global/protocol-kit
Description: SDK that facilitates the interaction with Safe Smart Accounts
Author: Safe
Latest version: 7.0.0

# 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).
npm package: @safe-global/relay-kit
Description: SDK for Safe Smart Accounts with support for ERC-4337 and Relay
Author: Safe
Latest version: 5.0.0

# Relay Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Frelay-kit.svg)](https://badge.fury.io/js/%40safe-global%2Frelay-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)

The Relay Kit enables ERC-4337 with Safe and allows users to pay for the transaction fees from their Safe account balance using the blockchain native token or ERC-20 tokens, or to get their transactions sponsored.

## Table of contents

- [Documentation](#documentation)
- [Need Help or Have Questions?](#need-help-or-have-questions)
- [Contributing](#contributing)
- [License](#license)

## Documentation

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

## 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).
npm package: @safe-global/safe-apps-provider
Description: A provider wrapper of Safe Apps SDK
Author: Safe
Latest version: 0.18.6

# Safe Apps Provider

[![npm](https://img.shields.io/npm/v/@safe-global/safe-apps-provider)](https://www.npmjs.com/package/@safe-global/safe-apps-provider)

This is a provider that follows common standards (e.g. [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193)) and can be used with various Web3 libraries (e.g. web3.js or Ethers)

### How to use

- Add npm package

```bash
yarn add @safe-global/safe-apps-provider

npm i @safe-global/safe-apps-provider
```

### SafeAppProvider

The provider can be used with the [safe-apps-react-sdk](https://github.com/safe-global/safe-apps-sdk/tree/main/packages/safe-apps-react-sdk) and common web3 libraries.

#### With Ethers.js

- [Ethers.js](https://docs.ethers.io/v5/api/providers/other/#Web3Provider)

```js
import React, { useMemo } from 'react';
import { ethers } from 'ethers';
import { useSafeAppsSDK } from '@safe-global/safe-apps-react-sdk';
import { SafeAppProvider } from '@safe-global/safe-apps-provider';

const App = () => {
  const { sdk, safe } = useSafeAppsSDK();
  const web3Provider = useMemo(() => new ethers.providers.Web3Provider(new SafeAppProvider(safe, sdk)), [sdk, safe]);

  // use provider with contracts

  return;
};

export default App;
```

#### With web3.js

- [web3.js](https://web3js.readthedocs.io/en/v1.5.2/web3.html)

```js
import React, { useMemo } from 'react';
import Web3 from 'web3';
import { useSafeAppsSDK } from '@safe-global/safe-apps-react-sdk';
import { SafeAppProvider } from '@safe-global/safe-apps-provider';

const App = () => {
  const { sdk, safe } = useSafeAppsSDK();
  const web3Provider = useMemo(() => new Web3(new SafeAppProvider(safe, sdk)), [sdk, safe]);

  // use provider with contracts

  return;
};

export default App;
```

### A note on gas limit
The ethereum transaction gas limit passed to the safe-apps-provider will be treated as safeTxGas, which is an equivalent of the ethereum transaction gas limit in the Safe context. To learn more about the safe transaction gas, read here:  
https://github.com/safe-global/safe-contracts/blob/c36bcab46578a442862d043e12a83fec41143dec/docs/safe_tx_gas.md  

If you don't want to pass a calculation and leave it to the Safe, pass 0 as the gas limit.

### More scenarios

For the SDK overview documentation, please refer to the [safe-apps-sdk](https://github.com/safe-global/safe-apps-sdk/) documentation
npm package: @safe-global/safe-apps-react-sdk
Description: [![npm](https://img.shields.io/npm/v/@safe-global/safe-apps-react-sdk)](https://www.npmjs.com/package/@safe-global/safe-apps-react-sdk)
Author: Safe
Latest version: 4.7.2

# Safe Apps React SDK

[![npm](https://img.shields.io/npm/v/@safe-global/safe-apps-react-sdk)](https://www.npmjs.com/package/@safe-global/safe-apps-react-sdk)

This SDK should provide a simple way to write a React.js [Safe app](https://docs.safe.global/safe-core-aa-sdk/safe-apps)

### How to use

- Add npm package

```bash
yarn add @safe-global/safe-apps-react-sdk

npm i @safe-global/safe-apps-react-sdk
```

- Add `SafeProvider`
  Safe provider accepts `loader` and `options` props

```js
// ... other imports
import SafeProvider from '@safe-global/safe-apps-react-sdk';

ReactDOM.render(
  <React.StrictMode>
    <SafeProvider>
      <App /> // Your app
    </SafeProvider>
  </React.StrictMode>,
  document.getElementById('root'),
);
```

- Use Safe Apps SDK Hook

```js
// ... other imports
import { useSafeAppsSDK } from '@safe-global/safe-apps-react-sdk';

const App = () => {
  const { sdk, connected, safe } = useSafeAppsSDK();
  return <div>{safe.safeAddress}</div>;
};
```

### Usages

#### Send transactions

```js
import { BaseTransaction } from '@safe-global/safe-apps-sdk'

const txs: BaseTransaction[] = [
  {
    to: '0x31415629...',
    value: '0',
    data: '0xbaddad',
  },
  //...
];
// Returns a hash to identify the Safe transaction
const safeTxHash: string = await sdk.txs.send({ txs });
```

#### Load Safe transaction information

```js
const safeTx: SafeTransaction = await sdk.txs.getBySafeTxHash(safeTxHash);
```

#### More scenarios

For all available sdk methods, please refer to the [safe-apps-sdk](https://github.com/safe-global/safe-apps-sdk/tree/main/packages/safe-apps-sdk) documentation
npm package: @safe-global/safe-apps-web3modal
Description: A web3modal wrapper for Safe App support
Author: Safe
Latest version: 23.0.0

# Safe Apps Web3Modal

[![npm](https://img.shields.io/npm/v/@safe-global/safe-apps-web3modal)](https://www.npmjs.com/package/@safe-global/safe-apps-web3modal)

This is a wrapper around [web3modal](https://github.com/Web3Modal/web3modal) that adds Safe Apps support.

If the app using the wrapper is run as a Safe App the `connect` method will automatically connect to the Safe App.

### How to use

- Install the package and its dependencies

```
npm i @safe-global/safe-apps-web3modal @safe-global/safe-apps-sdk web3modal

yarn add @safe-global/safe-apps-web3modal @safe-global/safe-apps-sdk web3modal
```

- Setup Safe App

  - See https://docs.safe.global/safe-core-aa-sdk/safe-apps

- Use `SafeAppWeb3Modal`

```js
import { SafeAppWeb3Modal } from '@safe-global/safe-apps-web3modal';
const modal = new SafeAppWeb3Modal(web3modalOptions);
```

- Connect to the Safe

```js
const provider = await modal.requestProvider();
```

This will connect to the Safe if it is available. Otherwise, it will fall back to web3modal's `connect` method and show a modal with available wallets.

- Check if loaded as a Safe app

```js
const loadedAsSafeApp = await modal.isSafeApp();
```

## Know issues

### NextJs

Is you use a server side rendering solution remember to instantiate the modal inside an useEffect to avoid NextJS to process this server side where the `window` object does not exist.

```
  const [provider, setProvider] = useState(null);

  useEffect(() => {
    (async () => {
      const modal = new SafeAppWeb3Modal();
      const provider = await modal.requestProvider();
      setProvider(provider);
    })();
  }, []);
```
npm package: @safe-global/safe-client-gateway-sdk
Description: A TypeScript SDK for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway).
Latest version: 1.67.0-next-2efbbb3

# Safe Client Gateway TypeScript SDK

A TypeScript SDK for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway).

## Usage Policy

**Important**: The Safe Client Gateway is intended for internal use only and should not be used in public-facing applications, such as Safe Apps. Please avoid using this SDK if you’re building for public consumption.

## Installation

To install the SDK, run the following command:

```shell
yarn add @safe-global/safe-client-gateway-sdk
```

## Example Usage

Below is an example of how to import and use the SDK to retrieve information about a specific chain:

```ts
import { getChain, type Chain } from "@safe-global/safe-client-gateway-sdk";

const chain = await getChain({
  params: {
    path: {
      chainId: "1",
    },
  },
});
```

## Customization

The SDK requires no initialization. However, if you need to override the default base URL (for instance, to point to a staging environment), you can do so at the root of your project as follows:

```ts
import { setBaseUrl } from "@safe-global/safe-client-gateway-sdk";

// Example: use the staging deployment
setBaseUrl("https://safe-client.staging.5afe.dev");
```

## Generating a New Build

The **‘Release’** workflow should automatically run in accordance with updates to the Safe Client Gateway. However, it can also be manually triggered.
npm package: @safe-global/safe-core-sdk-types
Description: Safe Core SDK types
Author: Safe
Latest version: 5.1.0
Deprecated: WARNING: This project has been renamed to @safe-global/types-kit. Please, migrate from @safe-global/safe-core-sdk-types@5.1.0 to @safe-global/types-kit@1.0.0.

# Safe Core SDK Types

[![npm Version](https://badge.fury.io/js/@safe-global%2Fsafe-core-sdk-types.svg)](https://badge.fury.io/js/@safe-global%2Fsafe-core-sdk-types)
[![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)

Common types in the [Safe Core SDK](https://github.com/safe-global/safe-core-sdk)

## 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).
npm package: @safe-global/safe-core-sdk-utils
Description: Safe Core SDK Utilities
Author: Safe
Latest version: 1.7.4

# Safe Core SDK Utils

[![NPM Version](https://badge.fury.io/js/%40safe-global%2Fsafe-core-sdk-utils.svg)](https://badge.fury.io/js/%40safe-global%2Fsafe-core-sdk-utils)
[![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)

Utilities for the [Safe Core SDK](https://github.com/safe-global/safe-core-sdk) monorepo.

## Table of contents
* [Installation](#installation)
* [Build](#build)

## <a name="installation">Installation</a>

Install the package with yarn or npm:

```bash
yarn install
npm install
```

## <a name="build">Build</a>

Build the package with yarn or npm:

```bash
yarn build
npm build
```
npm package: @safe-global/safe-ethers-adapters
Description: Safe Ethers Adapters
Author: Safe
Latest version: 0.1.0-alpha.19
Deprecated: WARNING: This project is currently unmaintained. Please, use the combination of kits to achieve the desired functionality. Documentation can be found at https://docs.safe.global/sdk/overview

# Safe Ethers Adapters

[![NPM Version](https://badge.fury.io/js/%40safe-global%2Fsafe-ethers-adapters.svg)](https://badge.fury.io/js/%40safe-global%2Fsafe-ethers-adapters)
[![GitHub](https://img.shields.io/github/license/safe-global/safe-core-sdk)](https://github.com/safe-global/safe-core-sdk/blob/main/LICENSE.md)

[Ethers](https://docs.ethers.io/v5/single-page/) adapter that facilitates the interaction with the [Safe Services](https://github.com/safe-global/safe-transaction-service)

## Getting Started

The only adapter currently provided is the `SafeEthersSigner` which implements the [`Signer` interface](https://docs.ethers.io/v5/api/signer/#Signer) from Ethers.

The `SafeEthersSigner` can be used with [Ethers Contracts](https://docs.ethers.io/v5/getting-started/#getting-started--contracts) to deploy and interact with them. Each of these interactions will create a Safe transaction that is published to the [Safe transaction service](https://docs.gnosis.io/safe/docs/services_transactions/). 

For this to work it is required to initialize the `SafeEthersSigner` with an account that is either an owner of the specified Safe or a [delegate](https://docs.gnosis.io/safe/docs/tutorial_tx_service_set_delegate/) of one of the owners.

An example for such an account would be the private key of one of the owners that is used with an [Ethers Wallet](https://docs.ethers.io/v5/api/signer/#Wallet)

```js
const signer = new Wallet("some_private_key", ethereumProvider)
```

It is also necessary to specify a service instance that should be used to publish the Safe transactions. An example for this would be the Mainnet instance of the [Safe Transaction Service](https://safe-transaction-mainnet.safe.global/): `https://safe-transaction-mainnet.safe.global/`

```js
const service = new SafeService("some_service_url")
```

A Safe instance must also be created before obtaining the signer.
It may be obtained with:

```js
import { ethers } from "ethers"
import Safe from "@safe-global/safe-core-sdk"
import EthersAdapter from "@safe-global/safe-ethers-lib"

const safe = await Safe.create({
  ethAdapter: new EthersAdapter({ ethers, signerOrProvider }),
  safeAddress: "some_safe_address"
})
```

Using these components it is possible to create an instance of the `SafeEthersSigner`

```js
const safeSigner = new SafeEthersSigner(safe, service, provider)
```

See [examples](/packages/safe-ethers-adapters/examples) for more information.

## Installation

Select correct nvm version:

```bash
nvm use
```

Install the package with yarn or npm:

```bash
yarn install
npm install
```

## Build

Build the package with yarn or npm:

```bash
yarn build
npm build
```

## License

This library is released under MIT.

## Contributors

- Richard Meisser ([rmeissner](https://github.com/rmeissner))
- Germán Martínez ([germartinez](https://github.com/germartinez))
npm package: @safe-global/safe-ethers-lib
Description: Ethers library adapter to be used by Safe Core SDK
Author: Safe
Latest version: 1.9.4
Deprecated: WARNING: This package is now bundled in @safe-global/protocol-kit. Please, follow the migration guide https://docs.safe.global/safe-core-aa-sdk/protocol-kit/reference/v1

# Safe Ethers Lib

[![NPM Version](https://badge.fury.io/js/%40safe-global%2Fsafe-ethers-lib.svg)](https://badge.fury.io/js/%40safe-global%2Fsafe-ethers-lib)
[![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)

Ethers.js wrapper that contains some utilities and the Safe contracts types (generated with typechain ethers-v5). It is used to initialize the [Safe Core SDK](https://github.com/safe-global/safe-core-sdk/tree/main/packages/safe-core-sdk).

## Table of contents
* [Installation](#installation)
* [Build](#build)
* [Initialization](#initialization)
* [License](#license)
* [Contributors](#contributors)

## <a name="installation">Installation</a>

Install the package with yarn or npm:

```bash
yarn install
npm install
```

## <a name="build">Build</a>

Build the package with yarn or npm:

```bash
yarn build
npm build
```

## <a name="initialization">Initialization</a>

If the app integrating the SDK is using `Ethers` `v5`, create an instance of the `EthersAdapter`, where `signer` is the Ethereum account we are connecting and the one who will sign the transactions.

```js
import { ethers } from 'ethers'
import EthersAdapter from '@safe-global/safe-ethers-lib'

const web3Provider = // ...
const provider = new ethers.providers.Web3Provider(web3Provider)
const safeOwner = provider.getSigner(0)

const ethAdapter = new EthersAdapter({
  ethers,
  signerOrProvider: safeOwner
})
```

Depending on whether the `ethAdapter` instance is used to sign/execute transactions or just call read-only methods, the `signerOrProvider` property can be a `Signer` or a `Provider`.

## <a name="license">License</a>

This library is released under MIT.

## <a name="contributors">Contributors</a>

- Germán Martínez ([germartinez](https://github.com/germartinez))
npm package: @safe-global/safe-gateway-typescript-sdk
Description: [![npm](https://img.shields.io/npm/v/@safe-global/safe-gateway-typescript-sdk?label=%40safe-global%2Fsafe-gateway-typescript-sdk)](https://www.npmjs.com/package/@safe-global/safe-gateway-typescript-sdk)
Author: katspaugh
Latest version: 3.23.1

# Safe Gateway TypeScript SDK

[![npm](https://img.shields.io/npm/v/@safe-global/safe-gateway-typescript-sdk?label=%40safe-global%2Fsafe-gateway-typescript-sdk)](https://www.npmjs.com/package/@safe-global/safe-gateway-typescript-sdk)

A TypeScript SDK for the [Safe Client Gateway](https://github.com/safe-global/safe-client-gateway)

📖 [Type reference](https://safe-global.github.io/safe-gateway-typescript-sdk/modules.html)   |   <img src="https://github.com/safe-global/safe-gateway-typescript-sdk/assets/381895/ebfa2525-ff65-4597-af2a-17a440ccfb33" height="20" alt="Swagger" valign="text-top" /> [CGW Swagger](https://safe-client.safe.global)

## Usage policy

NB: Safe Client Gateway isn't meant for public use.
Please _do not_ use this SDK if you're building, e.g., a Safe App.

## Using the SDK

Install:

```shell
yarn add @safe-global/safe-gateway-typescript-sdk
```

Import:

```ts
import { getChainsConfig, type ChainListResponse } from '@safe-global/safe-gateway-typescript-sdk'
```

Use:

```ts
const chains = await getChainsConfig()
```

The SDK needs no initialization unless you want to override the base URL. You can set an alternative base URL like so:

```ts
import { setBaseUrl } from '@safe-global/safe-gateway-typescript-sdk'

// Switch the SDK to dev mode
setBaseUrl('https://safe-client.staging.5afe.dev')
```

The full SDK reference can be found [here](https://safe-global.github.io/safe-gateway-typescript-sdk/modules.html).

## Adding an endpoint

Endpoint types are defined in `src/types/gateway.ts`.

Each endpoint consists of:

- a function defined in `src/index.ts` (e.g. `getBalances`)
- a path definition (e.g. `'/chains/{chainId}/safes/{address}/balances/{currency}/'`)
- operation definition (e.g. `safes_balances_list`)
- response definition

To add a new endpoint, follow the pattern set by the existing endpoints.

## Eslint & prettier

This command will run before every commit:

```shell
yarn eslint:fix
```

## Tests

To run the unit and e2e tests locally:

```shell
yarn test
```

N.B.: the e2e tests make actual API calls on staging.
npm package: @safe-global/safe-modules-deployments
Description: Collection of Safe modules contract deployments
Author: mikhail@safe.global
Latest version: 3.0.2

# Safe Modules Deployments

[![npm version](https://badge.fury.io/js/%40safe-global%2Fsafe-modules-deployments.svg)](https://badge.fury.io/js/%40safe-global%2Fsafe-modules-deployments)

This contract contains a collection of deployments of audited contracts from the [Safe modules repository](https://github.com/safe-global/safe-modules).

For each deployment the address on the different networks and the abi files are available. To get an overview of the available versions check the available [json assets](./src/assets/).

To add additional deployments please follow the [deployment steps in the module folder in the Safe modules repository](https://github.com/safe-global/safe-modules).

## Install

- npm - `npm i @safe-global/safe-modules-deployments`
- yarn - `yarn add @safe-global/safe-modules-deployments`
- pnpm - `pnpm install @safe-global/safe-modules-deployments`

## Usage

It is possible to directly use the json files in the [assets folder](./src/assets/) that contain the addresses and abi definitions.

An alternative is to use the JavaScript library methods to query the correct deployment. The library supports different methods to get the deployment of a specific contract.

Each of the method takes an optional `DeploymentFilter` as a parameter.

```ts
interface DeploymentFilter {
  version?: string;
  released?: boolean; // Defaults to true if no filter is specified
  network?: string; // Chain id of the network
}
```

The method will return a `Deployment` object or `undefined` if no deployment was found for the specified filter.

```ts
interface Deployment {
  version: string;
  abi: any[];
  networkAddresses: Record<string, string>; // Address of the contract by network
  contractName: string;
  released: boolean; // A released version was audited and has a running bug bounty
}
```

For example, in order to get various deployments for the Safe Allowance module:

```ts
const allowanceModule = getAllowanceModuleDeployment();

// Returns latest contract version, even if not finally released yet
const allowanceModuleNightly = getAllowanceModuleDeployment({ released: undefined });

// Returns released contract version for specific network
const allowanceModuleGörli = getAllowanceModuleDeployment({ network: '5' });

// Returns released contract version for specific version
const allowanceModule010 = getAllowanceModuleDeployment({ version: '0.1.0' });
```

This repository contains deployments for the following modules:

- Allowance Module
- ERC-4337 Module
- Passkeys
- Social Recovery Module

## Notes

A list of network information can be found at [chainid.network](https://chainid.network/)

## License

This library is released under MIT.
npm package: @safe-global/safe-react-hooks
Description: A collection of React Hooks that facilitates the interaction of React apps with Safe Smart Accounts
Author: Safe
Latest version: 0.3.0

# Safe React Hooks

A collection of React hooks to simplify the usage of the Safe Core SDK for React developers, written in TypeScript.

## Table of Contents

- [Documentation](#documentation)
- [Installation](#installation)
- [Usage](#usage)
- [Available Hooks](#available-hooks)
- [Contributing](#contributing)
- [License](#license)

## Documentation

Head to the [Safe React Hooks docs](https://docs.safe.global/reference-sdk-react-hooks/overview) to learn more about how to use these hooks.


## Installation

To install the package, run:

```bash
npm install @safe-global/safe-react-hooks
```

or

```bash
yarn add @safe-global/safe-react-hooks
```

## Usage

## Available Hooks

## Contributing

If you are interested in contributing, please read the [Contributing Guidelines](https://github.com/safe-global/safe-react-hooks/tree/main/CONTRIBUTING.md) **before opening an issue or submitting a pull request**.

## License

This library is released under [MIT](https://github.com/safe-global/safe-react-hooks/tree/main/LICENSE.md).
npm package: @safe-global/safe-web3-lib
Description: Web3 library adapter to be used by Safe Core SDK
Author: Safe
Latest version: 1.9.4
Deprecated: WARNING: This package is now bundled in @safe-global/protocol-kit. Please, follow the migration guide https://docs.safe.global/safe-core-aa-sdk/protocol-kit/reference/v1

# Safe Web3 Lib

[![NPM Version](https://badge.fury.io/js/%40safe-global%2Fsafe-web3-lib.svg)](https://badge.fury.io/js/%40safe-global%2Fsafe-web3-lib)
[![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)

Web3.js wrapper that contains some utilities and the Safe contracts types (generated with typechain web3-v1). It is used to initialize the [Safe Core SDK](https://github.com/safe-global/safe-core-sdk/tree/main/packages/safe-core-sdk).

## Table of contents
* [Installation](#installation)
* [Build](#build)
* [Initialization](#initialization)
* [License](#license)
* [Contributors](#contributors)

## <a name="installation">Installation</a>

Install the package with yarn or npm:

```bash
yarn install
npm install
```

## <a name="build">Build</a>

Build the package with yarn or npm:

```bash
yarn build
npm build
```

## <a name="initialization">Initialization</a>

If the app integrating the SDK is using `Web3`, create an instance of the `Web3Adapter`, where `signerAddress` is the Ethereum account we are connecting and the one who will sign the transactions.

```js
import Web3 from 'web3'
import Web3Adapter from '@safe-global/safe-web3-lib'

const provider = new Web3.providers.HttpProvider('http://localhost:8545')
const web3 = new Web3(provider)
const safeOwner = '0x<address>'

const ethAdapter = new Web3Adapter({
  web3,
  signerAddress: safeOwner
})
```

In case the `ethAdapter` instance is only used to execute read-only methods the `signerAddress` property can be omitted.

```js
const readOnlyEthAdapter = new Web3Adapter({ web3 })
```

## <a name="license">License</a>

This library is released under MIT.

## <a name="contributors">Contributors</a>

- Germán Martínez ([germartinez](https://github.com/germartinez))
npm package: @safe-global/sdk-starter-kit
Description: SDK that provides the basic tools to interact with the Safe Smart Account.
Author: Safe
Latest version: 4.0.0

# SDK Starter Kit

[![npm Version](https://badge.fury.io/js/%40safe-global%2Fsdk-starter-kit.svg)](https://badge.fury.io/js/%40safe-global%2Fsdk-starter-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)

Description TBD

## Table of contents

- [Installation](#installation)
- [Need Help or Have Questions?](#need-help-or-have-questions)
- [Contributing](#contributing)
- [License](#license)

## Installation

Install the package with yarn or npm:

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

## 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! 🙌

## <a name="license">License</a>

This library is [released under MIT](https://github.com/safe-global/safe-core-sdk/blob/main/LICENSE.md).
npm package: @safe-global/types-kit
Description: Types for use with the Safe Core SDK packages
Author: Safe
Latest version: 3.1.0

# Types Kit

[![npm Version](https://badge.fury.io/js/@safe-global%2Ftypes-kit.svg)](https://badge.fury.io/js/@safe-global%2Ftypes-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)

Common types in the [Safe Core SDK](https://github.com/safe-global/safe-core-sdk)

## 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).