dARCH — Decentralized Architecture Competition Series

Event 0: Testnet Release Event

A 500 DERO prize pool contest with 2 rounds of winners. This will allow developers to become familiar with the contest format and allow them time to warm up to Stargate RC2.

Round 1

Developers will have 2 week to develop and share their Proof of Concept dApp/game/token/contract or service.

The first round of judgment is on functionality only, not UX/UI.

10 Winners, 20 DERO each.

Round 2

All 10 winners from round 1 will progress to round 2 and they will have an additional 2 weeks to further develop their ideas. Their idea must maintain a at least the same functionality as the original POC but new features can be added.

Judging will include UX/UI for the second round.

3 Winners as follows:

1st Place 150 DERO
2nd Place 100 DERO
3rd Place 50 DERO

Round 1 entries must be made posted on this DERO forum post on or before 7PM UTC, March 25, 2021. Judges will be the DERO developers and foundation with heavy consideration of input from the community.

Good luck and happy hacking!

Latest testnet releases : Releases · deroproject/derohe · GitHub

Getting started with DVM : derohe/guide at main · deroproject/derohe · GitHub

Getting started with services : Dero service model


Nelbert442 DERO Stargate Smart Contracts - Stargate RC2 (GitHub - Nelbert442/dero-smartcontracts)

DeroDice.bas - modified from RC1 to be compatible with RC2

Attempt at similar product as Ether Dice etc. Dice rolling game in which you can choose between a 2x and a 10x multiplier (increment by 1s [e.g. 2x, 3x, 4x, … 10x]) and roll high or low.

The high and low numbers are defined as such:

    2x --> 50 or over --> 49 or under

    3x --> 67 or over --> 33 or under

    4x --> 75 or over --> 25 or under

    5x --> 80 or over --> 20 or under

    6x --> 84 or over --> 16 or under

    7x --> 86 or over --> 14 or under

    8x --> 88 or over --> 12 or under

    9x --> 89 or over --> 11 or under

    10x --> 90 or over --> 10 or under

There is a minimum wager/bet amount of 0.5 DERO and maximum wager/bet amount of 10 DERO, tuneable by TuneWagerParameters()

Initialize Contract (initializes SC and makes you, the SIGNER(), the owner)

curl --request POST --data-binary @DeroDice.bas

e.x.1 (Roll High with 2x Multiplier - Wagering 2 DERO):

curl -d '{"jsonrpc":"2.0","id":"0","method":"scinvoke","params":{"sc_dero_deposit":200000,"scid":"31b8f4ebb854ba2d5cd1ef0495f2d04dbd1e99b3754b03a8715c65028feef241","sc_rpc":[{"name":"entrypoint","datatype":"S","value":"RollDiceHigh"},{"name":"multiplier","datatype":"U","value":2}] }}' -H 'Content-Type: application/json'


e.x.2 (Roll Low with 2x Multiplier - Wagering 2 DERO):

curl -d '{"jsonrpc":"2.0","id":"0","method":"scinvoke","params":{"sc_dero_deposit":200000,"scid":"31b8f4ebb854ba2d5cd1ef0495f2d04dbd1e99b3754b03a8715c65028feef241","sc_rpc":[{"name":"entrypoint","datatype":"S","value":"RollDiceLow"},{"name":"multiplier","datatype":"U","value":2}] }}' -H 'Content-Type: application/json'


e.x.3 (TuneWagerParameters())

If you are the owner of the SC when initialized, you can then modify two of the built-in values: minWager, maxWager and sc_giveback. Once this function is ran, any transactions AFTER this has been ran will utilize these new values. This does not apply to previous transactions sent via the SC.

minWager: This is the value that users must use as a minimum bet, if they bet lower than this it will be rejected and returned to them.

maxWager: This is the value that users must us as a maximum bet, if they bet higher than this it will be rejected and returned to them.

sc_giveback: This is defining a percentage that the SC is giving to the Winners. By default this value is set to 98%, however can be tuned with this function.

In this example, you can see that minWager is being set to 0.5 DERO (50000), the maxWager is being set to 5 DERO (500000) and sc_giveback is being set to 95% (9500) given back to the Winner, keeping 5% for the SC.

curl -d '{"jsonrpc":"2.0","id":"0","method":"scinvoke","params":{"scid":"31b8f4ebb854ba2d5cd1ef0495f2d04dbd1e99b3754b03a8715c65028feef241","sc_rpc":[{"name":"entrypoint","datatype":"S","value":"TuneWagerParameters"},{"name":"minWager","datatype":"U","value":50000},{"name":"maxWager","datatype":"U","value":500000},{"name":"sc_giveback","datatype":"U","value":9500}] }}' -H 'Content-Type: application/json'

e.x.4 (Donate to SC DERO Pool for Payouts - Donating 6 DERO):

curl -d '{"jsonrpc":"2.0","id":"0","method":"scinvoke","params":{"sc_dero_deposit":600000,"scid":"31b8f4ebb854ba2d5cd1ef0495f2d04dbd1e99b3754b03a8715c65028feef241","sc_rpc":[{"name":"entrypoint","datatype":"S","value":"Donate"}] }}' -H 'Content-Type: application/json'



DERO Stargate Smart Contracts - Stargate RC2 (Github - pot SC)


People are blindly Ticking the SC with a random amount of tokens.
Last ticker earns the total amount of the pot (minus fees).

The game has a “snow ball” restart strategy: more ticks will be required to win leading to a potential bigger pot.

E.g. with a 3 ticks SC

deroproof1qxqzz69g8pstqnfw6awpakxd7x8tnw0vjrnrsmzmeghhn3hckmu2dsfpvft92qqzn5zz3 tick of 2 DERO => pot 2
deroproof1qxqzz69g8pstqnfw6awpakxd7x8tnw0vjrnrsmzmeghhn3hckmu2dsfpvft92qqzn5zz2 tick of 1 DERO => pot 3
deroproof1qxqzz69g8pstqnfw6awpakxd7x8tnw0vjrnrsmzmeghhn3hckmu2dsfpvft92qqzn5zz1 tick of 0.0001DERO => WIN pot 3.0001 DERO

Initialize Contract

You will be registered as owner of the SC but this gives you no ways of interacting with it yet.

curl --request POST --data-binary @pot.bas

Tick for 1 DERO

curl -d '{"jsonrpc":"2.0","id":"0","method":"scinvoke","params":{"sc_dero_deposit":10000,"scid":"04f34d243f76b00512f46350db1de4e33a6d3b886ef7f20c6c6640fbd28a1de6","sc_rpc":[{"name":"entrypoint","datatype":"S","value":"Tick"}] }}' -H 'Content-Type: application/json'

DERO Stargate Smart Contracts - Stargate RC2 (GitHub - rpod89/hai)

An Attempt to create a simple Private Stable Coin for the dARCH 2021 Competition.


As not many people have posted, I’m submitting two of my entries from the 2019 competition with some minor edits to work on the new DVM:

Multisig Wallet

Website Check

If better and fresher entries come along from others, feel free to disregard :slight_smile:


1. NFT

2. Roulette

3. Escrow

4. Vote

5. Future Payment

6. A sequel to my DERO Marketplace, using the new service protocol
Maybe next time


Final code now uploaded to my github repo, including UI in Go. Reference implementation SCID on the testnet is 204d420525782e2d599843db0f16b128fb7a19bf783b5641c56b278d5a7b2433.


Final code now uploaded to my github repo along with published frontend site, details and information within the README.

Reference SCID is: 73535cbe3254d0943d52e4b2b94dcf98d29868b364c21046c57bb8575218474f

For dARCH Event 0 - Round 2, I have setup DeroDice to host the FrontEnd stats related to leveraging this service.

For testnet purposes: I recommend generating new client / server wallets. Just to confirm no other services/dApps have used the ports defined (though not likely)



My turn :sweat_smile:

Only the Linux version for now, the Windows version and the source code will come once I will take some rest.

– Edit –

  • The Linux version have been remove due to missing dependency
  • A Windows version have been added.
  • The source code has been added too.

– Edit –
Fix 1 uploaded 2 small bug were found.

  1. First one the wallet didn’t show properly
  2. You couldn’t buy / sell due to a typo.

Here’s my updated NFT smart contract for the round 2. Contracts, actually, since I decided to make two versions of it.

  1. Public NFT dARCH-smart-contracts/NFT_Public.bas at main · Peppinux/dARCH-smart-contracts · GitHub
    Fully fledged NFT: Keeps track of ownership publicly; on-chain sale and auction systems.

  2. Private NFT dARCH-smart-contracts/NFT_Private.bas at main · Peppinux/dARCH-smart-contracts · GitHub
    Slim and as private as possible NFT: doesn’t keep track of ownership publicly, on-chain sale system only. Auction system should be delegated to off-chain service.

Wanted to build a cool website to list, create, publish and interact with NFTs, alongside the off-chain auction system for the private version of the contract, but I simply didn’t have enough free time for such a big project, with having to get back to family for Easter in the way too.
So no frontend for you guys for now, will come in the future.