Truledger Client HTTP Proxies

Submitted by Bill St. Clair on Wed, 21 Mar 2012 12:53:21 GMT  <== Truledger ==> 

Truledger version 1.1.4 is up. This version fixes a few bugs and adds HTTP proxies for client connections. Proxies are automatically filled in for .i2p and .onion addresses, but you can specify any proxy you want. Updated binaries are at


Add comment Edit post Add post

Solutions: Open Transactions - Video 1

Submitted by Bill St. Clair on Sat, 10 Mar 2012 14:03:53 GMT  <== Truledger ==> 

Occupy The Banks - this is 5 months old, but I just ran across it on Twitter. They're trying to get people to learn about Open Transactions, via its test GUI, Moneychanger. Last I heard, Open Transactions isn't ready for prime time, though it gets closer every day, but it's nice to see some marketing for it.

Open-Transactions is a solid, easy-to-use, financial crypto and digital cash LIBRARY, including a client API, a working Server, a GUI Test Wallet (in Java) and a command-line test wallet. Open-Transactions thereafter referred to as 'OT' allows users to issue and manipulate digital assets.

Add comment Edit post Add post

Libya, War, Gold, Interdependence, Liberty and the Rule of Law

Submitted by Bill St. Clair on Fri, 04 Nov 2011 13:59:05 GMT  <== Politics ==>   <== Truledger ==> 

Rayservers - a discussion between Carlos Leal and Lorene Haggard, from Ms. Haggard's Facebook page, Court of Record. I have been slow to document this case, because I don't completely understand it. You can read more by clicking on the icons below. The Global Settlement Foundation is a replacement for the world's banking cabal. Based on Gold Globals and Silver Isles, 1/10 of a gram of gold and silver, respectively. Ledger and trading done with a Truledger installation at Branded clients available for download there. Disagreements adjudicated by the Global Isles Court of Record. Earlier blog posts also worth reading: David vs Goliath - An American Woman, The Queen of England and a Court of Record vs USA corp - a Discussion and David vs Goliath: The Sovereign, We the People vs United States of America.

Global Settlement FoundationPay Gold GlobalsGlobal Isles Court of Record

Add comment Edit post Add post

Truledger 1.1.3

Submitted by Bill St. Clair on Thu, 20 Oct 2011 13:37:19 GMT  <== Truledger ==> 

Truledger version 1.1.3 clients are available for download. There are installers for Mac, Windows, and Linux, making it much easier to use than before. I also moved the DB location from the "truledger-dbs" sub-directory of wherever the Truledger app is started to a standard place on each platform (you can override the default with the --dbdir command line arg):

Mac: $HOME/Library/Application Support/Truledger/dbs/ ($HOME is /Users/<userid>)
Windows: %APPDATA%/Truledger/dbs/ (%APPDATA% is /Users/<userid>/Appdata/Roaming)
Linux/FreeBSD: $HOME/.truledger/dbs/ ($HOME is usually /home/<userid>)

I also added a Loom client, and converted the entire web UI to a template system, so it's fairly easy to change it without changing the code. See for GSF-branded Truledger client downloads.

Updated client docs to follow.

It is very nice to see the Truledger icon (thank you Mark Herpel) in my iMac's dock and whenever I switch applications with command-tab. It's also on the Gnome menu (Applications/Office/Truledger) in my Debian VM and the desktop and Start menu in Windows.

Add comment Edit post Add post

Truledger 1.0b2

Submitted by Bill St. Clair on Sun, 07 Aug 2011 10:18:25 GMT  <== Truledger ==> 

I added two-phase commit to Truledger, fixed a few bugs, built new binaries for all platforms, and dubbed it version 1.0b2. It's built with Quicklisp now, using my limited-thread-taskmaster to cap memory usage, and improve responsiveness. fsdb is now split out into a separate system, using Nikodemus Siivola's SBCL code. Still waiting for our crypto guy to finish cl-crypto, so I can dump OpenSSL in favor of pure lisp.

Add comment Edit post Add post

Cypherpunkd Episode 028: "Truledger: An Anonymous Digitally Signed General Ledger and Trading System" -- Intro and Walkthrough

Submitted by Bill St. Clair on Fri, 13 May 2011 02:14:36 GMT  <== Truledger ==> 

Hiro White and Bill St. Clair at Agorist Radio - Hiro interviewed me about Truledger on Wednesday, 11 May, 2011. Had a good time. Guided him through registering an account, and using some of the client functionality. The hour went amazingly quickly.


Add comment Edit post Add post

Truledger Wire Encryption

Submitted by Bill St. Clair on Sat, 04 Dec 2010 14:20:29 GMT  <== Truledger ==> 

I implemented encryption between the client and server in Truledger - The client requests a session:


The server sends back a session ID and key, encrypted to the user's PGP public key:

(<serverid>,@opensession,(<id>,opensession,<serverid>,<req#>),<pubkey encrypted: [<sessionid>,<sessionkey>]>)

Further communication happens AES-128 encrypted with the sessionkey:

[<sessionid>,<iv>,<sessionkey encrypted: message>]

Where <iv> is a random initialization vector, generated for each message, used for CBC.

Sessions expire after 5 minutes of inactivity or an hour total. I'll probably eventually make this a preference, and allow selection of AES-192 or AES-256 or Tempest in addition to AES-128.

The live server at is now running this code, and I created new binaries including it at

This is the first use of our new pure-lisp crypto library. Soon, we'll have RSA and SHA1 in pure lisp, too, and I'll drop the dependence on the OpenSSL library.

2 comments Edit post Add post


Submitted by Bill St. Clair on Thu, 11 Nov 2010 00:17:49 GMT  <== Truledger ==> 

At the urging of possibly my first real user, I have renamed Trubanc to Truledger. This removes the words "bank" and "banc" from the web site, code, and protocol. Because I've renamed "bank" to "server" in the protocol, Trubanc clients are not compatible with Trubanc servers. Because I've renamed "bank" to "server" in some of the database file and directory names, existing Trubanc databases need to be updated to work with the Truledger code. Ask me if you have such a database.

I have added two new features, which you can read about in the db & protocol spec (and play with yourself if you get an account or run your own server).

Non-refundable transaction fees, which can be in any asset. This can help fund a server.

Permissions, allowing a server operator to control the minting of coupons, the handing out of tokens for new accounts, and the creation of new assets.

I plan to do auditing and proper disagreement resolution next.

The new Truledger server has a fresh database, so any test accounts you had are gone. I still have the old data, though, so if you really want something from there, just ask.

If you want to play with it, just ask me for a coupon to create a new account. My email address is at the bottom of the page.

Add comment Edit post Add post

Trubanc 1.0b1

Submitted by Bill St. Clair on Wed, 15 Jul 2009 15:57:56 GMT  <== Truledger ==> 

Trubanc is an anonymous, digitally-signed vault and trading system. Like Loom, it allows anyone to issue assets (digital currencies). Unlike Loom, which relies entirely on (very good) obscurity for security, Trubanc's digital signatures allow the bank and the customer to prove to each other that they agreed at a particular time on their balances. It does this while allowing destruction of transaction history for closed trades. Trubanc will initially provide server-based trading. Eventually, it will provide digital checks and bearer certificates.

I started working on Trubanc in August of 2008. I announced a public beta of the PHP implementation in December and added storage fees in March of 2009. In late March, I started converting the PHP to Common Lisp. Today, I'm announcing the first public beta of that implementation. is now running the Lisp client and server, and you can download the client/server binary, and use it on your PC as a client, or on your own server, as your own Trubanc.

The client binary works in Windows, Linux, FreeBSD, and Mac OS X. I haven't yet built all 8 combinations of 32/64 bit and OS, but I've built the ones most requested by my early testers, and will build the others on request.

Client binaries are at Client installation and usage instructions are at Server installation and configuration instructions are at Please help me test it.

After you've installed the client, send email to bill at billstclair dot com, encrypted with my PGP public key, and including yours, if you want privacy, and I'll send you a coupon with some usage tokens for a test account.

Add comment Edit post Add post

Trubanc Storage Fees

Submitted by Bill St. Clair on Thu, 12 Mar 2009 11:32:01 GMT  <== Truledger ==> 

I have added storage fees to Trubanc.

One of the drawbacks of Loom is that there's no way to make money from Loom itself, except for small amounts of one-time income from new users for asset tokens. In order to make Trubanc a money-making proposition for the asset issuers, I have added storage fees. I expect that most Trubanc assets will be backed by precious metals in storage. It makes sense for the issuer, who must pay for the space and security of that storage, to be paid a small periodic fee. He can now set a yearly percentage rate charged for all users of his asset.

I'm going to describe the new feature with an example. I'm assuming two users, John and Mary. John creates a gold-backed asset, named "John GoldGrams", with a storage fee of 1%. The market will determine how much storage fee is viable. The Free Lakota Bank charges 1/20,000 per month, or 0.06% per year. C-gold charges 1% per year. E-gold too. Trubanc allows the asset issuer to decide what to charge, and to change it at any time.

Rather than keeping track of an average monthly balance, and assessing the storage charges monthly, Trubanc includes storage charges in every transaction, paid by the holder of the asset. So when you make a spend, you pay the fee on your original balance for the amount of time it's been there. And when you accept a spend from someone else, you pay the fee on the accepted amount, for the time that it's been in your inbox. Trubanc keeps fractional amounts on fees, so that these small amounts can add up for the asset issuer.

John creates his new asset:

John creates his new asset

To change the fee, fill in the new fee, and press the "Update Storage Fees" button:

Updating the storage fee

Mary sells John her old car, and elects to take payment as 100 John GoldGrams. Here's her inbox after John spends the 100 grams to her:

100 grams for Mary's car

After accepting the 100 gram spend, in the time it took me to write this, Mary has already lost a little to John's storage fees. She's paid less than 2 hundred thousandths of a gram, about 6 hundredths of a cent, some gold dust:

After accepting the 100 grams

Mary pays John a gram for a few old CDs, and she loses a little more gold dust:

Spend a gram

For the asset issuer, received storage fees are shown under the outbox. Here's John's account after Mary accepts the 100 gram spend and spends back 1 gram:

Storage fees received

Clicking the "Move to Inbox" button moves the received fees to the inbox as a spend from the bank for "Storage fees":

Move to inbox

Clicking the "Process Inbox" button receives the 1 gram for the CDs plus the gold dust for Mary's storage fees:

Accept fees

There's one more feature I haven't implemented yet. What I demoed above collects fees when balances change. In order to collect storage fees on balances that change infrequently, the asset issuer will be able to run a periodic batch job that visits every account, collecting fees since the last batch job was run and posting them as negative spends (remember, Trubanc can't change a user's balance without his digital signature approving the change, but it CAN post a bank charge as a negative spend).

This code is live at If you want to play with it, just ask, and I'll give you a coupon to create an account or three.

1 comment Edit post Add post