Project Decorum - Crowdsale (Ended)



I would like to buy some PDC, is anybody here willing to sell directly? I can pay with LTC, XMR, KMD or GBYTE.


Just seen these chaps on the Kaiser report;

Similar to what PDC are building?


Maybe the Decorum protocol opens the door to the option (enhanced options) of having a safe network version of it’s website?


The Decorum team will be attending DevCon AFAIK, excited to see if they have anything special!


After consideration of many different designs to transition PDC from Omni to ERC20, we now have a plan that we think provides the best security and is still reasonably user friendly. Concerning security our main goals were to not use any public-facing centralized server/database and to be completely transparent. We’ve already started implementation of this plan but would appreciate feedback from you before we launch.

Proposed usage

  • Use an ERC20 compatible Ethereum wallet (for example to generate or import an existing ETH address
  • Copy this ETH address into a small tool/app we provide, which gives you a burn address for the PDC
  • Send your PDC to this burn address (using or Omni Core)
  • Wait until we have detected and processed your burn action (probably at a fixed hour, daily) after which you can send a claim transaction to the provided Ethereum contract address to receive your new tokens

Technical details

To derive a burn address from an ETH address, where in Bitcoin usually the RIPEMD-160 hash of the SHA256 of the public key would be taken, we now simply use the Ethereum address. You can even do this manually on this webpage at step 3 (remove the 0x prefix from your Eth address):

In Javascript it looks something like this:

var bitcore = require("bitcore-lib")

// Target ERC20 address
var eth_address_str = '0xb794f5ea0ba39494ce839613fffba74279579268'
var eth_address_buf = Buffer.from(eth_address_str.replace('0x', ''), 'hex')

// Burn address
var btc_address_adr = bitcore.Address.fromPublicKeyHash(eth_address_buf)


We will use (Python) software to monitor the Bitcoin blockchain for any OMNI-PDC transactions. It can derive the ETH address from the receiving address by simply decoding the Base58 and removing the checksum bytes.

We will deploy an Ethereum smart contract to issue the new ERC20-PDC tokens. This smart contract will contain the derived Ethereum addresses and the ERC20-PDC “credit” those addresses are allowed to claim. The contract allows us to add address/credit pairs using a special address, which we will do when we detect new OMNI-PDC transactions.

While it would’ve been simpler to instantly send the ERC20-PDC to the derived Ethereum address, we cannot distinguish between a regular OMNI-PDC transaction and a transaction to a burn address. By requiring users to claim the ERC20-PDC through interaction with the smart contract we are sure the OMNI-PDC have been effectively burned. If we didn’t do this, we’d risk creating more than the current 50 million tokens that would be issued to addresses that can never be spend. It would inaccurately inflate the total supply and thus the market cap of ERC20-PDC, which would reflect badly on this project.

Because of the contract the system can’t be gamed. If you’d want to claim ERC20-PDC while you actually sent the OMNI-PDC to a bitcoin address that you own, you’re faced with the challenge of treating the RIPEMD-160 of the SHA256 of your bitcoin pubkey as an Eth address and figuring out what private key matches that Eth address. In other words, you’d have to break ECDSA and brute-force 160 bits of entropy with Keccak-256 hashing algorithm. That would also allow you to rob from any ETH address.

To figure out the private key from a burn address, you’d have to break or brute-force RIPEMD-160, SHA256, and ECDSA. If you can do this, you can rob any Bitcoin address and much more.


All of the relevant data in this process will be permanently stored in either the Bitcoin blockchain or the Ethereum blockchain. This means everything can be monitored and checked by anyone at anytime, which is how we believe a (temporarily) trusted party should behave in this ecosystem. While no system is 100% secure, we think the odds are high we can do this without serious incidents on our side. We aim to provide easy to understand guides and timely support to participants to hopefully prevent any mistakes on their side.

As mentioned earlier, feedback and questions are welcome!


I’m not so much of a programmer myself, so the technical details I cannot fully judge. But I do have a few questions, @Seneca. Rather easy ones I guess lol!

  1. The claim transaction is to be send from myetherwallet or from the small tool/app you provide, in which the burn address was created?
  2. What timeframe did you have in mind to support this conversion? PDC has been traded quite heavily in the meantime as you might know (up to $2M daily volume even!) and I presume the number of PDC holders has grown substantially after the crowdsale. How long can people claim their ERC20-PDC? How are these people being reached out to?
  3. What will happen to the unclaimed ERC20-PDC? People that forgot or otherwise don’t care so much to convert, will then the new token proceed with 50M minus unclaimed number?

Just a few things that crossed my mind. Thanks!

  1. From myetherwallet or any other wallet that supports interaction with smart contracts.
  2. I don’t think there should be a time limit, those people who prefer holding their OMNI-PDC until the transition to a fully working SAFE Network should be able to do so. The original agreement should stay valid.
  3. Since there is no time limit any pending claims just stay in the smart contract until they are claimed. If they are never claimed then so be it, we’ll continue without them.


Any update on ERC20 transition please


We’ll most likely start the transition this week.

Decentralized Social Networks on the SAFEnetwork

@Seneca Hey there! I made a post last week about an idea I had: Universal Block List. It was pointed out to me that Project Decorum is basically implementing everything I envisioned and more. I’m wondering how I can contribute to the project, but I’ve been having a hard time getting in touch with you/finding more info.

In your Devcon talk you said it’s FOSS but I can’t find the code–is it currently closed-source? I’ve got several years of coding experience, maybe I could help by submitting PRs. Also, I have another idea that I think could be implemented as a Decorum community: Guerilla Open Access. The Project Decorum proof of concept seemed to be down when I checked, but is the project in a state where I could tinker on setting up a forum instance?


We’re nearly done, the final smart contract is running on the main chain now and things are looking good with our own test (but real) transactions. We’re currently improving the user instructions, after that we should be good to go. There’s still room for some (performance/speed/uptime) improvements in the processing of burn transactions, but we can still do that after we’ve started.

Great to hear we share those ideas! Apologies for not replying to you sooner, I had seen your PM but got distracted and then forgot. Right now the project is not in a state to run a forum instance or something like that, we hope to get it that state soon, clean it up and publish the code. Right now we’re 100% focused on the ERC20 transition, but when that calms down I’ll definitely get back to you on contributing. We are able and willing to pay for relevant PR’s as well.


Great! I’ll PM you my email address.


We are ready for a soft-launch of the OMNI -> ERC20 transition!

With a soft-launch we mean that our smart contract is partially paused for now. The pause means that while the smart contract can be updated with the proper ERC20 PDC balance that you are owed, you cannot transact them just yet. This allows us to monitor if the transition data is properly registered in the smart contract before any transacting/trading starts. If something were to go wrong with the smart contract, we could just start over without any monetary losses. Any previously completed OMNI PDC burns would be fully respected.

If everything looks correct we will soon unpause the contract and make a bigger announcement, including on the official website and twitter account. While you are of course free to wait for that, we would appreciate it if some of you could go through the first three steps of the transition already:

If you want to manually double check that your burn address is generated correctly, you can do that on this website:

Insert your ETH address (without the 0x prefix) at step 3, click send, and compare the output at step 9 with your burn address. They should be the same. If not, discontinue and sound the alarm!

Thank you!

Project Decorum - ERC20 Launch


I sent my coin, everything went well! :slight_smile: Thank you!


Thanks! Step 3 should now show you the total amount you are owed. You can also see the “Approvals” here:


Hi, can I keep the coins in Omni till the final launch? Are you trying to have in both format or only on ERC 20?


Both will be accepted at launch, but Omni gives you limited options in terms of wallets and it runs on the Bitcoin blockchain which is more conservative in on-chain scaling than Ethereum, so you may need to pay higher transaction fees at launch. Unless you have a very secure cold storage solution for your OMNI PDC in place, I recommend to switch to ERC20 in combination with a hardware wallet.


Claiming the tokens, in step 4, is paused since yesterday.

When do you expect to restart the contract?


Do you have any estimate of when the contract will be re-started?

Looking forward to shifting coins over to ERC20 when it’s available.


The contract will be unpaused around 15:00 GMT tomorrow (23 May).