Build DApps

Like Apps

Shogun is an open-source, client-side Ethereum wallet that uses a username and password.

Allow users to interact with your DApp just like they would any other website, no extensions required, without centralizing control of keys. Built with TypeScript and powered by Gun.js for decentralized data storage. Features include stealth addresses, encrypted key management, and seamless Web3 integration.

View on Github

The Pitch

Not All Transactions Are Created Equal

Current Ethereum wallets treat every transaction as if it were moving your life's savings. Shogun was built for use-cases involving low-to-no financial value, focusing on:


🔒 Stealth transactions for enhanced privacy

🔑 Seamless key management without browser extensions

🔗 Decentralized data storage with Gun.js

🔡 TypeScript-based for type safety and developer experience

🌐 Support for multiple networks and custom RPC endpoints

🔐 WebAuthn support for biometric authentication


Note: The primary improvement to end-user experience is gained by hiding wallet complexity and not forcing users to confirm transactions - the opposite of what you'd want when moving significant money around.

based on Gun.js
Gun
the protocol for freedom fighters

protecting people's privacy
Visit Gun.eco

the decentralized database for developers.

Usage

Is Shogun Right For Your DApp?

Shogun isn't right for every DApp. Massive improvements in user experience are only possible through tradeoffs. As a general rule Shogun should not be used for apps involving significant sums of money. As a bridge, one could start users on Shogun and suggest migrating to a more secure wallet if their stored value increases beyond a certain threshold. Shogun is interoperable with existing web3 providers too.

Little to no financial value

Examples Where Shogun Might Be Right For You

Securely Signing Data

If you're building decentralized applications that rely on user signed data (for instance via EIP-712-esque signing schemes). Shogun could help simplify the experience if the stakes are low enough.

Decentralized Gaming App

If you're building a fun gaming DApp, improving user experience is key to your platform's growth.

Nothing ruins a good time quite like signing transactions.

Decentralized Music Player

If you're building consumer-facing DApps, Shogun will dramatically improve user experience and significantly increase your potential userbase.

Significant Financial Value

Where You Should Not Use Shogun

We absolutely do not recommend using Shogun in situations like these:
Decentralized Lending, Banking DApp (Store-of-Value), Prediction Markets

If your DApp involves moving around significant sums of money, then the tradeoff in security is most likely not worth it. Shogun's primary improvement to end-user experience is by hiding the wallet and not forcing users to confirm transactions - The opposite of what you'd want when moving money around.

Demo

So, How Does It Work?

Shogun is a package that lives in your front end application to create and manage a user's entropy (from which a private key is derived). Shogun relies on a username and password to create encrypted auth artifacts, so it's able to simulate a familiar authentication system that allows users to sign up or login from multiple browsers or devices and retrieve their entropy. Those artifacts, through Shogun, are persisted to a backend of your choosing.

A private key is only computed and available client side and is never transmitted or stored anywhere besides the user's browser.