{"id":19460138,"url":"https://github.com/offchainlabs/arbitrum-sdk","last_synced_at":"2025-05-14T11:09:59.270Z","repository":{"id":37093855,"uuid":"469667543","full_name":"OffchainLabs/arbitrum-sdk","owner":"OffchainLabs","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-03T15:34:45.000Z","size":171845,"stargazers_count":249,"open_issues_count":31,"forks_count":197,"subscribers_count":26,"default_branch":"main","last_synced_at":"2025-04-14T22:06:19.304Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.arbitrum.io/sdk/introduction","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OffchainLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audit-ci.jsonc","citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-14T09:39:51.000Z","updated_at":"2025-04-09T13:42:46.000Z","dependencies_parsed_at":"2023-12-28T22:33:27.650Z","dependency_job_id":"d8df7310-380d-423e-aa62-7838d2e63394","html_url":"https://github.com/OffchainLabs/arbitrum-sdk","commit_stats":{"total_commits":8393,"total_committers":75,"mean_commits":"111.90666666666667","dds":0.5963302752293578,"last_synced_commit":"5ef44308d3c89fd956c9dfdc59b6776b88afd251"},"previous_names":[],"tags_count":75,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Farbitrum-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Farbitrum-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Farbitrum-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OffchainLabs%2Farbitrum-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OffchainLabs","download_url":"https://codeload.github.com/OffchainLabs/arbitrum-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248968834,"owners_count":21191160,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T17:35:43.483Z","updated_at":"2025-04-14T22:06:43.577Z","avatar_url":"https://github.com/OffchainLabs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arbitrum SDK\n\n[![npm version](https://badge.fury.io/js/%40arbitrum%2Fsdk.svg)](https://badge.fury.io/js/@arbitrum%2Fsdk.svg)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nA TypeScript library for client-side interactions with Arbitrum. The Arbitrum SDK provides essential helper functionality and direct access to underlying smart contract interfaces, enabling developers to build powerful applications on the Arbitrum network.\n\n\u003e [!IMPORTANT]\n\u003e\n\u003e This is the code and documentation for `@arbitrum/sdk` v4.\n\u003e\n\u003e If you're looking for v3, check out [this branch](https://github.com/OffchainLabs/arbitrum-sdk/tree/v3).\n\u003e\n\u003e If you're looking to migrate from v3 to v4, check out [this guide](./docs/2-migrate.mdx).\n\n## Table of Contents\n\n- [Arbitrum SDK](#arbitrum-sdk)\n  - [Table of Contents](#table-of-contents)\n  - [Overview](#overview)\n  - [Installation](#installation)\n  - [Key Features](#key-features)\n    - [Bridging Assets](#bridging-assets)\n    - [Cross-Chain Messages](#cross-chain-messages)\n    - [Network Configuration](#network-configuration)\n  - [Usage](#usage)\n  - [Running Integration Tests](#running-integration-tests)\n  - [Documentation](#documentation)\n  - [License](#license)\n\n## Overview\n\nArbitrum SDK simplifies the process of interacting with Arbitrum chains, offering a robust set of tools for asset bridging and cross-chain messaging.\n\n## Installation\n\n```bash\nnpm install @arbitrum/sdk\n\n# or\n\nyarn add @arbitrum/sdk\n```\n\n## Key Features\n\n### Bridging Assets\n\nArbitrum SDK facilitates the bridging of assets between an Arbitrum chain and its parent chain. Currently supported asset bridgers:\n\n- `EthBridger`: For bridging ETH to and from an Arbitrum chain (L2 or L3)\n- `Erc20Bridger`: For bridging ERC-20 tokens to and from an Arbitrum chain (L2 or L3)\n- `EthL1L3Bridger`: For bridging ETH to an L3 directly from L1\n- `Erc20L1L3Bridger`: For bridging ERC-20 tokens to an L3 directly from L1\n\n### Cross-Chain Messages\n\nCross-chain communication is handled through `ParentToChildMessage` and `ChildToParentMessage` classes. These encapsulate the lifecycle of messages sent between chains, typically created from transaction receipts that initiate cross-chain messages.\n\n### Network Configuration\n\nThe SDK comes preconfigured for Arbitrum One, Arbitrum Nova and Arbitrum Sepolia. Custom Arbitrum networks can be registered using `registerCustomArbitrumNetwork`, which is required before utilizing other SDK features.\n\n## Usage\n\nHere's a basic example of using the SDK to bridge ETH:\n\n```ts\nimport { ethers } from 'ethers'\nimport { EthBridger, getArbitrumNetwork } from '@arbitrum/sdk'\n\nasync function bridgeEth(parentSigner: ethers.Signer, childChainId: number) {\n  const childNetwork = await getArbitrumNetwork(childChainId)\n  const ethBridger = new EthBridger(childNetwork)\n\n  const deposit = await ethBridger.deposit({\n    amount: ethers.utils.parseEther('0.1'),\n    parentSigner,\n  })\n\n  const txReceipt = await deposit.wait()\n  console.log(`Deposit initiated: ${txReceipt.transactionHash}`)\n}\n```\n\nFor more detailed usage examples and API references, please refer to the [Arbitrum SDK documentation](https://docs.arbitrum.io/sdk).\n\n## Running Integration Tests\n\n1. Set up a Nitro test node by following the instructions [here](https://docs.arbitrum.io/node-running/how-tos/local-dev-node).\n2. Copy `.env.example` to `.env` and update relevant environment variables.\n3. Generate the network configuration against your active Nitro test node:\n\n   ```sh\n   yarn gen:network\n   ```\n\n4. Execute the integration tests:\n\n   ```sh\n   yarn test:integration\n   ```\n\n## Documentation\n\nFor comprehensive guides and API documentation, visit the [Arbitrum SDK Documentation](https://docs.arbitrum.io/sdk).\n\n## License\n\nArbitrum SDK is released under the [Apache 2.0 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffchainlabs%2Farbitrum-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foffchainlabs%2Farbitrum-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foffchainlabs%2Farbitrum-sdk/lists"}