Drugslist Now Offering FULL API multi-sig escrow

5 minute read

Posted by: DeepDotWeb

January 25, 2014

It seems that some marketplaces are headed in the right direction, as we previously reported – the Drugslist marketplace, started offering a Multisig escrow that is meant to help buyers and sellers protect themselves from the option of losing all their funds in case the marketplace gets shut down or the owner is deciding to scam everyone, but the problem with “regular” multisig (i.e Multi-sig Lite) escrow is that the marketplace still being the one who holds the private keys for the transaction – which means he can still “finalize” them and steal the funds.

In the new Multisig version that was launched by the marketplace owners, the marketplace does not hold the private keys – hence, cannot collect all the escrow funds and shut down the market, running away with everyone’s BTC, druglist currently being only the second market (out of about 30 marketplaces) to offer such functionality while the first one is  themarketplace.i2p (not exactly the same, but with the same bottom line), and this is how this works on the technical side, quoted from the Reddit post mad by the Admins:

Visit Drugslist at this url: http://drugslisvdknitqd.onion/

===Quote===
Hi everyone:

We are pleased to announced the launch of our new fully featured API escrow system as well as our new login page, which was updated due to user request.

Our site now offers, a fully featured API escrow, auto withdraw for vendors, 1% commission payments on any money spent by anyone whom you refer, a fully integrated forum and email system, client side pgp encryption and decryption as well as a very active customer support and development team.

Please understand that we know it is confusing and we will be creating an easier user interface this weekend. This is now the only fully featured API escrow available on any darknet TOR market. At the request of our users, we created this 2nd version multi-sig whereby drugslist only holds only one key (our own).

**Please also be aware that you are still free to use the old multi-sig escrow system, which we’re calling it “multi-sig lite” if you prefer (which requires you to do nothing differently than normal- think Ebay). If you trust your vendor and wish to use FE, that is also an option. **

The API is built on top of JSON-RPC (http://json-rpc.org) and can developed in pretty much any language. Anyone who’s interested can access it by using your drugslist username and password credentials and the URL http://drugslisvdknitqd.onion/api.

PHP Example with jsonRPCClient.php:

$user = ‘username’;
$pass = ‘password’;
$host = ”drugslisvdknitqd.onion”;
$port = 80;

$dl = new jsonRPCClient(“http://{$user}:{$pass}@{$host}:{$port}/api/”);

The system is very robust and offers developers the ability to a wide variety of operations on the site:

getInfo() — gets your profile information and balance and returns it in an array
getBalance() — gets your balance and returns it as a string
searchDrugs(search) — searches active drugslist listings and returns an
array of drugs available for purchase
getListing(id) — gets one particular listing by drugslist ID and returns
an array of listing information
getDrugsByVendor(vendor) — gets drugs by a vendor returned in an array
getVendor(vendor) — gets information about vendor returned in an array
listRegions() – lists available regions that drugslist uses for shipping destinations and origination
getDrugsByOrigin(region) — get drugs by region returned in an array
getDrugsByDestination(destination) — get drugs by destination returned in an array
getDrugsByName(drug) — gets drugs by name returned in an array

We’re calling our old multi-sig escrow “Multi-sig Lite” and today we’re releasing our “full version” multi-sig escrow system that will enable buyers and vendors to have full control of their private keys with out drugslist intervention.

It works like this:

1. Buyer finds a vendor selling drugs that he wants to buy through searchDrugs(search).

2. Buyer sends a request to our API using requestForDrugs(array) with a JSON array built as:

“drugslistID” => drugslistID#
“shippingID” => shippingMethodID#
“quantity” => amount#,
“delivery” => “[PGP ENCODED DELIVERY INSTRUCTIONS]”,
“btc” => “[bitcoin address that the buyer controls and has the private key],

requestForDrugs(array) returns a string containing a drugslist transaction request number. At this point, it’s only a “request for drugs” as the buyer hasn’t sent money to anyone nor has the vendor approved the request (which will turn into an order).

3. Vendor sees request with getRequests() or via an email alert, and can do either of the following actions:

– Reject -> cancels request with rejectRequest(id)

– Accept -> approveRequest(id, “[bitcoin address that the vendor provides”])

4. Now, we have the buyer’s BTC and vendor’s BTC, so drugslist creates a multi-sig address using the three accounts. The buyer and vendor are given the instructions to re-create the multi-sig address on their end with our

multisigHelp() function.

Now drugslist gives the buyer:
– the multi-sig address created with the three addresses
– the three address so he can re-create it on his end
– and asks to send money to it.

The buyer is given those in a returned array from getOrderStatus().

The funding window will close in 6 hours (and this variable will able to be chosen by the vendor) to prevent wide swings in market fluctuation.

5. Buyer sends money to BTC address and updates his transaction with: updateOrderStatus(id,txid) and drugslist creates the a raw transaction with 95%/5% split to the vendor and marketplace.

6. Vendor ships out package and the raw transaction using his favorite bitcoin client. The vendor then submits the signed transaction to drugslist with:

updateOrder(id, “[HEX]”)

7. When buyer receives package, he can do any of the following:

– send a command to the drugslist API asking drugslist to sign the transaction using our 1/3 vote
-, log into drugslist and click “Received” package and again, drugslist signs the transaction using our 1/3 vote
– or he can issue payment by getting the last signed transaction with getOrderStatus() and signing the transaction and submitting the transaction himself.

For users who want full documentation of our API, please visit our forum.

**** Please note that this is not required by any measure, and we still offer the easier, Multi-sig Lite and traditional escrow services. ******

**** The first implementation, Multi-sig Lite, is more than adequate for the majority of our users and is seamless and easy to use.******

As always, we are available to answer any questions/comments/concerns.

===Quote===

We support any market that will use these features to protect their buyers / vendors fund and show honest intents in these confusing times for the Dar knet markets. You can access Drugslist market at this url: http://drugslisvdknitqd.onion/

Or check out out hidden marketplace list – for other marketplaces and updates.

Updated: 2014-01-25

Updated: