experimental alpha - use at your own risk
Difficulty Dapp
The right way to risk manage minning operations
network {{adapter_name}}
block {{adapter_block}} difficulty {{adapter_diff}}
contract address
contract source

available networks


Open New

0-down / 1-up
{{coin_abb}} ( 0.01 min )
{{coin_abb}} ( 0.01 min )
I am willing to pay {{new_o.stake}} {{coin_abb}} to whoever thinks that at block number {{new_o.t_block}} the difficulty will be {{(new_o.dir==0)?'above':'below'}} {{new_o.t_diff}}.
He will pay me {{new_o.price}} {{coin_abb}} if the difficulty at block number {{new_o.t_block}} was {{(new_o.dir==1)?'above':'below'}} or equel to {{new_o.t_diff}}.

*** target block may vary by 10 blocks at resolution time ***

service fee on resolution is 0.25%

no fee on cancellation

Awaiting Target Block


Resolution Process

Decentralized :

contract owners 0.125%
public resolver 0.125%

in a time window of 10 blocks before and after the target block anyone can send a resolve command to the contract
the resolution difficulty will be the difficulty of that specific block

    Centralized :

contract owners 0.25%

In case no one from the public has resolved the contract in the provided time frame ( 20 blocks )
we ( the contact owners ) will resolve with the precise difficulty that was on the target block

Basic guide

Miner :

Assuming you are minning Eth every months with the current difficulty.
in {{guide.time_delta*2}} months you'll have {{guide.power *2 }} eth if the difficulty doesn't change.

Total income: {{(guide.power*2)}} eth.

Now, let's assume that after {{guide.time_delta}} months the difficulty rises by % making your mining power be {{guide.power*(100-guide.diff_up)/100}} eth .
At the end of {{guide.time_delta*2}} months you'll have {{(guide.power*((100-guide.diff_up)/100))+guide.power}} eth.

Total income: {{(guide.power+(guide.power*(100-guide.diff_up)/100))}} eth.
A loss of {{guide.power-(guide.power*(100-guide.diff_up)/100)}} eth.

to reduce your loss in such a situation you can decentralizly lock eth for {{guide.time_delta}} months in the diff dapp contract and ask back eth.

If difficulty rises after {{guide.time_delta}} months you get {{ guide.price+guide.stake}} eth ( lock + price ).
Total income: {{(guide.power+(guide.power*(100-guide.diff_up)/100)+guide.price)}} eth.
A loss of only {{(guide.power-(guide.power*(100-guide.diff_up)/100))-guide.price}} eth instead of {{guide.power-(guide.power*(100-guide.diff_up)/100)}} eth.

If difficulty does not rise after {{guide.time_delta}} months.
Total income: {{(guide.power*2)-guide.stake}} eth.
A loss of {{guide.stake}} eth ( the lock ).

You have succefully stabilized your eth mining for an anticipated future difficulty change.

HODLer :

Ico season is over
kitties are passe
whats there for a HODLER to do?

Why not decentralizly lock some ether in the diff dapp contract to gain a small interest on your hodlings?

Of course there is a small risk to lose it all.

the miner above offers a {{guide.stake/guide.price*100}} % on your ether in {{guide.time_delta}} months.
Open up your Black Scholes model and check if it's worth it.

stabilization of economy from difficulty changes



functional mainnet prototype


add support for more coins
gas performance audit of contract
security audit of contract


miner risk calculator based on Grain Price Hedging
graph visualization of data


new implementation of difficulty contract using nipopow on a target non smart-contract blockchain ( i.e. bitcoin )
new implementation of difficulty contract using crypto-conditions on supported blockchains

Adding networks to metamask

Add a custom RPC to metamask with chain id * url
( make sure no spaces are at the beginning and end - metamask does not like spaces )

classic 61 * https://etc-geth.0xinfra.com
( Classic must be opened on different link : Classic )
ubiq     88 * https://rpc1.ubiqscan.io
( really metamask? i get 'invalid sender' )
akroma   200625 * https://remote.akroma.io
( really metamask? i get 'invalid sender' )


experimental alpha - use at your own risk