Ethereum Alarm Clock:

Schedule Contract Function Calls An ethereum contract that facilitates scheduling function calls for a specified block in the future. Function calls can be scheduled to be executed against any contract Scheduling can be done by contracts or ethereum account holders. Fully contained within the ethereum network.

[Q] How could I use Ethereum Alarm Clock (mainly Scheduler.sol contract) on a private ethereum network? Manually I have tried to compile contracts/* libraries/* files that located inside source code using Solidity Browser, but I face with following errors that I was not able to fix.

On CallLib.sol file

Untitled:474:25: Error: Fallback function cannot return values.
    function () returns (bool) {
Untitled:394:16: Error: Explicit type conversion not allowed.
        return State(CallLib.state(call));

On SchedulerLib.Sol:

Untitled:191:20: Error: Member "value" not found or not visible after argument-dependent lookup in function (address,uint256,uint8,address,bytes4,bytes memory,uint256,uint256,uint16,uint256,uint256) returns (contract FutureBlockCall) - did you forget the "payable" modifier?
        var call = (new FutureBlockCall).value(callConfig.endowment)(

Thank you for your valuable time and help.

  • 1
    What version of the solc compiler are you using? The current master branch is likely only going to compile under 0.3.6. Commented Jan 9, 2017 at 17:22
  • Ah that was the problem, I was using Solidity Browser's default compiler version, which was 0.4.8. I changed compiler to 0.3.5 as you recommended and it compiled. Solidity Browser frozens or takes around 10 minutes to complete compiling due to size of the code (I pasted all contracts into same file and compiling all together), may it be more efficient to deploy the contract code using geth? @PiperMerriam. Is there any way I can make this question answered?
    – alper
    Commented Jan 9, 2017 at 19:10
  • Solditiy Browser seems unable to deploy and mine the Ethereum Alarm Clock Contract, due to getting overloaded and frozen.
    – alper
    Commented Jan 9, 2017 at 19:36
  • 1
    The alarm system of contracts is not a simple one so this does not surprise me. If memory serves it uses around 10 libraries and 4 contracts which have a complex linking hierarchy. Sometime in the very near future (1-2 months) I'll be getting the library back up-to-date and deployable again using populus. Commented Jan 11, 2017 at 15:37
  • 1
    I wrote a very simple way to schedule calls to contracts (Chronos). The code is public so you could give a try. I am still testing it but is running on Rinkeby already in case you want to try it. You will find the info here
    – Jaime
    Commented Apr 6, 2018 at 13:16

2 Answers 2


The version you linked (0.7.0) was released in the 31st of January, 2016. At that time, the latest Solidity release was 0.2.1 (30th of January, 2016).

If you switch your compiler version to that Solidity release on the Remix IDE, the contract will compile just fine. You can find a working ETHFiddle snippet here.

Keep in mind that the Ethereum Alarm Clock contract is useless in private networks as it relies on external parties (humans) to be rewarded in Ether to actually actuate the alarm.


It got easier to deploy EAC on any network, including local network.


In existing or new NPM project run:

npm i --save @ethereum-alarm-clock/lib

Then when you have running network, run:

npx eac-deploy-contracts

This is using new @ethereum-alarm-clock/lib.


If you would like to see full tutorial, please see:

Text tutorial: https://github.com/ethereum-alarm-clock/ethereum-alarm-clock/wiki/Integration-using-EAC-JavaScript-library

Video tutorial: https://youtu.be/DY0QYDQG4lw

  • Thanks for sharing this. Btw, it would be great if you know how to get the contracts' addresses as getting deployed using 'npx eac-deploy-contracts' command. I have a link created if you want to answer there as separate thread. ethereum.stackexchange.com/questions/110235/…
    – swcraft
    Commented Sep 20, 2021 at 16:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.