<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Chainlink on Bitsy Services Wiki</title>
    <link>https://wiki.bitsy.services/wiki/defi/chainlink/</link>
    <description>Recent content in Chainlink on Bitsy Services Wiki</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://wiki.bitsy.services/wiki/defi/chainlink/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Chainlink Automation</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/automation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/automation/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Chainlink_%28blockchain%29&#34;&gt;Chainlink&lt;/a&gt; Automation (formerly Keepers) lets you trigger on-chain function calls on a schedule or in response to custom conditions — without running your own bot infrastructure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;when-to-use-it&#34;&gt;When to Use It&lt;a class=&#34;anchor&#34; href=&#34;#when-to-use-it&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Periodic maintenance&lt;/strong&gt; — harvesting yield, rebasing tokens, updating &lt;a href=&#34;https://en.wikipedia.org/wiki/Blockchain_oracle&#34;&gt;oracles&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Conditional execution&lt;/strong&gt; — &lt;a href=&#34;https://en.wikipedia.org/wiki/Liquidation#Decentralized_finance&#34;&gt;liquidations&lt;/a&gt;, limit-order fills, rebalancing when a threshold is crossed.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Replacing cron bots&lt;/strong&gt; — any off-chain script that just calls a contract method can usually move to Automation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;core-concepts&#34;&gt;Core Concepts&lt;a class=&#34;anchor&#34; href=&#34;#core-concepts&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Term&lt;/th&gt;&#xA;          &lt;th&gt;Meaning&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Upkeep&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;A registered job — the thing Automation monitors and executes.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;Trigger&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;What fires the upkeep: &lt;em&gt;time-based&lt;/em&gt; (cron) or &lt;em&gt;custom logic&lt;/em&gt; (conditional).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;&lt;code&gt;checkUpkeep&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;View function Automation calls off-chain to ask &amp;ldquo;should I execute?&amp;rdquo;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;&lt;code&gt;performUpkeep&lt;/code&gt;&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;State-changing function Automation calls on-chain when &lt;code&gt;checkUpkeep&lt;/code&gt; returns true.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;strong&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Chainlink_%28blockchain%29#LINK_token&#34;&gt;LINK&lt;/a&gt; funding&lt;/strong&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Each upkeep has a LINK balance that pays node operators per execution.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;supported-networks&#34;&gt;Supported Networks&lt;a class=&#34;anchor&#34; href=&#34;#supported-networks&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Automation is live on Ethereum mainnet, Arbitrum, Optimism, Polygon, Avalanche, BSC, and Base (among others). Check the &lt;a href=&#34;https://docs.chain.link/chainlink-automation/overview/supported-networks&#34;&gt;Chainlink docs&lt;/a&gt; for the current list and &lt;a href=&#34;registry&#34;&gt;registry&lt;/a&gt; addresses.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chainlink Automation Registration</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/registration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/registration/</guid>
      <description>&lt;p&gt;Registration is the process of creating a new upkeep in &lt;a href=&#34;automation&#34;&gt;Chainlink Automation&lt;/a&gt;. A registered upkeep tells the Automation network what contract to monitor, what conditions to check, and how much &lt;a href=&#34;https://en.wikipedia.org/wiki/Chainlink_%28blockchain%29#LINK_token&#34;&gt;LINK&lt;/a&gt; to allocate for execution costs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;registration-methods&#34;&gt;Registration Methods&lt;a class=&#34;anchor&#34; href=&#34;#registration-methods&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;ui-registration&#34;&gt;UI Registration&lt;a class=&#34;anchor&#34; href=&#34;#ui-registration&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The simplest path. Go to &lt;a href=&#34;https://automation.chain.link/&#34;&gt;automation.chain.link&lt;/a&gt;, connect a wallet, and follow the guided flow. The UI handles LINK approval, &lt;a href=&#34;registrar&#34;&gt;registrar&lt;/a&gt; interaction, and parameter encoding behind the scenes.&lt;/p&gt;&#xA;&lt;p&gt;Good for one-off upkeeps and initial experimentation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chainlink Automation Registrar</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/registrar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/registrar/</guid>
      <description>&lt;p&gt;The Automation Registrar is the on-chain contract that accepts and processes &lt;a href=&#34;registration&#34;&gt;upkeep registration&lt;/a&gt; requests for &lt;a href=&#34;automation&#34;&gt;Chainlink Automation&lt;/a&gt;. It acts as the gatekeeper between users who want to register upkeeps and the Automation &lt;a href=&#34;registry&#34;&gt;registry&lt;/a&gt; that actually tracks and executes them.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-works&#34;&gt;How It Works&lt;a class=&#34;anchor&#34; href=&#34;#how-it-works&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The registrar exposes a &lt;code&gt;registerUpkeep&lt;/code&gt; function that accepts a &lt;code&gt;RegistrationParams&lt;/code&gt; struct and a &lt;a href=&#34;https://en.wikipedia.org/wiki/Chainlink_%28blockchain%29#LINK_token&#34;&gt;LINK&lt;/a&gt; payment. On receiving a valid request, it:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Transfers the LINK funding from the caller to the registry.&lt;/li&gt;&#xA;&lt;li&gt;Creates a new upkeep entry in the registry.&lt;/li&gt;&#xA;&lt;li&gt;Returns the &lt;code&gt;upkeepId&lt;/code&gt; — a &lt;code&gt;uint256&lt;/code&gt; that uniquely identifies the upkeep.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Depending on the network and configuration, registration may be &lt;strong&gt;auto-approved&lt;/strong&gt; (instant) or require &lt;strong&gt;manual approval&lt;/strong&gt; by the registry owner. Mainnet deployments typically auto-approve; testnets vary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chainlink Automation Registry</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/registry/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/registry/</guid>
      <description>&lt;p&gt;The Automation Registry is the core on-chain contract that stores, funds, and coordinates execution of all &lt;a href=&#34;registration&#34;&gt;registered&lt;/a&gt; upkeeps in &lt;a href=&#34;automation&#34;&gt;Chainlink Automation&lt;/a&gt;. While the &lt;a href=&#34;registrar&#34;&gt;registrar&lt;/a&gt; handles onboarding new upkeeps, the registry is where they live for the rest of their lifecycle.&lt;/p&gt;&#xA;&lt;h2 id=&#34;responsibilities&#34;&gt;Responsibilities&lt;a class=&#34;anchor&#34; href=&#34;#responsibilities&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Upkeep storage&lt;/strong&gt; — maintains the list of active upkeeps, their configurations, and &lt;a href=&#34;https://en.wikipedia.org/wiki/Chainlink_%28blockchain%29#LINK_token&#34;&gt;LINK&lt;/a&gt; balances.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Node coordination&lt;/strong&gt; — Automation nodes read the registry to discover which upkeeps to monitor and simulate.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Execution accounting&lt;/strong&gt; — tracks gas used per &lt;code&gt;performUpkeep&lt;/code&gt; call, deducts LINK accordingly, and pays node operators.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Admin operations&lt;/strong&gt; — exposes functions for upkeep owners to fund, pause, cancel, and reconfigure their upkeeps.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;upkeep-lifecycle-post-registration&#34;&gt;Upkeep Lifecycle (Post-Registration)&lt;a class=&#34;anchor&#34; href=&#34;#upkeep-lifecycle-post-registration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Once an upkeep is &lt;a href=&#34;registration&#34;&gt;registered&lt;/a&gt; through the &lt;a href=&#34;registrar&#34;&gt;registrar&lt;/a&gt;, all further interaction goes through the registry:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chainlink Automation Forwarder</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/forwarder/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/forwarder/</guid>
      <description>&lt;p&gt;An Automation Forwarder is a per-upkeep proxy contract that sits between the &lt;a href=&#34;automation&#34;&gt;Chainlink Automation&lt;/a&gt; network and your target contract. Instead of Automation nodes calling &lt;code&gt;performUpkeep&lt;/code&gt; directly on your contract, they call it through the forwarder — giving your contract a stable, predictable &lt;code&gt;msg.sender&lt;/code&gt; to verify.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-it-exists&#34;&gt;Why It Exists&lt;a class=&#34;anchor&#34; href=&#34;#why-it-exists&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Without a forwarder, &lt;code&gt;performUpkeep&lt;/code&gt; is called by whichever Automation node wins the turn. The caller address rotates across a set of node-operated transmitter addresses that can change over time. This makes access control difficult: you can&amp;rsquo;t simply check &lt;code&gt;msg.sender&lt;/code&gt; against a known address.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Securing performUpkeep</title>
      <link>https://wiki.bitsy.services/wiki/defi/chainlink/securing-performupkeep/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/chainlink/securing-performupkeep/</guid>
      <description>&lt;p&gt;&lt;code&gt;performUpkeep&lt;/code&gt; is an external function that anyone can call — not just &lt;a href=&#34;automation&#34;&gt;Chainlink Automation&lt;/a&gt; nodes. If your implementation has side effects (transferring funds, changing critical state), you need to ensure that unauthorized callers can&amp;rsquo;t exploit it.&lt;/p&gt;&#xA;&lt;p&gt;There are two complementary strategies: &lt;strong&gt;re-validation&lt;/strong&gt; (making the function safe for anyone to call) and &lt;strong&gt;access control&lt;/strong&gt; (restricting who can call it). Use both when possible.&lt;/p&gt;&#xA;&lt;h2 id=&#34;strategy-1-re-validate-on-chain&#34;&gt;Strategy 1: Re-Validate On-Chain&lt;a class=&#34;anchor&#34; href=&#34;#strategy-1-re-validate-on-chain&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The simplest defense. Inside &lt;code&gt;performUpkeep&lt;/code&gt;, re-check the same condition that &lt;code&gt;checkUpkeep&lt;/code&gt; evaluated off-chain. If the condition no longer holds, revert.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
