project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4

WalletDrop

WalletDrop, a CLI tool, enables instant, secure file sharing to wallet addresses and ENS. Leveraging Libp2p's decentralization, it offers a seamless user experience with easy to use commands.

WalletDrop

Created At

HackFS 2023

Winner of

🏊‍♂️ ENS — Integration Prize

Project Description

WalletDrop is a breakthrough CLI tool that offers a revolutionary method for sharing files by linking them directly to wallet addresses or ENS names. This method not only simplifies the sharing process, but also significantly enhances security and privacy by eliminating the need for traditional servers or cloud-based storage solutions.

The underlying strength of WalletDrop stems from its robust backbone – Libp2p. By harnessing the decentralized nature of Libp2p, WalletDrop disrupts traditional file sharing, offering an experience that is direct, instant, and secure. WalletDrop's interface enhances user experience significantly. The tool's installation and usage are guided by easy-to-follow GIF instructions. Once you're logged in, sending a file is as simple as being in the directory with the file and running a single command, specifying the filename and the recipient's wallet address. Receivers prepare themselves for the incoming file with a similarly straightforward command. File transfer communication occurs over two protocols, with one notifying the receiver about an incoming file and the other transmitting the actual file contents.

In summary, WalletDrop presents an innovative, user-friendly, and secure solution for file sharing, heralding a new era in how we transfer files. Its decentralized architecture, powered by Libp2p, ensures direct, peer-to-peer file sharing that is quick, easy, and secure.

How it's Made

Technologies Used: Libp2p: This modular network stack allowed us to design WalletDrop as a decentralized, peer-to-peer application. Libp2p's flexibility allowed us to adopt specific modules that best suited our needs, which include secure peer discovery, seamless connectivity between peers, and reliable data transfer protocols.

Commander.js: This node.js command-line interface solution was instrumental in building a CLI tool with a clean and intuitive interface. It allowed us to effortlessly manage command inputs, options, and outputs, making WalletDrop easy to use.

Ethers: To resolve ENS names into Wallet Address

Next.js & React: The project's frontend was built using Next.js and React. These frameworks helped us create a fast and user-friendly web interface.

Our core focus was to create a secure and decentralized file transfer system, and the linchpin of this endeavor was Libp2p. Upon logging in, the user's node broadcasts its wallet address and associated multiaddress across the network via Libp2p's bootstrap nodes. These nodes maintain a global network state, storing each user's wallet address and multiaddress.

When a user wants to send a file, WalletDrop queries the network for the recipient's multiaddress. Upon receiving it from a bootstrap node, the sender establishes a direct peer-to-peer connection with the receiver using Libp2p's dial protocol.

File transfer occurs over two distinct protocols: "/filename/1.0.0" and "/file/1.0.0". The first protocol notifies the receiver that they're being sent a file, while the second transmits the actual file contents.

One particularly interesting solution we developed involved facilitating the file transfer process. Before a sender can successfully send a file, the receiver must be prepared to accept it. To ensure this, we designed the CLI to prompt the receiver with a walletdrop receive command. This small but crucial step ensures a seamless file transfer experience and prevents any unexpected errors or data loss.

In summary, the creation of WalletDrop involved the clever implementation and integration of various technologies. Each piece of the puzzle was carefully selected and pieced together to create a tool that is not only efficient and secure, but also user-friendly and innovative in its approach to file sharing.

background image mobile

Join the mailing list

Get the latest news and updates