<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ethereum on Bitsy Services Wiki</title>
    <link>https://wiki.bitsy.services/wiki/defi/ethereum/</link>
    <description>Recent content in Ethereum on Bitsy Services Wiki</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="https://wiki.bitsy.services/wiki/defi/ethereum/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ERC-20</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-20/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-20/</guid>
      <description>&lt;p&gt;ERC-20 is the standard interface for fungible tokens on &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/&#34;&gt;Ethereum&lt;/a&gt;. Proposed by Fabian Vogelsteller in 2015 (EIP-20), it defines six functions and two events that every compliant token must implement. Because wallets, &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/dex&#34;&gt;DEXs&lt;/a&gt;, lending protocols, and aggregators all speak ERC-20, any token that implements the interface is instantly composable with the entire ecosystem.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-interface&#34;&gt;The interface&lt;a class=&#34;anchor&#34; href=&#34;#the-interface&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;10&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-solidity&#34; data-lang=&#34;solidity&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;interface&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;IERC20&lt;/span&gt; {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;totalSupply&lt;/span&gt;() &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;view&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;balanceOf&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; account) &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;view&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;transfer&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; to, &lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt; amount) &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;allowance&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; owner, &lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; spender) &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;view&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;approve&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; spender, &lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt; amount) &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;function&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;transferFrom&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;from&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; to, &lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt; amount) &lt;span style=&#34;color:#66d9ef&#34;&gt;external&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;returns&lt;/span&gt; (&lt;span style=&#34;color:#66d9ef&#34;&gt;bool&lt;/span&gt;);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;event&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Transfer&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;indexed&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;from&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;indexed&lt;/span&gt; to, &lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt; value);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;event&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Approval&lt;/span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;indexed&lt;/span&gt; owner, &lt;span style=&#34;color:#66d9ef&#34;&gt;address&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;indexed&lt;/span&gt; spender, &lt;span style=&#34;color:#66d9ef&#34;&gt;uint256&lt;/span&gt; value);&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;The two-step &lt;code&gt;approve&lt;/code&gt; + &lt;code&gt;transferFrom&lt;/code&gt; pattern is the standard way for a &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/smart-contract&#34;&gt;smart contract&lt;/a&gt; to spend tokens on behalf of a user. The user first approves a spending allowance, then the contract calls &lt;code&gt;transferFrom&lt;/code&gt; to pull the tokens.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ERC-8004: Trustless Agents</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-8004/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-8004/</guid>
      <description>&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;a class=&#34;anchor&#34; href=&#34;#the-problem&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;AI agents are starting to do real work — booking services, managing portfolios, coordinating tasks across organisations. But when two agents from different companies need to work together, there is no standard way for them to answer three basic questions:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Who are you?&lt;/strong&gt; — How does an agent prove its identity?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Can I trust you?&lt;/strong&gt; — How does an agent build (or lose) a reputation?&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Did you do the job right?&lt;/strong&gt; — How does anyone verify an agent&amp;rsquo;s work?&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;ERC-8004 is a &lt;strong&gt;Draft&lt;/strong&gt; &lt;a href=&#34;https://eips.ethereum.org/EIPS/eip-1&#34;&gt;ERC&lt;/a&gt; that answers these questions using Ethereum smart contracts. It gives AI agents — whether they speak &lt;a href=&#34;https://modelcontextprotocol.io/&#34;&gt;MCP&lt;/a&gt;, &lt;a href=&#34;https://google.github.io/A2A/&#34;&gt;A2A&lt;/a&gt;, or any other protocol — a shared trust layer that works across organisational boundaries without anyone needing to set up bilateral agreements in advance.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ERC-667</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-667/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-667/</guid>
      <description>&lt;p&gt;ERC-667 was an early proposal to add &lt;code&gt;transferAndCall&lt;/code&gt; functionality to &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-20&#34;&gt;ERC-20&lt;/a&gt; tokens on &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/&#34;&gt;Ethereum&lt;/a&gt;. It predates the similar and much more widely known &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-677&#34;&gt;ERC-677&lt;/a&gt;, and the two are frequently confused.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-it-proposed&#34;&gt;What it proposed&lt;a class=&#34;anchor&#34; href=&#34;#what-it-proposed&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Like ERC-677, ERC-667 aimed to solve the two-step &lt;code&gt;approve&lt;/code&gt; + &lt;code&gt;transferFrom&lt;/code&gt; pattern by combining a token transfer with a &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/smart-contract&#34;&gt;smart contract&lt;/a&gt; callback in a single transaction. The core idea was identical: call a function on the receiving contract immediately after transferring tokens, so the recipient can react atomically.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ERC-677</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-677/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-677/</guid>
      <description>&lt;p&gt;ERC-677 is an &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-20&#34;&gt;ERC-20&lt;/a&gt; extension that adds a single function &amp;ndash; &lt;code&gt;transferAndCall&lt;/code&gt; &amp;ndash; enabling a token transfer and a callback to the recipient in one transaction. It was proposed in 2017 and is best known as the standard behind Chainlink&amp;rsquo;s LINK token.&lt;/p&gt;&#xA;&lt;p&gt;Like &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-1363&#34;&gt;ERC-1363&lt;/a&gt;, ERC-677 exists to solve the two-step &lt;code&gt;approve&lt;/code&gt; + &lt;code&gt;transferFrom&lt;/code&gt; problem inherent in ERC-20. Where they differ is scope: ERC-677 is a minimal extension (one function, one receiver interface), while ERC-1363 adds approval callbacks and uses the magic-value return pattern for safer recipient validation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ERC-1363</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-1363/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-1363/</guid>
      <description>&lt;p&gt;ERC-1363 is an &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-20&#34;&gt;ERC-20&lt;/a&gt; extension that adds callback hooks to token transfers and approvals. It solves the fundamental two-step problem with ERC-20: the &lt;code&gt;approve&lt;/code&gt; + &lt;code&gt;transferFrom&lt;/code&gt; dance that requires two transactions, confuses users, and creates a window where tokens can be lost if the receiving contract doesn&amp;rsquo;t pull them.&lt;/p&gt;&#xA;&lt;p&gt;With ERC-1363, a token holder can transfer tokens &lt;em&gt;and&lt;/em&gt; notify the recipient in a single transaction. The standard was formalized as EIP-1363 and has an &lt;a href=&#34;https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#ERC1363&#34;&gt;OpenZeppelin implementation&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ERC-4626</title>
      <link>https://wiki.bitsy.services/wiki/defi/ethereum/erc-4626/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://wiki.bitsy.services/wiki/defi/ethereum/erc-4626/</guid>
      <description>&lt;p&gt;ERC-4626 is the &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/&#34;&gt;Ethereum&lt;/a&gt; standard for tokenized vaults. It extends &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/ethereum/erc-20&#34;&gt;ERC-20&lt;/a&gt; with a uniform interface for depositing assets, receiving shares, and redeeming those shares for the underlying asset plus any yield the vault has earned. Before this standard, every protocol invented its own vault API, making integration painful and error-prone. ERC-4626 fixes that &amp;ndash; one interface, universal composability.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-shareasset-model&#34;&gt;The share/asset model&lt;a class=&#34;anchor&#34; href=&#34;#the-shareasset-model&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A vault holds a pool of a single ERC-20 asset (e.g. DAI, USDC, WETH). Users deposit that asset and receive &lt;strong&gt;vault shares&lt;/strong&gt; in return. The shares are themselves ERC-20 tokens, so they can be transferred, traded on a &lt;a href=&#34;https://wiki.bitsy.services/wiki/defi/dex&#34;&gt;DEX&lt;/a&gt;, or used as collateral in other protocols.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
