Understanding and Using the Particl Open Marketplace

Ben
Particl News
Published in
13 min readAug 11, 2019

--

This tutorial will walk you through how using the Particl Open Marketplace the correct way. It assumes you already have access to a market-enabled wallet on Particl Desktop. If you do not see the MARKET tab on the left side-bar, then please follow this step-by-step guide on Particl’s blog or this walkthrough on Particl’s Wiki.

Step 1: Wait for the Blockchain to be Fully Synced

If it is the first time you download the Particl blockchain, it can take up to several hours or just few minutes for it to be fully synced, depending of your internet connection.

NOTE: The Steps 2 and 3 allow you to have a full privacy by isolating the link between your market wallet’s public balance (used to send the encrypted messages and publish listings) from all the others addresses on the blockchain.

- If you are satisfied with the privacy offered by a standard use you can: directly deposit your market wallet’s public balance, convert afterward the funds that you want to use on the marketplace to your market wallet’s anon balance (in the SEND/CONVERT page and then in the ” convert public <-> private“ tab). Wait 12 blocks for your coins to be available in your anon balance, check that you have at least a few tenths of parts in your market wallet’s public balance to pay for the encrypted messages and listings, then go directly to Step 4.

- If you want the full privacy go to the Step 2

Step 2: Deposit PART Coins to Your DEFAULT WALLET’s Public Balance

Transfer some PART coins to a public address within your DEFAULT WALLET, and then wait one confirmation (~2 minutes) for these funds to be available.

Step 3: Convert PART Coins From Your DEFAULT WALLET‘s Public Balance to Your MARKET WALLET’s anon balance

To use the Particl Open Marketplace, you will need to fund your wallet with coins and hold public AND anon balances. The public balance is used to pay for listing fees, flag items, and vote on proposals, while the anon balance is used to purchase items and fund escrow smart-contracts.

In order to be sure that the coins in your market wallet’s public balance have no traceability we will first deposit your market wallet’s anon balance, then, in a second time, we will use the Market Wallet‘s anon balance to deposit your Market wallet’s public balance.

Go to the RECEIVE page of your MARKET WALLET and go to the “private address” tab, then copy the address to the clipboard.

Go to the DEFAULT WALLET’s debug console on the top right corner of your client.

Enter the following command:

sendparttoanon <private address of your market wallet> <amount>

Redo the process above to send a small amount which will be used to deposit your MARKET WALLET’s public balance afterward.

Go back to your MARKET WALLET, you now see your deposit. These funds are going to stay in your pending balance during approximately 12 blocks (~30 minutes) before they can be available in your anon balance.

Go to the SEND/CONVERT page of your MARKET WALLET and then go to the “Convert Public <-> Private” tab to send a small amount of part from your anon to your public balance. This input will be used to pay the listing fees and the encrypted messages.

Verify the amounts are correct and click on Confirm & Send.

To browse the Open Marketplace, go to the LISTINGS page. You should begin to see some listings here. If that’s not the case, click on the refresh button on the top right corner and wait some time for the SMSG network to sync. This process takes longer than the blockchain does to sync, and can take up to 30 minutes or more in some cases.

You can also browse the listings on this website: demarkets.io

NOTE: If you have some issues to display all the listings on your client after waiting, enter the following commands in the debug console (click on the terminal icon on the top right corner)

walletpassphrase “yourpassphrase” 10000
//To unclock your wallet during 10000 seconds

smsginbox clear

smsgscanbuckets
//To “rescan” the listings

Moreover, check that you have not a red triangle on the top right corner of your client where it s written “time offset”: if it is the case thanks to download this tool.

You also can see in the screenshot below that the marketplace now shows the 200 PART coins converted into an anon balance earlier. This is the balance you can now use on the marketplace.

You can now enter your country in the top right corner to make listings display the correct price, including shipping costs, depending on your location.

Congratulations! You have the Open Marketplace enabled, your anon balance has been credited, and you are now ready to use the marketplace!

Step 4: Buy and Sell

The following steps will explain how the Open Marketplace works by going through a complete purchase.

At each step of the process, an encrypted P2P network called SMSG makes the secure transmission of data and messages between the buyer and the seller. It is on this network that any marketplace content (i.e. listing pictures, orders, etc) is hosted.

SMSG messages are shared in a peer-to-peer way between all the nodes running the marketplace. Only the party you’re transacting with will be able to decrypt your messages, orders, and any other kind of information, and therefore be notified about orders and their updates.

Step 4.1: The Seller Lists an Item

The listing fees are taken from the public balance and depend of the expiry time selected as well as the quality (memory size) and number of images uploaded.

Note: When a buyer bids on one of the items an order is created and unlike the listing this order has no expiry time. There are only two ways to conclude an order: to release the soft locked funds or to complete the buy flow.

Step 4.2: The Buyer Bids

During this step the buyer is going to “soft lock” twice the price of the desired item (price of the item + shipping price). This lock process will be done using a blind balance, but will originate from an anon balance. That’s because the escrow smart-contract requires CT (blind balance) as it has “programmable outputs”, whereas RingCT (anon balance) doesn’t.

Note: if you notice that a greater amount of coins are getting locked than what you will be putting into the escrow smart-contract, it is normal. The extra locked funds will be refunded entirely, at no fee, within the next 12 blocks or so (~30 minutes). Consult the Open Marketplace’s FAQ on Particl Wiki to know why the marketplace behaves this way.

Step 4.3: The Seller Can Accept or Decline the Bid of the Buyer

If the seller rejects the bid, the soft locked funds will release back to you. If the seller accepts the bid, the funds required for the escrow will soft lock on his side.

Step 4.4: The Buyer Allows the Seller to Create the Smart-Contract

The buyer can now allow the seller to create a multi-signature smart-contract based on mutual assured destruction (MAD) game-theory. This will use both the soft locked funds of the buyer and the soft locked funds of the seller and lock them up into a 2-of-2 multi-signature address.

During this step, the buyer can also send some more information to the seller like his telephone number or email address. This step is entirely optional.

Note: At this step the buyer updates the order status from “payment” to “escrow” but the funds won’t be locked in the smartcontract before the madescrow creation which happen during the next step.

Step 4.5: The Seller Creates the MAD escrow

During this step, the seller creates the MAD escrow. The soft locked funds of the buyer and seller balances are now going into a multi-signature smart-contract.

Note: When the funds are sent to the madescrow on the blockchain these funds are not displayed anymore in the GUI in any balance until the buyer decides to release the smartcontract.

From now on, the locked funds are owned as much by the buyer than by the seller, and both need to agree that the transaction was completed satisfactorily for the insurance funds (collateral) to be refunded back to both parties.

Here’s how a MAD escrow looks like on the Particl blockchain:

  • The amounts are blinded and cannot be guessed
  • One of the addresses beginning with a p is owned by the buyer and the other by the seller
  • The address beginning with an r is the multi-signature address for the mutual assured destruction escrow
  • The coins received on these addresses have no previous history since they are coming from anon balances. Thanks to RingCT, it is impossible to tell what the address of the sender is, nor can the amounts of the funds sent into the multi-signature smart-contract be guessed.

The above two screenshots show how it looks like when trying to identify the origin of the funds being sent into a MAD escrow smart-contract.

After sending physically the item, the seller will be able to send a last message to the buyer. This usually takes the form of a tracking number, but it could also be a digital code or a download link in the case of a digital item being sold.

When clicking on the Mark as shipped, the seller gives to the buyer the opportunity to release the MAD escrow. In other words, this represents the seller signing his side of the “release transaction”. Remember, this is a 2-of-2 multi-signature smart-contract, and both parties need to sign the transaction for the funds to be released.

Step 4.6: The Buyer Releases the MAD Escrow

After receiving his order, the buyer can now click on Mark as delivered to complete the transaction and sign his side of the “releasing transactions”. Doing so will release the funds put in collateral, in this case, 50% of all the funds the buyer has put into the MAD escrow smart-contract. Of course, the other half of the funds is sent to the seller as payment for the delivered item.

Once the buyer marks the item as delivered, it will also allow the seller to be refunded his own collateral, which was equal to the value of the item shipped. In other words, marking an item as delivered releases all of the funds locked into the MAD escrow smart-contract without fees and to both parties.

This is what happened on the blockchain in the meantime:

The MAD escrow smart-contract is now released:

  • The amounts are blinded on the blockchain and cannot be traced back
  • The funds are sent to 2 different decoy addresses without traceability and land on anon balances using the RingCT privacy protocol

This is what you see if you try to know more about these addresses on the blockchain. These are just decoy addresses and it is not possible to see to which address the funds were released into.

Step 4.7: The Seller Receives the Funds on his Side at the Same Time

Congratulations! You’ve just made a sale or a purchase on the internet without leaving a single trace! Go to the step 5 to know the most private way to withdraw your funds from your Market Wallet.

(Optional) Step 5: Withdraw the funds from your MARKET WALLET without leaving a trace

Convert the amount of part you want to withdraw from your MARKET WALLET and make a “public->anon” or a “blind->anon” transaction.

Go to the RECEIVE page of your DEFAULT WALLET and go to the “public address” tab, then copy the address to the clipboard.

Go back to the MARKET WALLET, open the debug console and enter the following command:

sendanontopart <public address of your defaultwallet> <amount>

--

--