Note: TMP Does not exist anymore, but this tutorial was left as an I2P usage guide.This Amazing Guide was posted on reddit by the username: moonsh00t All The Credit goes to him! – As It was listed on the Guide that the License is BSD we believe it would be a great service to give this guide more publicity outside Themarketplace.i2p subreddit and that the hard to follow formatting should be fixed, so its our pleasure to reformat it (a bit) and post it here – The OP and updates can be found On This link
This guide is intended to outline the functional aspects of The Marketplace site. It should only be used to assist in the acquisition or resale of goods and services which you are lawfully permitted to purchase or engage in. Basically; don’t do anything naughty and if you do and Santa finds out, it’s on you. License: BSD – do whatever you want with it.
|0.1||Basic guide. Needs expansion on what to do when things go wrong and finalization etc|
|0.2||Improved guide with end-to-end Seller tutorial. Needs expansion on what to do when things go wrong; disputes and refunds|
|0.3||Full tutorial on how to claim a Refund. Improved the buyers guide slightly.|
|0.4||End-to-end detail on how to claim a payment without TMP’s involvement. Other miscellaneous corrections.|
|0.5||Tutorial on installing and configuring TAILS with persistent storage, Electrum and TMP’s Electrum plugin. Other miscellaneous corrections.|
|0.6||New, more sane Tails setup|
Terminology & Abbreviations
The following guide describes how to connect to and place your first order. Note: The Marketplace is on I2P which is slow compared to TOR, if you get timeouts, just refresh until it connects. The situation should improve as usage grows. This guide assumes you are configuring from scratch for a Windows system. The following software will be installed and used. You should download these pre-requisites to a folder on your hard-disk (E.g. C:\temp\tmpsetup\) before continuing. Java Virtual Machine: Java software – prerequisite for I2P software to install
Mozilla Firefox Browser: Browser for accessing I2P network
Bitcoin QT client 0.8.6+: Default Bitcoin client – supports multi-signature transactions. You can also use Electrum (simple to swap in), but this guide only covers Bitcoin-QT
GPG4Win 2.2.1: Provides communication encryption
I2P 0.9.9 (or above) Windows Graphical Installer: Provides access to the I2P network
Bit Address: Used for generating the public/private keys you need for signing each order. You need to generate a new address for each order (see below for usage details)
TOR Browser Bundle: Provides a more secure browser to use when using TMP.
Bitmessage: Provides a secure method for buyers and sellers to communicate outside of TMP – suggesd method for buyer-seller communication in section Finalising transactions outside of The Marketplace tutorial
About: Bitmessage – Semi-technical video highlighting Bitmessage functionality. Not required, just for those interested.
Tutorial: Installing and Configuring Bitmessage – Note: If you opt to connect over TOR, you may need to initially connect with Proxy of None otherwise the icon sits on red (unconnected) for hours. Once a successful connection has been established and the icon goes yellow, change the Network Settings to use the appropriate TOR proxy indicated in the tutorial link (127.0.0.1 Port 9150 or 127.0.0.1 Port 9050) and restart Bitmessage. The icon should be yellow or green and you’ll be connected over TOR.
TAILS (Secure Linux): Provides a secure operating system to connect to TMP. Required as part of the Installation & Configuration – For TAILS (Linux) with Electrum” tutorial.
Electrum – Lightweight Bitcoin Client: Provides a simple, flexible Bitcoin Wallet that supports The Marketplace specific plugins to make seller order management easier. Required as part of the Installation & Configuration – For TAILS (Linux) with Electrum tutorial
The Marketplace is conceptually pretty different from the other markets out there. Other darknet markets are basically giant online wallets into which buyers transfer Bitcoins before they go shopping. Once the buyer has received their goods, they permit the darknet market to release the funds to the seller who must then withdraw them. Once of the biggest disadvantages of this approach is that both the seller and buyer need to trust the darknet market to not:
- collapse; or
- walk away with all the money stored on the platform
for the duration of the transaction. When either of these eventualities occur, it can be very expensive and frustrating for both buyers and sellers. TMP goes some way to addressing these concerns using what’s called multi-signature transactions. Multi-signature transactions allow all the parties involved in handling the money (so that’s the buyer who is paying, the seller who is to be paid for the goods and the darknet market that wants their fee for providing a website to do all the business on), to always retain some control over the money for the duration of the order.
An Order Overview
To accomplish this, the buyer, the seller and the darknet market agree on a single use Bitcoin Address (the Bitcoin Deposit Address) into which the buyer will deposit the Bitcoins necessary to pay for their order. This agreement is reached by the repurposing of Bitcoin Addresses (the ones you are normally familiar with using to deposit your Bitcoins too), to act as keys to the agreed Bitcoin Deposit Address. Each participant (that’s the buyer, the seller and the darknet market) generate a Bitcoin Address which they use as a key to the Bitcoin Deposit Address. For anyone to move any of the Bitcoins out of the Bitcoin Deposit Address, it requires that at least two of the key holders authorise it. Once a buyer has received their order, they will mark it as Finalized on the TMP website. TMP then effectively inserts their key (creates a transaction signed with their key) into the Bitcoin Deposit Address used for the order and asks the seller to do the same. Once the seller inserts their key (signs the transaction), the Bitcoins held in the Bitcoin Deposit Address can be moved to the sellers nominated Bitcoin Address (E.g. a blockchain.info wallet, a BTC exchange etc) by broadcasting the signed transaction to the Bitcoin network. And that’s the magic. Unlike traditional darknet markets (Pandora, BlueSky etc), if TMP staff turned bad and wanted to steal the Bitcoins in a Bitcoin Deposit Address, they would also need either the buyer or the seller for every in-progress order to also sign off. If none of the parties agree, the Bitcoins will just sit in the Bitcoin Deposit Address for eternity but it also means that a buyer and a seller can get together completely outside of TMP and release any Bitcoins stored in Bitcoin Deposit Addresses to which they both hold the keys.
TMP Service Fees
Those who have been paying attention may be wondering where TMP receives its fee in all this? Well, when TMP creates the transaction that both it and the seller will sign to release the Bitcoins held in the Bitcoin Deposit Address, the transaction contains two output Bitcoin Addresses. One is the sellers nominated Bitcoin Address and a second is a Bitcoin Address owned by TMP which is where their fee goes. The transaction that TMP creates and asks the seller to sign can be decoded and inspected to check the proportion of Bitcoins they’ve allocated to themselves from the Bitcoins held in the Bitcoin Deposit Address before sign-off. Once the seller is happy, signs off and broadcasts the transaction to the Bitcoin network, everything is final and each party gets their share of the Bitcoins stored in the Bitcoin Deposit Address.
Declined Orders & Order Cancellations
When a buyer cancels an order that’s in progress or an order is declined by a seller (E.g. no stock etc), the process is the same as that of a seller signing off except that in this instance it is the buyer who signs-off to release the Bitcoins stored in the Bitcoin Deposit Address. TMP will ask the buyer to provide a Bitcoin Address they want their refund sent too, and then automatically create and sign the transaction (insert their key). The transaction is then passed to the buyer, who then signs off (inserts their key) and broadcasts the transaction to the Bitcoin network.