πΉπ· ETH Global Istanbul Guide
Welcome to the ETHGlobal Istanbul 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 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 two teams with the most innovative integration of Scribe, Chronicle's new Optimistic Schnorr Oracle. Supported chains include: Ethereum Sepolia, Polygon zkEVM testnet, and Gnosis Chain Mainnet. Note that solutions must utilize at least one Oracle smart contract. The innovation should stem from the use case of the Oracle, i.e., the idea or utility of the project.
Reward:
- 1st Place:
- Reward: $4500 DAI
- 2nd Place:
- Reward: $2500 DAI
Bounty 2: Integrate a Chronicle Oracleβ
Objective: Rewarding successful integrations of Chronicle's new Optimistic Schnorr Oracle.
Description: Each team that manages to successfully integrate a Chronicle Oracle on one of the supported chains, Sepolia (Ethereum), Polygon zkEVM (testnet), or Gnosis Chain (mainnet), will receive an equal share from the $3000 DAI reward pool. The integration must utilize at least one Oracle smart contract and should be crucial to the product or project's operation, serving a legitimate purpose.
Reward: $3000 DAI
Type: Pooled 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 and on Layer 1s, Scribe boasts of 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 the Oracle.
The Chronicle Scribe Oracle interface is plug-and-play with Chainlink and Maker Oracles, providing a smooth transition for developers used to these platforms.
All data delivered by a Chronicle Oracle on 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 Mainnetβ
General Setup Enquiresβ
- Foundry Setup:
- List of Sepolia ETH Faucets:
- List of Sepolia RPCs:
- Create a Test Wallet:
cast new wallet