ETHSTR

ETHSTR is a wallet technology that lets any Nostr identity instantly work across EVM ecosystem

ETHSTR

Created At

ETHOnline 2025

Project Description

This project represents a groundbreaking innovation in blockchain interoperability, creating a seamless bridge between the Nostr protocol and Ethereum's Account Abstraction (ERC-4337) system. At its core, this project enables users to control Ethereum smart accounts using their existing Nostr private keys instead of managing separate Ethereum private keys. This eliminates the traditional friction of multi-wallet management while maintaining the security and decentralization principles of both ecosystems.

The fundamental concept is elegantly captured in the project's tagline: "One Key. Many Worlds." Every Nostr user automatically becomes an Ethereum user without changing their daily workflow. If you already have a Nostr account (used in applications like Damus, Amethyst, or any Nostr client), you instantly have an Ethereum smart account that you can control with the same cryptographic key you use to sign your Nostr notes and posts.

The technical implementation centers around deterministic address generation, where your Nostr public key (displayed as npub...) mathematically maps to a specific Ethereum address across all supported networks. This mapping is consistent and verifiable - the same Nostr key always generates the same Ethereum address, regardless of which network you're using. This means that if you have a Nostr account, you already have an Ethereum account; you just need to "unlock" it with your existing Nostr key.

Instead of using traditional Ethereum private keys, the smart accounts accept BIP340 Schnorr signatures, which is the same cryptographic standard used by the Nostr protocol. When you want to send an Ethereum transaction, you sign it with your Nostr key, and the smart contract verifies this signature to authorize the transaction. This creates a seamless experience where users can interact with Ethereum using the same authentication method they're already familiar with from Nostr.

The project leverages ERC-4337 Account Abstraction to provide enhanced functionality beyond traditional Ethereum accounts. Users benefit from smart wallet features like batched transactions, sponsored gas fees, and future social recovery capabilities. The Nostr key remains the single source of truth while the smart account handles all on-chain operations, providing both simplicity and advanced functionality.

One of the most innovative aspects is the decentralized transaction broadcasting system. Instead of relying on a single bundler service, transactions are broadcast through the Nostr relay network. Any Nostr relay can pick up UserOperations (the Account Abstraction equivalent of transactions), bundle them, and push them on-chain. This approach keeps the transaction mempool open, permissionless, and censorship-resistant, aligning with the decentralized principles of both Nostr and Ethereum.

The user experience is designed to be completely seamless with existing Nostr infrastructure. The system works with any browser extension that supports Nostr (like Alby, nos2x, etc.) without requiring additional wallets, seed phrases, or plugins. Users simply connect their existing Nostr extension and can immediately start using Ethereum features, including sending transactions, viewing balances, and interacting with smart contracts.

The project includes comprehensive developer tools and APIs that enable easy integration. Developers can use REST/Relay endpoints to fetch npub to EVM address mappings, with no vendor lock-in or proprietary SDKs required. The system uses open JSON over familiar Nostr events, making it accessible to developers already familiar with the Nostr ecosystem.

The technical architecture consists of three main components: custom ERC-4337 smart contracts that implement Nostr signature verification, a NextJS frontend application with modern web3 tooling, and a Node.js bundler relay service that bridges Nostr events to Ethereum bundlers. The cryptographic innovation includes optimized BIP340 Schnorr signature verification that saves significant gas costs while maintaining security.

The vision of this project is that "Every Nostr user is now an Ethereum user—instantly, securely, and without changing their daily workflow." This represents a significant step toward "One identity, infinite possibilities" - where a single cryptographic identity can seamlessly operate across multiple blockchain ecosystems. By eliminating the friction of managing multiple keys, seed phrases, and wallet interfaces, this integration opens up Ethereum's ecosystem to millions of existing Nostr users without requiring them to learn new tools or change their existing workflows.

How it's Made

Built as a yarn monorepo with three packages: NextJS frontend, Hardhat smart contracts, and a Node.js bundler relay. Uses TypeScript, TailwindCSS, RainbowKit, Wagmi, ERC-4337, BIP340 Schnorr signatures, and Nostr protocol.

The key technical achievement is BIP340 Schnorr signature verification in Bip340Ecrec.sol. This uses a clever mathematical trick that converts Schnorr signature verification into an ECDSA recovery problem, leveraging Ethereum's built-in ecrecover function for gas efficiency.

The NostrSignatures.sol library constructs Nostr event messages in JSON format [0, "<pubkey>", 0, 96024, [], "<userOpHash>"], hashes them with SHA256, and verifies BIP340 signatures. The NpubAccount.sol implements ERC-4337 BaseAccount to create smart accounts accepting Nostr signatures.

The account factory (NpubAccountFactory.sol) uses CREATE2 for deterministic address generation, allowing users to predict their smart account address before deployment.

The frontend uses a sophisticated service layer (nostrService.ts, sendTransactionService.ts) that handles Nostr extension connections, public key management, and transaction creation. It integrates with the permissionless library for account abstraction and manages the complete transaction flow from Nostr signing to Ethereum execution.

The custom bundler relay service (packages/nostr-bundler-relay/) listens for UserOperations published as Nostr events (kind 96124) and forwards them to Pimlico bundlers. It handles BigInt serialization challenges and connects to multiple Nostr relays for redundancy.

The most hacky innovation is the BIP340-to-ecrecover optimization - a mathematical transformation that saves significant gas while maintaining security. Another key solution is the Nostr event message format for signature verification, creating a bridge between Nostr's event-based architecture and Ethereum's transaction model. The project leverages Pimlico's bundler infrastructure and Scaffold-ETH 2 tooling, with multi-relay Nostr architecture ensuring transaction reliability through decentralized broadcasting. This represents a significant advancement in cross-protocol integration, demonstrating seamless connection between different blockchain ecosystems through innovative cryptography and decentralized infrastructure.

background image mobile

Join the mailing list

Get the latest news and updates