# Gribble

gribble is a modified Supybot IRC bot, carrying some useful bitcoin-related commands and factoids. The bot's command sequence is ';;', to issue any command just start a line with two semicolons. You can also issue inline commands with two commas.

It is present on #bitcoin (general discussion), #bitcoin-core-dev (bitcoin information queries), #bitcoin-otc (facilitate over-the-counter trading, with the OTC order book and OTC web of trust), and a number of other channels. You can also PM commands to gribble and it will PM back.

## Source code

The core of gribble is a modified supybot. Code lives here.

The code for bitcoin-related plugins lives here.

## General Info

To get help on any command, try 'help <command>', to get a list of bitcoin-related aliases, run 'apropos bc', and to get a list of factoids, run command 'facts', and click on the link supplied.

## List of commands

### Mining/network/hashrate stats

**hextarget**- show the current difficulty target in hex. if optional block number argument is specified, show target for that block.**bcstats**- show some statistics about the block chain - number of blocks, difficulty, estimated next difficulty target, time to next difficulty**blocks**- show the current number of blocks in the bitcoin block chain**blockdiff**- show difficulty for a specified past block.**bounty**- show current block reward bounty, in BTC.**diff**- show the current generation difficulty**diffchange**- show estimated percent change in difficulty**estimate**- show the estimate of the next difficulty, based on data since last change^{[1]}, and for last three days.**genprob**- show the probability of getting at least one block at given hashrate, in a given time period, at given difficulty. uses current difficulty by default.**genrate**- given the hash rate, and optional difficulty, calculate expected BTC generation per day and per hour. uses current difficulty by default.**gentime**- given a hash rate, and optional difficulty level, calculate the expected average time to generate a block. uses current difficulty by default.**halfreward**- show estimated time of next block reward halving.**interval**- show the average time between blocks, over the past 1000 blocks. If given optional integer argument, use that many blocks for the estimate.**nethash**- current 3-day estimate of network hash power, in Ghps.**nextretarget**- show the block at which the next difficulty change will take place**prevdiff**- show previous difficulty level**prevdiffchange**- show previous difficulty percent change.**timetonext**- show estimated time to reach the next difficulty target**totalbc**- show total number of bitcoins in existence.**tblb**-- given an interval in seconds, calculate the expected time between blocks which take at least <interval> seconds to create.**tslb**- show time elapsed since last generated block.

Big kudos goes out to theymos for providing a web interface to real time statistics about the bitcoin block chain, and to http://blockchain.info for a similar service.

### Markets and exchange rates

**avgprc**- show average 24h, 7d, and 30d trading prices of BTC in various currencies.**bc,convert**- convert bitcoin price, based on Mt.Gox last, to currency you specify. e.g., try 'bc,convert eur' for euros.**bc,fx**- show various currency exchange rates**bc,xag**- show price of silver in BTC**bc,xau**- show price of gold in BTC**ticker**- show pretty-printed ticker. takes a number of optional arguments to customize output.**bids**- given a numeric argument, shows how many total btc are being demanded on MtGox at or over the given price. If optional '--under' argument given, looks under the price.**asks**- given a numeric argument, shows how many total btc are being offered on MtGox at or below given price. If optional '--over' argument given, looks over the price.**market buy**- supply number of btc to buy (or with --usd option, number of dollars to spend buying), to see the results of such a market order.**market sell**- supply number of btc to sell (or with --usd option, number of dollars receive from selling), to see the results of such a market order.**obip**- order book implied price. finds the weighted average price of BTC by averaging over the order book N coins away from the spread in both directions.**baratio**- shows total USD volume of bids, total BTC volume of asks, and ratio of the two.

### Mining pool statistics

Current hash rates are shown in Mhps.

**bc,slushpool****bc,eligius****bc,p2pool****bc,btcguild****bc,deepbit****bc,ozcoin****bc,bitpenny**

### Other

**bc,help**- show list of 'bc,' commands - same as 'apropos bc'.**bc,wiki**- fetch a link to a page in this wiki, based on a search string. For example, to see a link to this page, try 'bc,wiki gribble'.

- See OTC guide about using the order book
- See OTC GPG guide about using the gpg authentication system
- See Web of Trust guide about using the rating system/web of trust

### General commands

The above list is specifically for bitcoin-related commands. See this page for list and help of most commonly used non-bitcoin-related gribble commands. You can find more helpful info on the gribble project page, or by exploring the bot with 'list' and 'help' commands.

## Examples

<me> ;;bc,blocks <gribble> 167418

<me> Check out the current difficulty! ,,bc,diff <gribble> 1376302.2678864

<me> Here is a list of all gribble bitcoin commands: ,,(apropos bc) <gribble> Alias bc,24hprc, Alias bc,altprofit, Alias bc,avgprc, Alias bc,bcm, Alias bc,bitpenny, Alias bc,blockdiff, Alias bc,blocks, Alias bc,bounty, Alias bc,btceur, Alias bc,btcgbp, Alias bc,btcguild, Alias bc,btcrub, Alias bc,btcto, Alias bc,calc, Alias bc,calcd, Alias bc,channels, Alias bc,convert, Alias bc,deepbit, Alias bc,diff, Alias bc,diffchange, Alias bc,eligius, Alias bc,estimate, Alias (2 more messages) <me> ;;more <gribble> bc,exchb, Alias bc,fx, Alias bc,gen, Alias bc,gend, Alias bc,halfreward, Alias bc,help, Alias bc,hextarget, Alias bc,intersango, Alias bc,interval, Alias bc,mtgox, Alias bc,mtgoxask, Alias bc,mtgoxbid, Alias bc,mtgoxlast, Alias bc,nethash, Alias bc,nexttarget, Alias bc,ozcoin, Alias bc,p2pool, Alias bc,p2poolalt, Alias bc,p2pooldiff, Alias bc,prevdiff, Alias bc,price, Alias bc,prob, Alias (1 more message) <someoneelse> ;;more me <gribble> bc,probd, Alias bc,sectohalve, Alias bc,silkroad, Alias bc,sincelastblock, Alias bc,slushpool, Alias bc,spotestimate, Alias bc,stats, Alias bc,swepool, Alias bc,timetonext, Alias bc,totalbc, Alias bc,tradehill, Alias bc,tslb, Alias bc,wiki, Alias bc,xag, and Alias bc,xau

<me> ;;list <gribble> Admin, Alias, Anonymous, AutoMode, Channel, ChannelLogger, ChannelStats, Conditional, Config, Debug, Dict, Dunno, Factoids, Filter, Format, GPG, GPGExt, Games, Gatekeeper, Google, Herald, Internet, Later, Market, Math, MessageParser, Misc, Network, OTCOrderBook, Owner, Plugin, RSS, RatingSystem, Relay, Reply, Scheduler, Seen, Services, Status, String, Time, Topic, Unix, User, Utilities, (1 more message)

<me> ;;list Alias <gribble> ?, about, add, bashorg, bc,24hprc, bc,altprofit, bc,avgprc, bc,bcm, bc,bitpenny, bc,blockdiff, bc,blocks, bc,bounty, bc,btceur, bc,btcgbp, bc,btcguild, bc,btcrub, bc,btcto, bc,calc, bc,calcd, bc,channels, bc,convert, bc,deepbit, bc,diff, bc,diffchange, bc,eligius, bc,estimate, bc,exchb, bc,fx, bc,gen, bc,gend, bc,halfreward, bc,help, bc,hextarget, bc,intersango, bc,interval, bc,mtgox, (3 more messages)

<me> ;;sl bitcoin <gribble> http://bitcoin.org/ | Official site offering documentation, forums and the open source client software which permits to send and receive bitcoins.

<me> Some commands have more than one argument. Surround with parens. <me> e.g., Is your wallet safe? ,,(bc,wiki secure wallet) <gribble> https://en.bitcoin.it/wiki/Securing_your_wallet | Introduction. Wallet security can be broken down into two independent goals: ... Making a new secure wallet, using appropriate long-term protection. For a brief ...

<me> ;;market convert 9000 usd to eur <gribble> 7178.4

<me> ;;later tell nanotube Hey, I need to talk to you. Let me know when you're online. <gribble> The operation succeeded.

<me> ;;auth me <gribble> Request successful for user me, hostmask me!~me@freenode/me. Your challenge string is: freenode:#bitcoin-otc:69a5920b6c5aa77a8f9c34da066ad95b70985da197bd3d917277929ca8fc52e2 <me> ;;verify http://pastebin.com/raw.php?i=your-pgp-signed-challenge-string-in-pasted <gribble> You are now authenticated for user 'me' with key ABCDEFGH12345678

### List of commands

8ball, ?, about, action, add, alert, alias, announce, announce add, announce list, announce remove, any, aol, apply, apropos, asks, at, auth, author, avgprc, azn, balance, ban add, ban list, ban remove, base, bashorg, bc,24hprc, bc,avgprc, bc,bear, bc,bitpenny, bc,blockdiff, bc,blocks, bc,bounty, bc,btcguild, bc,calc, bc,calcd, bc,convert, bc,deepbit, bc,diff, bc,diffchange, bc,eligius, bc,estimate, bc,fx, bc,gen, bc,gend, bc,help, bc,hextarget, bc,intersango, bc,interval, bc,mktcap, bc,nethash, bc,nexttarget, bc,ozcoin, bc,p2pool, bc,p2poolalt, bc,p2pooldiff, bc,prevdiff, bc,prevdiffchange, bc,price, bc,prob, bc,probd, bc,silkroad, bc,sincelastblock, bc,slushpool, bc,spotestimate, bc,stats, bc,tblb, bc,timetonext, bc,totalbc, bc,tslb, bc,wiki, bc,xag, bc,xau, bcauth, bcregister, bcstats, bcverify, bids, binary, bitcoinrss, blockdiff, blocks, bold, book, bot, botsnack, boturl, botweb, bounty, bsx, btcauth, btcregister, btcverify, buy, cache, calc, call, cand, capabilities, capability add, capability list, capability remove, capability set, capability setdefault, capability unset, capitalize, ceq, change, changeaddress, changekey, changename, channel, channeldb, channels, channelstats, cheer, chr, cif, clearq, cmd, coin, collect, color, colorize, command, commands, concat, config, configure, connect, contributors, convert, copumpkinprice, cor, countargs, cpu, crypt, ctell, ctime, cut, cxor, cycle, decode, default, defaultcapability, defaultplugin, dehalfop, deleteuser, deop, devoice, dice, dict, dictionaries, diff, diffchange, direct, disable, disconnect, dns, do, doctype, driver, drmath, drmathcheck, ea, eauth, ebay, echangekey, echo, ed, eightball, elapsed, enable, encode, environ, eregister, errno, estimate, ev, eval, events, everify, exec, exn, export, factlist, facts, feed, fetch, field, fight, fit, flush, forget, format, fortune, gangnam, ge, genprob, genrate, gentime, get, getprefix, getrating, gettrust, ghost, give, giveme, giveout, gnu, google, goxlag, goxvol, gribble, gt, h, halfop, halfreward, headers, hebrew, help, hexip, hexlify, hextarget, histsearch, hostmask, hostmask add, hostmask list, hostmask remove, hug, icalc, ident, identify, ignore, ignore add, ignore list, ignore remove, info, infographic, insert, interval, invite, ircquote, isitdown, jeffk, join, kban, key, kick, last, latency, le, learn, leet, len, letmein, levenshtein, limit, list, lithp, lmgtfy, load, lobotomy add, lobotomy list, lobotomy remove, lock, logmark, lower, ls, lt, ltcbtc, lucky, match, md5, mode, moderate, monologue, more, morse, mp, names, nceq, ne, net, netcraft, nethash, networks, nextretarget, nge, ngt, nick, nicks, nle, nlt, nmc,last, nne, notes, notice, obip, oobhresponse, op, ord, otc, outfilter, part, password, pet, petuser, pgp, phonebook, pid, ping, pl0x, plugin, plugins, pong, preferredsupportlink, prefsup, prevdiff, prevdiffchange, private, processes, progstats, quit, rainbow, random, randomize, rank, rate, rated, re, reconnect, redo, refresh, register, reload, remove, rename, reorder, repeat, replace, replies, reply, repr, restore, reverse, ripple, roar, rot13, roulette, rpn, rss, sample, say, scramble, search, seconds, seen, sell, sendquote, separator, server, set, set password, set secure, settrace, sfideasearch, sflaconica, sfticketsearch, sftwitter, sfuserpage, sfwikisearch, sha, show, shrink, shuffle, simpleeval, since, size, sl, slap, slogan, smack, soundex, source, spell, spellit, squish, stats, status, stripcolor, success, sudo, suicide, supa1337, swap, synonym, t, targetproject, tell, templatelink, texthelp, threads, ticker, tickeruk, time, timetonext, title, tmp, tn,blocks, tn,diff, topic, totalbc, translate, trustinfo, tslb, tz, ud, unauth, unban, unbinary, underline, undo, undup, unhexlify, unidentify, units, uniud, unload, unlock, unmoderate, unmorse, unrate, unregister, unrename, unsettrace, until, upkeep, upper, uptime, urlquote, urlunquote, user, username, utime, vacuum, verify, version, view, voice, voiceme, whatis, whoami, whois, wk, wotgraph, wp, wq, wrongulate, wtf, xagusd, xauusd, xor, and yt