Wallet / walletbot user guide

A multi-coin multi-platform tip, soak, utility bot by Bill48105

Important updates

What's New

Discord update December 2021

Freenode update June 2021

"Are my coins really worth $5?" and other FAQ's

Getting started

To get started with Wallet you need to be registered & logged into whatever platform you are accessing the bot on.  For example on Freenode IRC ensure that you have registered and identified with NickServ on Freenode. You can register using the following command:

/msg NickServ REGISTER <password> <email-address>

Once registered & logged in, you are ready to go. There's no need to create an account with Wallet. You can increase your account balance in two ways; receiving coins through faucet/tips/soaks/games, or through depositing directly from a wallet or exchange. (See deposit command)

Coins

To view all the coins that Wallet current supports use the following command:

.coins list
<Wallet> Bill48105: Supported coins: BTC CORG DOGE DOGET GRLC LDOGE LTC MNC PIGGY ROGER SOON SYS VTC XMR XVG XZC - Usage: .ltc balance -or- .balance $LTC

NOTE: The default trigger prefix is . (dot) but it might vary depending
on how you access Wallet. For example if the prefix is ! you'd use:
!coins list
Or on reddit you just mention the bot:
/u/walletbot coins list

Since Wallet supports multiple coins, there is a global default coin of DOGE and each channel has ability to set their own default coin as well.  But you can always choose an available coin when issuing commands:

.btc balance
<Wallet> Bill48105: • Your balance is: 0.0000006 BTC (≈0.03 USD)

.tip Bill48105 0.1 XMR
<Wallet> Bill48105 tipped 0.1 XMR (≈$27.87) to Bill48105 [abcdef]
.info $btc
<Wallet> Bill48105: Bitcoin (BTC) • Ver: 160000 • Proto: 70015 • Blocks: 671364 • Diff: 21724.13B • Conn: 8 • Last: ≈31.04 min • Avg: ≈6.79 min • Confirm: ≈1 hr 34 min

reddit:
/u/walletbot balance $ltc

NOTE: You can select the coin in any 1 of the 3 ways shown on most platforms.
Commands and coins are NOT case sensitive.

Help

You can get a list of available commands issuing the help command:

.help
<Wallet> Bill48105: I'm a cool multi-coin multi-platform bot by Bill48105. Docs: https://bill48105.github.io/wallet/ | My core commands: .balance .deposit .faucet .ping .soak .tip .val .withdraw | .help <games|share|misc|other> to see others | .help <cmd> for more details.


You can help get detailed help & example usage on a particular command:

.help coins
<Wallet> Bill48105: Help: .coins <list|set> - list shows available coins. set saves current coin as default


Deposit

To deposit into your account use the following commands to receive your deposit addresses:

.deposit
.btc deposit
reddit:
/u/walletbot deposit $ltc

Withdraw

To withdraw coins from your account use the following commands: (Minimum & fee vary by coin)

.withdraw <address> <amount|all>
.ltc withdraw <address> <amount|all>
.xmr withdraw <address> <amount|all>
reddit:
u/walletbot withdraw <address> <amount|all> $DOGE

Balances

To see how many coins are in your account use the following commands:

.balances
.roger balance
.bal $ROGER

Soak

A soak allows a user to choose a specific amount of coins to be distributed evenly among the recently active users within a channel.

Example: When there are 10 active users in a channel and a user decides to soak 100 coins each active user will receive 10 coins each.

To soak use the command: (<minutes> is optional - Default is try to get last 10 users)

.soak <amount> <minutes>
.ltc soak $0.10 (Soaks 10 cents worth of ltc)
.soak 100 $ROGER 1440 (Soaks 100 ROGER to all people active in last 24 hours)

Soak walkthrough

This walkthrough will show and explain what happens when a soak occurs in the channel. Often times new users are confused about what the response from Wallet means after a soak so this walkthrough aims to breakdown the response and explain each part thoroughly.

A user soaks 10 DOGE (default coin) in the channel as so.

.soak 5

Wallet then outputs something that looks like the following:

<Wallet> user1 soaked 0.5 DOGE each: 10 users [abcdef]

Breakdown of the response

Wallet will first split the soak evenly between all active users, 50 in this case so each user will receive 0.2 coins each.

<Wallet> user1 soaked 50 with 0.2 DOGE each

Scraps & Community funded @bonuspot

Any left over coins that cannot be divided as whole coins will go to the community @bonuspot as scraps, 0 coins in this case. Scraps go to @bonuspot balance and are used to fund community features such as faucet, confetti ducks, games, etc.

Soaked users

The last part of the syntax is the users who are included in the soak, these are users who are active in the channel either by talking within the last X minutes. This allows users to be notified when they are included in soaks.

user2 user2 user3 user4 user5

If the list is to large the bot will only display a random subset & a code that you can use whogot command to lookup who was included

user2 user2 user3 user4 user5  (+15 more) [abcde]
.whogot abcde
<wallet> user1 -> user15 + 17 others.

Reserve

Reserves are secondary balances separate from the one used for tipping and soaking.  Your reserve can be useful to put away coins that are not show in your balance by default (privacy when doing balance in channel) or since coins can -only- be used with 'release' command, helps prevent accidental use like .soak all etc

Balances

.balance reserve
<wallet> Bill48105: Your reserve balance is 117 DOGE
.ltc balance reserve
.balance reserve $roger

Adding to Reserve

.reserve <amount>
.btc reserve 0.0001
.reserve 0.001 $LTC

Releasing from Reserve

.release <amount>
.ltc release 0.00001
.release 10 ROGER

2 Factor Authentication (2FA)

2FA is an optional yet recommended piece of security offered to users. 
2FA runs in 1 of 4 modes that can be set on a per-user basis:

WARNING! Only run set in PRIVATE! (PM/DM/messages etc)
While you can run confirm in a channel it's best to do in private as well

.secret <set|confirm>

Actions: set clear

Unlocking 2FA

To unlock 2FA to release coins from your reserve you must use the following command: (Your reserves will remain open for 120 seconds or the number of seconds specified. 0 unlocks for 1 day)

.unlock <2FA code (6 digit no spaces)> <seconds>

Locking immediately

The bot auto locks after the specified time but you can force a lock:

.lock

Tip

You can send another user a tip using the following command:

.tip <user> <amount>
.ltc tip <user> <amount>
reddit reply:
/u/walletbot tip <amount> <coin>

Jackpot

The jackpot command lets users donate to the community @bonuspot with a chance to multiply their donation sharing with active users with a soak or reward:

.jackpot <amount>

Random

Will randomly tip <amount> to random user(s).

.random <amount>
.random <amount>x<multiple>

Value

Val compares two coins or currencies.

.val <amount> <coin|currency> <coin|currency>
(If not amount is entered then a shorter summary is shown)
HINT: Most coins have automatic shortcut!
.doge
.btc

Rankings

User rankings can be viewed in several different ways.

.top10 <days>
.top20 <days>
.myrank <days>

Reward

Shares a proportional percentage of the <amount> to the top 10 or so suers.

.reward <amount>
.reward <amount> <minutes>

Active

You can check the active count with:

.active

Whosent

You can check who has tipped or shared coins with you using the following command:

.whosent

Idletime

You can check your idletime available in each <channel> via PM:

/msg Wallet idletime <channel>

You can also check your idletime from the channel directly.

.idletime

Last Seen

To check the last time a <user> spoke in the channel use the following command:

.seen <user>

Countdown

Displays the countdown to the bot's birthday as well as the dogecoin birthday.

.countdown

Donations

Donations can be made to help fund the bot & various other approved funds.
DOGE funds include:

.donate <fund> <amount>

Exchange Check

The bot allows you to check the exchange rate of many currencies directly with commands. The available coins are as follows:

.btc
.doge
.roger

Miscellaneous Commands

The bot can do many many more interesting things. Here are just a few of the fun commands available:

.8ball <Question>
.c ℉ to convert to ℃
.f ℃ to convert to ℉

See .help command where commands are broken down into "core" and various groups by type.


Maintaining Account & Dormancy Policy

The bot does not require creation of an account or logging in because it relies on the authentication of each platform and then uses the services of that platform to ensure you are logged in and account you are logged in as. This is convenient but also poses some security risks for each user to consider:

IT IS HIGHLY RECOMMENDED ALL USERS SETUP & USE 2FA ON THE BOT!

So what does all of that mean? Your bot account is only as secure as the account you login as on any given platform..  You should protect your accounts with best-practice strong passwords (never re-used!), and utilize advanced security features such as 2FA if they offer it. But in addition it's highly recommended that you setup & enable TOTP 2FA on the bot too! Why? Not all platforms offer or support 2FA but that 2FA only protects login to that account and DOES NOT protect against account re-use abuse or or other attacks on your bot account since once someone is logged into a given platform, the bot assumes that user also has access to your bot account.

To help mitigate these attacks and help keep your bot account safe the bot has the following dormancy & recovery policy:

Accounts may be unlocked or recovered from dormancy, depending on the status of your platform account. The factors vary by platform but include such things as the age (date of registration), but mostly if you can provide reasonable proof that a bot account is yours. Since the bot does not collect personal information from users, the best way to do that is having had setup 2FA on the bot BEFORE the lock or dormancy happens.. 


"Are they MY coins when they're on the bot?"

Well not really.. Why not?:

The holder of the wallet & keys is in control of the coins.
In short: If they're not in your wallet, they're not technically yours..

"Wait what?!"
Put another way:

Never store coins outside your own control you are not willing to lose.
This is true of ANY online wallet or service, including bots.

Let's explain..  When you deposit coins into the bot, when someone tips you coins on the bot, all user balances on the bot are "off chain". Meaning they are tracked outside of the normal wallet chain allowing for instant transfers without fees. For that convenience you're putting your trust in whoever holds your coins while "off chain", including the understanding that while reasonable effort to track and protect your balances, and reasonable effort to provide use of the bot including withdrawal of your balance to an address on the chain (your own wallet, exchange etc), there is no guarantee against loss no matter the cause.

So what are best practices for wallets, online wallets, or bots?

Credits

The bot wouldn't be possible without the work of others who made & support the OS, libraries, crypto currency wallets, online platforms, and various tools to make & maintain it.
Here is a list with links as thanks for their efforts:

More to come!

FAQ


** INVITING THE BOT **

While Wallet bot is available on many platforms, some utilize specific requirement & processes to add or invite bots to servers/channels. In addition, the bot will be restricted where it's available to help manage resources & avoid issues on certain platforms.  Below is a list of some details:

Notes:
For platforms like Discord that support self-adding the bot using invite link, you must request approval in advance or the bot will automatically leave if you attempt to use it where not authorized.

** WHAT'S NEW **

** IMPORTANT DISCORD UPDATE **

December 2021

Big changes at Discord regarding bots.. Here's a few links you can read about it but basically a lot is up in the air at this point as far as all bots including Wallet and if they'll still work at all depending on what library is used, if functionality from commands to bridging to moderation tools will still work, if bots will be approved in time or which bots Discord feels has proven an actual need for message intents, etc.  The intention is to keep Wallet available on Discord and retain all functionality but that may not be possible. More will be known the closer we get to the deadline but in the meantime please refer to the Best Practices section of the bot docs.
(It's highly recommended you have 2FA setup on Wallet to help identify you for recover if it comes to that)
Info on the changes:
Danny (Rapptz) Discord.py Announcement
Linus Tech Tips Discord.py Deprecated Discussion

** IMPORTANT FREENODE UPDATE **

June 2021

Wallet bot had continuously been on freenode for over 6 years with 1000's of users in dozens of channels. Unfortunately in June 2021 freenode staff migrated to new IRC software with little notice, wiping all user & channel registrations in the process. Since Wallet bot relies on the underlying platform to verify users are logged in and which account they are logged in with, doing so essentially wiped all user freenode balances as Wallet is no longer able to verify those users & link them to the correct bot account. So Wallet was immediately shutdown on freenode to protect user bot balances from being accessed by others. If there is enough demand, Wallet may be re-launched on freenode at a future time. In the meantime former freenode users can access & use Wallet & all Wallet features they've grown to love on one of the following platforms:

<Wallet> Bill48105: Status: • discord: On • libera: On • telegram: On • keybase: On • matrix: On • reddit: On • slack: On • hmail: On • rizon: On • oftc: On • twitch: On • freenode: Off

"WHAT ABOUT MY COINS?!"

Efforts have been underway to manually verify users & migrate balances to one of the other platforms. Users who had 2FA enabled on their freenode account on Wallet are getting priority migration as that makes the process more reliable & simpler. (Another reason to get 2FA enabled ASAP on ALL platforms for situations such as this..)  For those who did not, the process is more time-consuming & arduous but they're being worked thru as well. In either case, reach out to Bill48105 on one of the available platforms.
WARNING: DO NOT SHARE PERSONAL INFO WITH ANYONE!
Especially not your 2FA secret, freenode password, to be sent coins to recover, etc! You will NOT be asked for those things, even by "Bill48105" or anyone else related to Wallet. Be sure you verify you are speaking with the ACTUAL Bill48105 in one of the official coin or bot channels and do not assume you are.

TERMS OF SERVICE - Updated April 2022

The bot is provided as-is without warranty or guarantee of suitability to use as a community service made & supported by volunteers. Use of the bot should be seen as a privilege & not a right and access to the bot can be disabled or terminated at any time for any reason, without prior warning or reason provided at the time of termination. In the event your access to the bot is disabled, you can request a review of the circumstances that lead to your access being terminated with restoration at the sole discretion of the bot operators. In the event your access has been terminated, you may request a list of your balances & be provided access for withdrawal of any non-dust balances (greater than minimum required to withdraw), or they will be considered a donation to the community pots and/or to bot operators. If your access to the bot is terminated due to abuse, scamming, scheming, theft, then you forfeit access to coins in your balances. If your access is limited due to technical issue or other reason you did not cause, access will be restored as soon as possible to do so safely. In the event of bug or other issue where coins were deposited or transferred into your account by mistake, that transaction could be reversed.


PRIVACY POLICY - Updated April 2022

Just like other users, the bot may be able to see/read what you or other users say in channels or areas where the bot has joined or has read access to. That ability is required for bot functionality and is only used for such, along with diagnostics & logging required to support the bot & its use. The data collected & stored is not shared for other purposes. You can opt out of the bot having access to what is said by adjusting the channel permissions (as available), requesting a given channel be added to "ignore" list, removing the bot (ie kicking it), or by requesting you or a specific account be added to "ignore" list. Note that any of the above will disable functionality of the bot. (ie. commands will no longer work)