WebCash is an experimental new electronic cash ("e-cash") that enables decentralized and instant payments to anyone

Overview

Webcash

WebCash is an experimental new electronic cash ("e-cash") that enables decentralized and instant payments to anyone, anywhere in the world. Users send webcash to one another directly on a decentralized peer-to-peer basis by copying-and-pasting their webcash to their recipient. The central server helps webcash wallets detect double-spending and ensure the integrity of the monetary supply according to the supply schedule.

Navigate to https://webcash.tech/ for more information, including the Terms of Service.

Installation

This is a python-based webcash client.

pip3 install -r requirements.txt

Usage

python3 walletclient.py setup
python3 walletclient.py status
python3 miner.py
python3 walletclient.py pay 5
python3 walletclient.py pay 18.00 "memo: for lunch with bob"
python3 walletclient.py insert

License

This repository and its source code is distributed under the BSD license.

Comments
  • 2 features added, list webcash (coins) and spend webcash from specific secret (payX)

    2 features added, list webcash (coins) and spend webcash from specific secret (payX)

    This implements 2 features:

    1. Allowing the user to view all webcash secrets in their wallet in a clean manner
    2. Allowing a user to pay from a specific webcash secret

    At some point perhaps Webcasa.app can allow a user to click on the secret they wish to spend from, via a checkbox list.

    opened by xorson 0
  • Add

    Add "merge" command to combine outputs into a reasonable number

    Mining can cause a wallet to become quite bloated with outputs. This PR adds a merge command that can be used to merge outputs together in batches, to consolidate the webcash of the wallet into a small number of outputs. The status command is also updated to show the current number of outputs.

    opened by maaku 0
  • Add `walletclient.py check` command to verify wallet outputs using the server's health check API

    Add `walletclient.py check` command to verify wallet outputs using the server's health check API

    What the title says. Any invalid secret values are moved to the "unconfirmed" field of the wallet as a safety measure, at least until this command is thoroughly tested.

    opened by maaku 0
  • Increase mining speed by reusing secrets across attempts

    Increase mining speed by reusing secrets across attempts

    We can nearly double the speed of the official Python miner without too much complication by not regenerating secrets after an unsuccessful attempt. This does require that we submit a nonce to differentiate the attempts, however. Thankfully the mining server seems to be liberal in what it accepts.

    (This is the same technique used by maaku/webminer)

    opened by maaku 0
  • Downgrade firelock version to support Ubuntu 18.04 LTS

    Downgrade firelock version to support Ubuntu 18.04 LTS

    There's no difference between 3.4.2 (latest) and 3.4.1, except availability on older python versions, such as Python 3.6 which is used on Ubuntu 18.04 LTS. Downgrading this dependency version gets us working out of the box on more platforms.

    opened by maaku 0
  • Save

    Save "unconfirmed" webcash to the wallet before a "replace" API call

    Save "unconfirmed" webcash to the wallet before a "replace" API call, so that funds are not irrevocably lost if there is a network error during the communication with the server.

    There is no code here to recover funds. We are just making sure that the wallet file remembers any keys used during a failed operation, so that they can be later recovered if necessary.

    Partial fix for issue #1.

    opened by maaku 0
  • Save destination keys to wallet prior to 'replace' operation to prevent loss of funds

    Save destination keys to wallet prior to 'replace' operation to prevent loss of funds

    If the server times out or the network connection is disconnected while performing a replacement, it is possible that the action is still performed by the server even though a confirmation was not received by the client. In such cases the requests python module will error out, which causes the whole operation to be cancelled, and the new ephemeral key is thrown away.

    This combination of events, which has happened during recent server overloads, results in certain loss of funds. Although switching to deterministic wallets will mitigate the worst aspects of this problem, a stopgap measure is still needed before then to protect user funds.

    Probably the easiest solution is to save the wallet with a "unconfirmed" array of webcash secrets just prior to making the replace API call. Should a wallet later be opened with this field populated, the secrets should be run though the health check API to see if the transaction went through.

    opened by maaku 0
  • Sorting webcash in wallet to enable effecient consolidation

    Sorting webcash in wallet to enable effecient consolidation

    Does it make sense to auto-sort webcash secrets in the wallet? This mimics real life behaviour where you use up small denoms for any transaction before dipping into bigger denoms. Currently the wallet searches for exact value or consolidates top of stack, irrespective of value.

    I have an implementation and PR available to be merged.

    opened by xorson 3
  • 2 features added, list webcash (coins) and spend webcash from specific secret (payX)

    2 features added, list webcash (coins) and spend webcash from specific secret (payX)

    This implements 2 features:

    Allowing the user to view all webcash secrets in their wallet in a clean manner
    Allowing a user to pay from a specific webcash secret
    

    At some point perhaps Webcasa.app can allow a user to click on the secret they wish to spend from, via a checkbox list.

    opened by xorson 0
  • Fix off-by-one error in walletdepth calculation.

    Fix off-by-one error in walletdepth calculation.

    If the reported wallet depth in the wallet is one less than the actual walletdepth, the recovery code did not fix it. This commit commit fixes that off-by-1 error.

    opened by maaku 1
Owner
Bryan Bishop
Bryan Bishop
Pancakeswap Sniper BOT - TORNADO CASH Proxy (MAC WINDOWS ANDROID LINUX) A fully decentralized protocol for private transactions

TORNADO CASH Proxy Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A fully decentralized protocol for private transactions ⭐️ AUTO DOWNL

Crypto Trader 1 Jan 5, 2022
LavaAPI - A simple library for accepting payments and using the LAVA Wallet

This library was created to simplify the LAVA api provided on the official websi

Vlad Baccara 8 Dec 18, 2022
A python package to easy the integration with Direct Online Pay (Mpesa, TigoPesa, AirtelMoney, Card Payments)

A python package to easy the integration with Direct Online Pay (DPO) which easily allow you easily integrate with payment options once without having to deal with each of them individually;

Jordan Kalebu 2 Nov 25, 2021
A customizable, multilanguage Telegram shop bot with Telegram Payments support

Greed A customizable, multilanguage Telegram shop bot with Telegram Payments support! Demo Send a message to @greedtestbot on Telegram to view a demo

Stefano Pigozzi 328 Dec 29, 2022
Instant messaging client in tkinter

Concord_client_tk Instant messaging client in tkinter Contributors : Ilade-s [https://github.com/Ilade-s] Doku [https://github.com/D0kuhebi] Descripti

Raphaël Merlet 2 Jun 15, 2022
null 4 Oct 28, 2021
Fortnite Dumper for anyone's Save the World profiles.

Anyone's Fortnite Save the World Profile Dumper This program allows you to dump anyone's Fortnite Save the World Profiles. How to use it? After starti

PRO100KatYT 6 Apr 13, 2022
Infinity: a Twitter retweet bot that can be used by anyone

INSTAMATE Requires Firefox Instapy Python3 How To Use? Fork the repository Add your credentials in the bot.py file Save commits Clone your fork cd int

unofficialdxnny 3 Jun 23, 2022
TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX)

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX)

Crypto Trader 1 Jan 6, 2022
TORNADO CASH Proxy Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX)

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A ful

Crypto Trader 1 Jan 6, 2022
Fastest Pancakeswap Sniper BOT TORNADO CASH 2022-V1 (MAC WINDOWS ANDROID LINUX)

Fastest Pancakeswap Sniper BOT TORNADO CASH 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ AUTO BUY TOKEN ON LAUNCH AFTER ADD LIQUIDITY ⭐️ ⭐️ Support Uniswap

Crypto Trader 7 Jan 31, 2022
OpenZeppelin Contracts written in Cairo for StarkNet, a decentralized ZK Rollup

OpenZeppelin Cairo Contracts A library for secure smart contract development written in Cairo for StarkNet, a decentralized ZK Rollup. ⚠️ WARNING! ⚠️

OpenZeppelin 592 Jan 4, 2023
A decentralized messaging daemon built on top of the Kademlia routing protocol.

parakeet-message A decentralized messaging daemon built on top of the Kademlia routing protocol. Now that you are done laughing... pictures what is it

Jonathan Abbott 3 Apr 23, 2022
A fully decentralized protocol for private transactions FAST snipe BUY token on LUANCH after add LIQUIDITY

TORNADO CASH Pancakeswap Sniper BOT 2022-V1 (MAC WINDOWS ANDROID LINUX) ⭐️ A fully decentralized protocol for private and safe transactions ⭐️ AUTO DO

Crypto Trader 2 Jan 6, 2022
API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is available. If a new grade has been entered, the program sends a notification e-mail with the subject.

OGE-ESIREM-API Introduction API to retrieve the number of grades on the OGE website (Website listing the grades of students) to know if a new grade is

Benjamin Milhet 5 Apr 27, 2022
Experimental bridges between Telegram calls and other platforms.

Bridges by Calls Music Experimental bridges between Telegram calls and other platforms. Current bridges Bridge 1 (YouTube, Twitch, Facebook, etc...) B

Calls Music 14 Oct 8, 2022
Talon accessibility - Experimental Talon integrations using macOS accessibility APIs

talon_accessibility Experimental Talon integrations using macOS accessibility AP

Phil Cohen 11 Dec 23, 2022
A Discord bot that enables using breakout rooms on a server

Discord Breakout Room Bot This bot enables you to use breakout rooms on your Discord server! Note This bot was thrown together within a few hours, so

Till Müller 2 Nov 23, 2021