0G_DevTool

Lightweight JS SDK build, test, and monitor apps on 0G Mainnet.

0G_DevTool

Created At

ETHGlobal New Delhi

Project Description

This project is a developer toolkit for the 0G Mainnet (EVM-compatible chain) that provides a JavaScript SDK to simplify building, testing, and monitoring decentralized applications. Our goal is to strengthen the 0G ecosystem by lowering the barrier to entry for developers and enabling production-ready workflows out of the box.

With this SDK, developers can: • Connect easily to 0G Mainnet/Testnet using HTTP or WebSocket providers, without manually handling chain IDs or RPC quirks.

• Deploy and interact with smart contracts programmatically, making it simple to script deployments and run read/write operations.

• Query past events and subscribe to live events via WebSockets, with automatic retries and error handling built in.

• Monitor contracts, accounts, and transactions programmatically through the SDK, turning blockchain data into actionable insights.

• Build scripts and testing tools for dApps on 0G without having to reinvent common utilities like log queries, retries, or wallet setup.

Why this matters for 0G: • Ecosystem growth: Today, 0G lacks streamlined developer tooling (SDKs, monitoring, testing utilities). By filling this gap, more developers can experiment and deploy faster.

• Production readiness: Our focus is on stability—features like retry logic, static/dynamic network handling, and contract abstractions make this more than just a demo helper.

• Extensible design: This SDK forms a base that others can fork or extend for dashboards, indexers, or advanced monitoring services in the 0G ecosystem.

Features: • Lightweight JavaScript SDK with Ethers v6 under the hood

• Supports both auto-detected chainId and static network locking

• Contract deploy/read/write helpers

• Event logs + subscriptions with retry mechanisms

• Future CLI interface planned for common tasks like deploy, call, listen, and monitor

• Easy integration into hackathon projects, dApps, or developer workflows

Impact By delivering this SDK, we’re creating the first step toward a robust developer experience on 0G. This empowers the ecosystem with reusable tooling, accelerates hackathon projects, and ensures developers can focus on innovation instead of plumbing.

P.S.- We have added the support for websockets as well but we couldn't find any link for them :p. Also while testing we ran out of Mainnet Tokens.

How it's Made

This project is built as a JavaScript SDK for the 0G Mainnet (EVM-compatible chain), designed to simplify blockchain interactions, event monitoring, and contract management for developers. The focus was on creating a lightweight, modular, and production-ready toolkit, with a CLI planned for future development to further streamline workflows.

Core Technologies: • Node.js & ES Modules: The SDK is written in modern JavaScript (ESM), making it compatible with Node.js.

• Ethers.js v6: Handles all blockchain interactions, including provider management, contract deployment, reading/writing data, and event subscriptions.

• HTTP & WebSocket Providers: Supports both RPC connections and live event subscriptions for real-time monitoring.

• Custom Retry Mechanism: A small utility ensures that queries to contracts and events automatically retry on transient network issues, improving reliability.

Project Structure: • /src – Core SDK modules

• provider.js → Manages HTTP and WebSocket providers with dynamic chain detection and optional static network locking.

• contracts.js → Helper functions to deploy contracts and interact with their methods (read/write).

• events.js → Handles fetching past events and subscribing to live events, with built-in retry logic.

• utils/retry.js → Lightweight retry wrapper for network calls.

• utils/validate.js → Utility functions to validate inputs, addresses, and parameters.

• utils/constants.js → Holds constant values used across the SDK.

•utils/wallet.js → Helper functions for wallet management, signing, and key handling.

• utils/index.js → Central export point for all utility functions.

• .gitignore → Specifies files/folders to ignore in version control.

•README.md → Documentation and usage instructions.

• package.json → Configured for npm publishing with "exports" and "files" to include only the SDK code.

• package-lock.json → Auto-generated lockfile for exact dependency versions.

Workflow

• Initialize providers via HTTP/WebSocket → auto-detect network or optionally lock to a chainId. • Deploy and interact with contracts → use deploy/read/write helpers. • Subscribe or query events → retry-safe and real-time.

background image mobile

Join the mailing list

Get the latest news and updates