Skip to main content

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.

info

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
info

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:

  1. Navigate to the Self-kisser contract on Etherscan using the contract address provided: 0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d

  2. Click on the Contract tab and then on Write Contract.

  3. You'll have to hit the Connect to Web3 button to connect your wallet.

  4. Scroll down to the selfKiss function and enter the Oracle address you wish to interact with in the oracle (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

  1. Go to the Read Contract tab and locate the tolled function.
  2. Enter your wallet address in the who (address) field.
  3. 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.

Smart Contract Addresses on Sepolia network

Contract NameContract Address on Sepolia network
Self-kisser0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d
AAVE/USD0xED4C91FC28B48E2Cf98b59668408EAeE44665511
ARB/USD0x7dE6Df8E4c057eD9baE215F347A0339D603B09B2
AVAX/USD0xD419f76594d411BD94c71FB0a78c80f71A2290Ce
BNB/USD0x6931FB9C54958f77873ceC4536EaC56F561d2dC4
BTC/USD0xdD5232e76798BEACB69eC310d9b0864b56dD08dD
CRV/USD0x7B6E473f1CeB8b7100C9F7d58879e7211Bc48f32
DAI/USD0x16984396EE0903782Ba8e6ebfA7DD356B0cA3841
ETH/BTC0x4E866Ac929374096Afc2715C4e9c40D581A4067e
ETH/USD0x90430C5b8045a1E2A0Fc4e959542a0c75b576439
GNO/USD0xBcC6BFFde7888A3008f17c88D5a5e5F0D7462cf9
IBTA/USD0xc52539EfbA58a521d69494D86fc47b9E71D32997
LDO/USD0x3aeF92049C9401094A9f75259430F4771143F0C3
LINK/USD0x4EDdF05CfAd20f1E39ed4CB067bdfa831dAeA9fE
MATIC/USD0x06997AadB30d51eAdBAA7836f7a0F177474fc235
MKR/USD0xE61A66f737c32d5Ac8cDea6982635B80447e9404
OP/USD0x1Ae491D618A667a44D48E0b0BE2Cc0cDBF269BC5
RETH/USD0xEff79d34f24Bb36eD8FB6c4CbaD5De293fdCf66F
SDAI/DAI0xB6EE756124e88e12585981DdDa9E6E3bf3C4487D
SNX/USD0x6Ab51f7E684923CE051e784D382A470b0fa834Be
SOL/USD0x11ceEcca4d49f596E0Df781Af237CDE741ad2106
UNI/USD0xfE051Bc90D3a2a825fA5172181f9124f8541838c
USDC/USD0xfef7a1Eb17A095E1bd7723cBB1092caba34f9b1C
USDT/USD0xF78A4e093Cd2D9F57Bb363Cc4edEBcf9bF3325ba
WBTC/USD0x39C899178F4310705b12888886884b361CeF26C7
WSTETH/ETH0x67E93d37B57747686F22f2F2f0a8aAd253199B38
WSTETH/USD0x8Ba43F8Fa2fC13D7EEDCeb9414CDbB6643483C34
YFI/USD0x16978358A8D6C7C8cA758F433685A5E8D988dfD4

Smart Contract Addresses on Polygon zkEVM Testnet

Contract NameContract Address on zkEVM Testnet
Self-kisser0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d
AAVE/USD0xED4C91FC28B48E2Cf98b59668408EAeE44665511
ARB/USD0x7dE6Df8E4c057eD9baE215F347A0339D603B09B2
AVAX/USD0xD419f76594d411BD94c71FB0a78c80f71A2290Ce
BNB/USD0x6931FB9C54958f77873ceC4536EaC56F561d2dC4
BTC/USD0xdD5232e76798BEACB69eC310d9b0864b56dD08dD
CRV/USD0x7B6E473f1CeB8b7100C9F7d58879e7211Bc48f32
DAI/USD0x16984396EE0903782Ba8e6ebfA7DD356B0cA3841
ETH/BTC0x4E866Ac929374096Afc2715C4e9c40D581A4067e
ETH/USD0x90430C5b8045a1E2A0Fc4e959542a0c75b576439
GNO/USD0xBcC6BFFde7888A3008f17c88D5a5e5F0D7462cf9
IBTA/USD0xc52539EfbA58a521d69494D86fc47b9E71D32997
LDO/USD0x3aeF92049C9401094A9f75259430F4771143F0C3
LINK/USD0x4EDdF05CfAd20f1E39ed4CB067bdfa831dAeA9fE
MATIC/USD0x06997AadB30d51eAdBAA7836f7a0F177474fc235
MKR/USD0xE61A66f737c32d5Ac8cDea6982635B80447e9404
OP/USD0x1ae491d618a667a44d48e0b0be2cc0cdbf269bc5
RETH/USD0xEff79d34f24Bb36eD8FB6c4CbaD5De293fdCf66F
SDAI/DAI0xB6EE756124e88e12585981DdDa9E6E3bf3C4487D
SNX/USD0x6Ab51f7E684923CE051e784D382A470b0fa834Be
SOL/USD0x11ceEcca4d49f596E0Df781Af237CDE741ad2106
UNI/USD0xfE051Bc90D3a2a825fA5172181f9124f8541838c
USDC/USD0xfef7a1Eb17A095E1bd7723cBB1092caba34f9b1C
USDT/USD0xF78A4e093Cd2D9F57Bb363Cc4edEBcf9bF3325ba
WBTC/USD0x39C899178F4310705b12888886884b361CeF26C7
WSTETH/ETH0x67E93d37B57747686F22f2F2f0a8aAd253199B38
WSTETH/USD0x8Ba43F8Fa2fC13D7EEDCeb9414CDbB6643483C34
YFI/USD0x16978358A8D6C7C8cA758F433685A5E8D988dfD4

Smart Contract Addresses on Gnosis Mainnet

Contract NameContract Address on Gnosis Mainnet
Self-kisser0x0Dcc19657007713483A5cA76e6A7bbe5f56EA37d
AAVE/USD0xa38C2B5408Eb1DCeeDBEC5d61BeD580589C6e717
ARB/USD0x579BfD0581beD0d18fBb0Ebab099328d451552DD
AVAX/USD0x78C8260AF7C8D0d17Cf3BA91F251E9375A389688
BNB/USD0x26EE3E8b618227C1B735D8D884d52A852410019f
BTC/USD0x4B5aBFC0Fe78233b97C80b8410681765ED9fC29c
CRV/USD0xf29a932ae56bB96CcACF8d1f2Da9028B01c8F030
DAI/USD0xa7aA6a860D17A89810dE6e6278c58EB21Fa00fc4
DSR/RATE0x729af3A41AE9E707e7AE421569C4b9c632B66a0c
ETH/BTC0x1804969b296E89C1ddB1712fA99816446956637e
ETH/USD0xc8A1F9461115EF3C1E84Da6515A88Ea49CA97660
GNO/USD0xA28dCaB66FD25c668aCC7f232aa71DA1943E04b8
IBTA/USD0x07487b0Bf28801ECD15BF09C13e32FBc87572e81
LDO/USD0xa53dc5B100f0e4aB593f2D8EcD3c5932EE38215E
LINK/USD0xecB89B57A60ac44E06ab1B767947c19b236760c3
MATIC/USD0xa48c56e48A71966676d0D113EAEbe6BE61661F18
MKR/USD0x67ffF0C6abD2a36272870B1E8FE42CC8E8D5ec4d
OP/USD0xfadF055f6333a4ab435D2D248aEe6617345A4782
RETH/USD0xEE02370baC10b3AC3f2e9eebBf8f3feA1228D263
SDAI/DAI0xD93c56Aa71923228cDbE2be3bf5a83bF25B0C491
SDAI/ETH0x05aB94eD168b5d18B667cFcbbA795789C750D893
SDAI/MATIC0x2f0e0dE1F8c11d2380dE093ED15cA6cE07653cbA
SNX/USD0xD20f1eC72bA46b6126F96c5a91b6D3372242cE98
SOL/USD0x4D1e6f39bbfcce8b471171b8431609b83f3a096D
UNI/USD0x2aFF768F5d6FC63fA456B062e02f2049712a1ED5
USDC/USD0x1173da1811a311234e7Ab0A33B4B7B646Ff42aEC
USDT/USD0x0bd446021Ab95a2ABd638813f9bDE4fED3a5779a
WBTC/USD0xA7226d85CE5F0DE97DCcBDBfD38634D6391d0584
WSTETH/USD0xc9Bb81d3668f03ec9109bBca77d32423DeccF9Ab
YFI/USD0x0893EcE705639112C1871DcE88D87D81540D0199

General Setup Enquires

More on Scribe