Skip to content
crypto currency submission mix server plugin
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


crypto currency transaction proxy mixnet microservice

The currency plugin proxies crypto currency transaction blocks to a daemon via the BTC JSON HTTP RPC. That is to say, many of the crypto currency daemons use this RPC besides just bitcoin. Here we only make use of the Send Raw Transaction command. This simple mixnet service receives transaction blobs from arbitrary anonymous clients on the mixnet and submits them to the blockchain.


It's a plugin. You are not supposed to run it yourself on the commandline. See the handbook to learn how to configure external plugins:

( if that's not enough then read our spec: )

./currency-go -h
  Usage of ./currency-go:
    -f string
        Path to the currency config file. (default "currency.toml")
    -log_dir string
        logging directory
    -log_level string
        logging level could be set to: DEBUG, INFO, NOTICE, WARNING, ERROR, CRITICAL (default "DEBUG")


In order to use this plugin your Katzenpost server will need a configuration section that looks like this:

  Capability = "zec"
  Endpoint = "+zec"
  Disable = false
  Command = "/home/user/test_mixnet/bin/currency-go"
  MaxConcurrency = 10
    log_dir = "/home/user/test_mixnet/zec_tx_logs"
    f = "/home/user/test_mixnet/currency_zec/curreny.toml"

Here's a sample configuration file for currency-go to learn it's Ticker and RPC connection information, currency.toml:

Ticker = "ZEC"
RPCUser = "rpcuser"
RPCPass = "rpcpassword"

C bindings

Firstly, build the client_bindings as documented here:

And then build the currency common bindings:

cd common/bindings
go build -o -buildmode=c-shared bindings.go

Finally, we can build our example C wallet:

gcc ./examples/wallet.c ./common/bindings/ ../../client_bindings/ -I /home/user/gopath/src/ -I /home/user/gopath/src/ -o wallet


AGPL: see LICENSE file for details.

You can’t perform that action at this time.