ETH Lisbon Hackathon Guide
Welcome to the ETH Lisbon Hackathon! This document serves as a guide for integrating Chronicle Oracles into your hackathon projects. Our team is here to assist you.
For any inquiries, feel free to reach out at our booth, join our Discord, or walk up to anyone wearing a Chronicle hoodie
Chronicle Oracle Integration Bountiesβ
Bounty 1: Most Innovative Chronicle Oracle Integrationβ
Objective: Rewarding the most creative integration of a Chronicle Oracle.
Description: The prize will go to the team with the most innovative integration of a Chronicle Oracle on one of the supported chains (Sepoila (Ethereum), Polygon zkEVM (testnet), Gnosis Chain (mainnet)). The innovation should stem from the use case of the Oracle, i.e., The idea or utility of the project.
Reward: $2000 DAI
Type: Winner takes all
Bounty 2: Integrate a Chronicle Oracleβ
Objective: Rewarding successful integrations of a Chronicle Oracle.
Description: Each team that manages to successfully integrate a Chronicle Oracle on one of the supported chains, Sepoila (Ethereum), Polygon zkEVM (testnet), or Gnosis Chain (mainnet), will receive an equal share from the $2500 DAI reward pool. The integration should be crucial to the product or project's operation, serving a legitimate purpose.
Reward: $2500 DAI
Type: Pooled prize
Bounty 3: Build with a Chronicle Oracle on The Polyogon zkEVMβ
Objective: Rewarding the most innovative Integration of a Chronicle Oracle on The Polyogon zkEVM.
Description: Two teams will be awarded for integrating one or more Chronicle Oracles in a project built on Polygon zkEVM testnet. 'DeFi' and 'Public Good' projects are preferred. The Oracle integration must be integral to the operation of the build to be considered. Please see the Chronicle ETH Lisbon Hackathon Docs for a complete list of available Oracles.
Reward: $1000 ($500 from Chronicle/$500 from Polygon).
- 1st Prize: $600
- 2nd Prize: $400
Type: First and Second Prize
Chronicle Protocol Contractsβ
Scribeβ
Scribe is an efficient Schnorr multi-signature-based Oracle with enhanced gas efficiency. Providing nearly constant gas costs on Layer 2s, On Layer 1s, Scribe boasts of a fixed gas costs, leading to substantial savingsβover 60% relative to competing Oracles and an impressive 80% compared to Chainlink. This approach to gas management significantly boosts the scalability of Oracle services.
Also, the seamless integration of Chronicle Oracle with Chainlink and Maker interfaces is a plug-and-play affair, a smooth transition for developers used to these platforms.
Although not relevant to the hackathon, it's worth mentioning that all data delivered by a Chronicle Oracle on the mainnet is verifiable via The Chronicle Dashboard.
Scribe Public Repo: https://github.com/chronicleprotocol/scribe
CASTβ
Cast is a command-line interface (CLI) tool designed by the Foundry team to streamline your interaction with the Ethereum Virtual Machine (EVM). Whether you're making smart contract calls, sending transactions, or retrieving any chain data, cast can help with that. You can read more Here.
Self-Kisser: Permissionless Whitelistingβ
Chronicle safeguards Oracle read functions with a whitelist, ensuring controlled access to critical data. However, the SelfKisser contract unfolds a possibility where you can whitelist yourself (or, as whimsically termed, "kiss") yourself :).
How do you kiss yourself, i.e., msg.sender
?
Run the following command:
$ cast send 0x0dcc19657007713483a5ca76e6a7bbe5f56ea37d "selfKiss(address)()" <oracle address you want you use>
To verify your whitelisted status:
$ cast call <oracle address> "tolled(address)" <your address>
Response:
0x0000000000000000000000000000000000000000000000000000000000000001
A return value of 1 (true)
confirms your whitelisted status.
For more info, see the SelfKisser
repo: https://github.com/chronicleprotocol/self-kisser
Reading Chronicle Oracles through the IChronicle
Interfaceβ
Interacting with the oracle is easy. The read()
function lays it out plain and simple, returning a uint
value representing the data you are trying to get:
$ cast call 0xc8A1F9461115EF3C1E84Da6515A88Ea49CA97660 "read()(uint)"
Response:
1656870000000000045440
For a detailed outline of the interface and additional functionalities, click here
Whitelisting your address via Etherscanβ
To whitelist your address or other addresses for a Chronicle Oracle on Etherscan, follow these steps:
-
Navigate to the Self-kisser contract on Etherscan using the contract address provided: 0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d
-
Click on the
Contract
tab and then onWrite Contract
. -
You'll have to hit the
Connect to Web3
button to connect your wallet. -
Scroll down to the
selfKiss
function and enter the Oracle address you wish to interact with in theoracle (address)
field. Then, click Write.
That should send you a popup message on your wallet to sign. Once signed, it should take a few seconds for your address to be whitelisted.
Reading from Smart Contractsβ
- Go to the
Read Contract
tab and locate thetolled
function. - Enter your wallet address in the
who (address)
field. - Hit
Query
. The data returned will be displayed below, which should look like this:
[ tolled(address) method Response ]
bool : true
Additional Notesβ
- Ensure you have a sufficient amount of tokens in your wallet to cover gas fees for transactions.
- Ensure your wallet is connected to the correct network corresponding to the contract you are interacting with.
Useful Linksβ
Smart Contract Addresses on Sepolia networkβ
Smart Contract Addresses on Polygon zkEVM Testnetβ
Smart Contract Addresses on Gnosis Networkβ
General Setup Enquiresβ
- Foundry Setup:
- Sepolia ETH:
- Sepolia RPC:
- Create A Test Wallet:
cast new wallet