The Chronologic team has been working on rebuilding the core infrastructure of the Ethereum Alarm Clock smart contracts in order to once again allow users of Ethereum to schedule transaction calls in the future.

For those who aren’t familiar with the Ethereum Alarm Clock (EAC) or Chronologic’s related work, the EAC is a collection of smart contracts that by working together aim to provide a decentralized and trustless approach to the scheduling and execution of calls.

For a while, the EAC’s original author, Piper Merriam, was the primary maintainer of the Ethereum Alarm Clock’s codebase and for this reason the protocol fell out of date to the point where it was no longer usable. Chronologic’s mission of expanding the time related functionalities in Ethereum seemed like a perfect match for a partnership with this open-sourced project.

We are now happy to announce that the EAC is ready for a public beta release on the Ethereum testnets.

We hope developers and testers alike will begin to run and test our code. You can find code on the open sourced Github organization. Notably, we have re-organized what used to be a singular repository into three: the ethereum-alarm-clock “core contracts” and test suite, the eac.js Javscript commandline execution client and scheduling wizard, and the (currently outdated) python client.

We hope our work will kick-start the emergence of a vibrant ecosystem of projects and developers who will build on and benefit from the tool.

Since this is still a beta release, we are not yet endorsing the use of these contracts or client outside of the testnets. However, if you would like to start exploring the potentials of building on top of the EAC infrastructure we have deployed the latest builds to Kovan, Rinkeby and Ropsten and urge you to checkout the official documentation as well as the guides provided with eac.js.

Ropsten baseScheduler, 0xa3258348abe4fee76b1c5b5fad1b7bedee6ad24c blockScheduler, 0x9ac3c5d91c408b5cd8fe23fe915ba471d67333bb claimLib, 0xc2387b54c165a65d485628809840132e22d10174 executionLib, 0xbd97838f0cfe6f01f1b36331fc8e98899ae6a2ad groveLib, 0xccc00b710d97a1a8af7bce46b521b8ade587e1c8 iterTools, 0x12361ff30caa51a0e479407181a9a41f8a69fe52 mathLib, 0x3507f7b3c6520f6cb381e5417726a745edfadd35 paymentLib, 0x415a67edc449cc272192a3e276ac24d6044358ed requestFactory, 0x99f93210b3f376ec627393b83569c7bd96923741 requestLib, 0xe43e82c1151bcdd1f807b1c0d1353742b30cd9aa requestMetaLib, 0x3f86cd019cc128d63570e6f2e940c0c270a9f339 requestScheduleLib, 0xe97b8b9c6b4a2c3d4f2c7d16120d67873413ab47 requestTracker, 0x2864515319de2072938e87cb8411d8c266514b90 safeMath, 0x5940da705d6936d45ed30ccab1dcb6c871fac035 schedulerLib, 0x903c136841ce5732ea480d09f5292209be031041 timestampScheduler, 0xa033ad35a7d6f588cf256bfa640de60d2b54d6ff transactionRecorder, 0xcbf9846994046572b7ee35fdb12cb5dbfc34ffc2 Rinkeby baseScheduler, 0xfa1a5152d70aa9cd6cf87c3e82685c5fe49b635b blockScheduler, 0x9e055469e33c8692e28500381afb9d0225a461c9 claimLib, 0x64dfc07f4fcd7f894ef87919a992c87f79f93720 executionLib, 0x2dde0aa6a648a19694f66a99c057a635cf64c93c groveLib, 0x11f5a4afc5d11411b796c947e60f87896e04e2e3 iterTools, 0x1479a9dd5bca41e2f6a2f57459579beca929c432 mathLib, 0x14b7cfbd3f06b15cf91721721bc1e098c38c2213 paymentLib, 0x1acf6215213acd2e1bb733a9bb29f28c36b2d448 requestFactory, 0xe34fd3d0180ca9274e8a880533e66694083e23cb requestLib, 0x810e90f7ba04367ff3833eddea450f66f972d245 requestMetaLib, 0x07a61a6f55d50f19c5a02788ccd4727919803805 requestScheduleLib, 0x91079d873c34074a85c252a975150ce3434233fe requestTracker, 0x7fd72eba9298ccc17af2fe0942a7aa43bec8e04e safeMath, 0x0e52c048ee0fcafbb1aacb69acae3f5623deaa82 schedulerLib, 0xc5d05850a753b7ee68d1465a41e36edc3b0e91fc timestampScheduler, 0x213265a2647977ce7062836c7f78fa018bd88cc3 transactionRecorder, 0xfd12eb79c93419d1530b09f57caf768498c3243a Kovan baseScheduler, 0x600dd54c2df71bfb601fa1ff1d471412d6f9c45e blockScheduler, 0xca006fbd3766885322ff1906e678dab9a528e1dc claimLib, 0xce20333ef81e4f30bc9cebde03ee383dcae03d67 executionLib, 0x5d4148936771c2880e64b368fc06f5128128ba4f groveLib, 0x8a9a3e77a6093c774e11e943edec85e01d0fe636 iterTools, 0x04a642bfd92a0a9f3dd7654fc5b930038bbec199 mathLib, 0x83f786fc99e738845d3ce679794d63317978b58b paymentLib, 0xef47467a9c3acbcd610be2a45e2771f51eb39b11 requestFactory, 0x98bfd4ad0f493cc2a3e13d0b0a530a91ee2693ff requestLib, 0x27405aa33023200df652c3ebd08617ff6e2699a5 requestMetaLib, 0xfaebe12d4d9726704bb8dc0c4f53b30b74ca0acc requestScheduleLib, 0x98e097a61a0e261b706175b0e3397cb606c3face requestTracker, 0x59fe33bfa4d82ffbf1cc76f22eff55ea5685c177 safeMath, 0x65aebbb6ede22c421ab2c795d83a77f3fe77567c schedulerLib, 0xfe14564feb06d19a658b6cb2438efca16247969d timestampScheduler, 0xa8b4c1fde4436c7c837566ff81c39bf36e1c0873 transactionRecorder, 0x07cf8fbf6c5715c101d98cdb698fd9eed77ff526

We would love to hear the feedback from the community and please feel free to open up any issues of the relevant Github repositories. Our dual purpose is to both allow developers to start tinkering with the contracts and iron out any bugs that might be found while we head toward a stable release.