<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Owanate Amachree</title>
    <description>The latest articles on DEV Community by Owanate Amachree (@owans).</description>
    <link>https://dev.to/owans</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F569100%2F53fd03e5-c64b-4a5e-830c-02ad91fd7a79.jpeg</url>
      <title>DEV Community: Owanate Amachree</title>
      <link>https://dev.to/owans</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/owans"/>
    <language>en</language>
    <item>
      <title>Try it yourself! - Dogfood Your Web3 Ecosystem</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Fri, 29 Jul 2022 09:05:08 +0000</pubDate>
      <link>https://dev.to/owans/try-it-yourself-dogfood-your-web3-ecosystem-2gg3</link>
      <guid>https://dev.to/owans/try-it-yourself-dogfood-your-web3-ecosystem-2gg3</guid>
      <description>&lt;p&gt;If you would like to follow along by doing the activities from the&lt;br&gt;
&lt;a href="https://dev.to/2022/dogfood-your-web3-ecosystem/"&gt;RSK+RIF Activities Day&lt;/a&gt;&lt;br&gt;
on your own, this is the post for you!&lt;/p&gt;

&lt;p&gt;Note that this post is a list of the activity cards;&lt;br&gt;
The solutions and spoilers have been saved for a subsequent post!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ix1j27zz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5kv8ga6wdo4d9c4c1d0x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ix1j27zz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5kv8ga6wdo4d9c4c1d0x.png" alt="Image description" width="880" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The original design of the activities ☝️&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Tdx1g10V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0e224b53hrvnvncdrnin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Tdx1g10V--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0e224b53hrvnvncdrnin.png" alt="Image description" width="880" height="670"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The physical cards for the activities used on the day ☝️&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The rules are that these have to be completed sequentially -&lt;br&gt;
complete each objective before moving on to the next one.&lt;br&gt;
Consider doing this &lt;strong&gt;in a group&lt;/strong&gt; rather than individually.&lt;br&gt;
However, if that is not an option, some activities may not 100% work,&lt;br&gt;
and you'll need to adapt accordingly (suggestions have been provided inline).&lt;/p&gt;

&lt;p&gt;You might notice that some cards contain an &lt;strong&gt;Easter Egg&lt;/strong&gt;.&lt;br&gt;
These are for doing something more than just the base requirement of the activity.&lt;br&gt;
As the name implies, these are not specified in the activity cards; finding them involves some guess work (and luck).&lt;br&gt;
All team members need to complete the basic steps to move on to the next activity,&lt;br&gt;
but only one team member needs to - optionally - complete the Easter Egg&lt;br&gt;
to get the additional points.&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #1
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 30min to set up a &lt;em&gt;new&lt;/em&gt; Metamask Wallet in a &lt;em&gt;new&lt;/em&gt; Browser Profile of your computer and connect to &lt;em&gt;RSK Mainnet&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Existing/current wallet &lt;em&gt;not allowed&lt;/em&gt;. Save your seed phrase!!!&lt;/p&gt;

&lt;p&gt;Then sign into the link below and connect to RSK Mainnet + add RIF token - &lt;a href="http://metamask-landing.rifos.org"&gt;metamask-landing.rifos.org&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every member of the team must submit the address at: forms.gle/XXXXX&lt;/p&gt;

&lt;p&gt;Reward: 10 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is simply the set up for the rest of the sequence,&lt;br&gt;
so that everyone starts on a level playing field with a fresh wallet.&lt;/p&gt;

&lt;p&gt;Adaptations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use a spreadsheet or other shared doc instead of the google form.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #2
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 5min to select your team name!&lt;/p&gt;

&lt;p&gt;Write and show your name to the public.&lt;/p&gt;

&lt;p&gt;Be creative&lt;/p&gt;

&lt;p&gt;Reward: 10 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is simply to populate the leaderboard with names instead of team numbers.&lt;/p&gt;

&lt;p&gt;Adaptations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This task is simply to enable teams to appear on the leaderboard&lt;/li&gt;
&lt;li&gt;Skip if not competing with multiple teams&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #3
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Two members of your group will receive RBTC from IOV.&lt;/p&gt;

&lt;p&gt;Transfer among yourselves such that everyone has equal amounts.&lt;/p&gt;

&lt;p&gt;You can check account balance at &lt;a href="https://explorer.rsk.co/"&gt;explorer.rsk.co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You have 25min for this task!&lt;/p&gt;

&lt;p&gt;Reward: 20 points&lt;br&gt;
Easter Egg: 20 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to ensure that everyone has sufficient funds to perform the tasks in the rest of the sequence.&lt;br&gt;
The amount needed is approximately 10USD worth of RBTC.&lt;/p&gt;

&lt;p&gt;Adaptations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transfer in RBTC that you hold in another account; or&lt;/li&gt;
&lt;li&gt;Obtain RBTC from an exchange&lt;/li&gt;
&lt;li&gt;If doing this individually, skip the distribute equally step, instead just transfer to another one of your own accounts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #4
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 30min to convert your 50% funds from RBTC to RIF Tokens.&lt;/p&gt;

&lt;p&gt;You must use &lt;a href="https://app.rskswap.com/swap"&gt;&lt;code&gt;app.rskswap.com/swap&lt;/code&gt;&lt;/a&gt; or&lt;br&gt;
&lt;a href="https://live.sovryn.app/swap"&gt;&lt;code&gt;live.sovryn.app/swap&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reward: 30 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to convert some cryptocurrency into utility tokens,&lt;br&gt;
which will be used in some of the subsequent tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #5
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 40min to register a new RNS Domain (e.g. &lt;code&gt;yourname.rsk&lt;/code&gt;)&lt;/p&gt;

&lt;p&gt;Your domain must last for 2 years.&lt;/p&gt;

&lt;p&gt;You must use &lt;a href="https://manager.rns.rifos.org/"&gt;&lt;code&gt;manager.rns.rifos.org&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reward: 40 points&lt;br&gt;
Easter Egg: 20 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to use some utility tokens,&lt;br&gt;
to register a decentralised domain name.&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #6
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 20min to lend approximately 2USD worth of RBTC on Tropykus using the “microsaving” feature.&lt;/p&gt;

&lt;p&gt;You must use &lt;a href="https://tropykus.com/"&gt;&lt;code&gt;tropykus.com&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reward: 60 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to use cryptocurrency as savings to earn interest.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--b3_hAXGH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mwxs6zwvq5axyjb9m399.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--b3_hAXGH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mwxs6zwvq5axyjb9m399.png" alt="Image description" width="880" height="1123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Partners on stage, talking about their products, as they are being used during the activities day.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #7
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 30min to mint RDOC on Money On Chain.&lt;/p&gt;

&lt;p&gt;You must use &lt;a href="https://rif.moneyonchain.com/"&gt;&lt;code&gt;rif.moneyonchain.com&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reward: 60 points&lt;br&gt;
Easter Egg: 20 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to convert utility tokens into a stablecoin,&lt;br&gt;
which will be used in some of the subsequent tasks.&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #8
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 45min to purchase a limited edition “IOV Gorra Digital Edition” from Kripton Market.&lt;/p&gt;

&lt;p&gt;You must use &lt;a href="https://marketplace.kriptonmarket.com/"&gt;&lt;code&gt;marketplace.kriptonmarket.com&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Reward: 60 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This objective is to use a stablecoin to purchase a retail item.&lt;/p&gt;

&lt;p&gt;Adaptations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;These items may no longer be available, purchase any other item with approximately the same value instead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hHmE9apb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvyux4t3uzke6295ldor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hHmE9apb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mvyux4t3uzke6295ldor.png" alt="Image description" width="880" height="781"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="/images/posts/dogfood-your-web3-ecosystem--irl-purchase.png" class="article-body-image-wrapper"&gt;&lt;img src="/images/posts/dogfood-your-web3-ecosystem--irl-purchase.png" alt="So it wasn't really digital after all"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Mini-spoiler: The "digital edition" was a bit of a troll 😉,&lt;br&gt;
this activity was really about the purchase of a physical cap;&lt;br&gt;
and was revealed right at the end of the activities.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #9
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 10min to uninstall your Metamask wallet from your new Browser Profile.&lt;/p&gt;

&lt;p&gt;Reward: 10 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This task is to simulate "losing" your wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  OBJECTIVE #10
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;You have 35min to recover your wallet but now using Defiant (mobile) or Liquality (browser).&lt;/p&gt;

&lt;p&gt;Ensure that your addresses/balances are intact. Hint: Check your derivation path.&lt;/p&gt;

&lt;p&gt;Reward: 100 points&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This task is to recover funds after "losing" your wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next
&lt;/h2&gt;

&lt;p&gt;So those are all the activities! If you do indeed try them out, be sure to drop your feedback and questions over at &lt;a href="https://rsk.co/slack"&gt;rsk.co/slack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Originally posted on &lt;a href="https://blog.bguiz.com/2022/dogfood-your-web3-ecosystem-diy/"&gt;Bguiz Blog&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;More coming soon; this is the second in a series of posts!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/2022/dogfood-your-web3-ecosystem/"&gt;Dogfood Your Web3 Ecosystem&lt;/a&gt; - The thinking behind it, and preparation for it&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;This post&lt;/em&gt; &lt;a href="https://dev.to/2022/dogfood-your-web3-ecosystem-diy/"&gt;Try it yourself!&lt;/a&gt; - A list of all activities, (almost) no spoilers&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Coming soon&lt;/em&gt; Demos - How the activities were completed and evaluated, spoilers aplenty&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://dev.to/2022/dogfood-your-web3-ecosystem-takeaways/"&gt;Takeaways&lt;/a&gt; - What we learnt from the entire process&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dogfood</category>
      <category>rsk</category>
      <category>web3</category>
      <category>valueweek</category>
    </item>
    <item>
      <title>RBTC vs. WRBTC: What are Wrapped Cryptocurrencies?</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Sat, 09 Apr 2022 09:56:22 +0000</pubDate>
      <link>https://dev.to/owans/rbtc-vs-wrbtc-what-are-wrapped-cryptocurrencies-42ch</link>
      <guid>https://dev.to/owans/rbtc-vs-wrbtc-what-are-wrapped-cryptocurrencies-42ch</guid>
      <description>&lt;p&gt;Originally published on &lt;a href="https://hackernoon.com/rbtc-vs-wrbtc-what-are-wrapped-cryptocurrencies"&gt;Hackernoon&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Wrapped Token?
&lt;/h2&gt;

&lt;p&gt;Wrapped cryptocurrencies or tokens are pegged to the value of another original crypto or assets like gold, stocks, shares, and real estate and put to work on the DeFi platforms.&lt;/p&gt;

&lt;p&gt;They are a special type of ERC20 tokens, which typically prefix their token symbol with "W". For example, RBTC is the native cryptocurrency on the RSK Blockchain and WRBTC is an ERC20 token that wraps RBTC. This not only enables the RBTC denominated DeFi activity on DeFi platforms (which standardises on the ERC20 standard) but also consequently enables it to be used on other blockchain networks.&lt;/p&gt;

&lt;p&gt;The original asset is 'wrapped' into a digital vault, and a newly minted token is created to transact on other platforms. Wrapped tokens allow non-native assets to be used on any blockchain, build bridges between networks, and implement interoperability in the cryptocurrency space.&lt;/p&gt;

&lt;h2&gt;
  
  
  How do they work?
&lt;/h2&gt;

&lt;p&gt;The creator of the token; upon deployment usually creates the initial supply of the tokens (total number of tokens). This is known as a "mint" operation. In many ERC20 tokens that's all, but for some ERC20 tokens, the total supply needs to be increased or decreased after the initial deployment.&lt;/p&gt;

&lt;p&gt;So the smart contract exposes a mint function, for increasing the total supply; and a burn function for decreasing the total supply. Of course, they don't simply allow that to happen for no reason, usually, a set of requirements must be met to use these functions,&lt;br&gt;
and these smart contract functions check for that.&lt;/p&gt;

&lt;p&gt;In wrapped tokens, the wrap operation performs a mint. The holder transfers cryptocurrency to the smart contract, the smart contract mints the equivalent amount of tokens, and finally, the smart contract transfers the tokens to the holder.&lt;/p&gt;

&lt;p&gt;The unwrap operation does the reverse and performs a burn. The holder transfers tokens to the smart contract, the smart contract burns the equivalent amount of tokens, and finally, the smart contract transfers the cryptocurrency to the holder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Difference between a wrapped vs an unwrapped token&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdswqb9bnhsrn1x6hkm3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdswqb9bnhsrn1x6hkm3m.png" alt="wrap-vs-unwrap" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Difference between BTC, RBTC, WRBTC, and WBTC
&lt;/h2&gt;

&lt;p&gt;BTC is the native currency of the Bitcoin network.&lt;/p&gt;

&lt;p&gt;RBTC is the native cryptocurrency of the RSK network. RBTC it is pegged 1 : 1 with BTC (1 RBTC = 1 BTC).&lt;/p&gt;

&lt;p&gt;WRBTC is an ERC20 token that wraps RBTC. Both are on the same network, RSK. This is accomplished using a smart contract. See &lt;a href="https://rootstock.blockscout.com/token/0x542FDA317318eBf1d3DeAF76E0B632741a7e677d"&gt;WRBTC on the RSK block explorer&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;WBTC is an ERC20 token on the Ethereum network that is treated like wrapped BTC. However is not accomplished using smart contracts, and instead requires trust in an intermediary.&lt;/p&gt;

&lt;p&gt;All four of these assets have equivalent value, they simply exist in different formats and on different blockchain networks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why use WRBTC?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Trade Directly with other Tokens&lt;/strong&gt;&lt;br&gt;
The reason you need WRBTC is to be able to trade RBTC for other ERC-20 tokens on decentralized platforms. Because decentralized platforms running on Rootstock use smart contracts to facilitate trades directly between users, every user needs to have the same standardized format for every token they trade. This ensures tokens don't get lost in translation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No wrapping is done&lt;/strong&gt;&lt;br&gt;
When you "wrap" RBTC, you are trading via a smart contract for a token of equal value called WRBTC. If you want to get native RBTC back you need to "unwrap" it, via the same smart contract.&lt;/p&gt;

&lt;p&gt;Source: &lt;a href="https://think-and-dev.github.io/wrbtc/index.html"&gt;Think and Dev&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Benefits of using wrapped tokens?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Faster&lt;/strong&gt;&lt;br&gt;
The Rootstock blockchain processes transactions faster than the Bitcoin network. With RBTC and WRBTC, it's possible to use your BTC reserves on the Rootstock platform, conducting transactions faster.&lt;br&gt;
Watch how to get RBTC using &lt;a href="https://www.youtube.com/watch?v=8ds2_9hzZYM"&gt;Sovryn&lt;/a&gt; and &lt;a href="https://www.youtube.com/watch?v=qD1lODbCBqE"&gt;Liquality&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Promotes Interoperability&lt;/strong&gt;&lt;br&gt;
One reason for this is that ERC20 tokens all have a standard interface. The method to transfer ERC20 tokens is the same for any tokens that follow that standard. Every blockchain is different and enforces its own standards, meaning many tokens cannot be used across other chains. Wrapped tokens allow for non-native tokens to be used on other blockchains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Increased Liquidity&lt;/strong&gt;&lt;br&gt;
There is only one cryptocurrency per blockchain network. Rootstock only has RBTC, and Ethereum only has Ether.&lt;/p&gt;

&lt;p&gt;However, DeFi protocols want to be able to trade and perform other operations using &lt;em&gt;multiple&lt;/em&gt; tokens, not just one. Combine that with token bridges that enable tokens to cross from one blockchain network to another. Combine all of this together and you get the ability to have Wrapped RBTC, Wrapped Ether, RDOC, and rUSDT all available on a single DeFi platform, which is pretty amazing!&lt;br&gt;
Wrapped tokens increase liquidity and capital efficiency for exchanges, as they offer their users greater trading options.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Get Wrapped RBTC (WRBTC)?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  RBTC and WRBTC
&lt;/h3&gt;

&lt;p&gt;To acquire wrapped RBTC, you can wrap your own RBTC by finding a WRBTC merchant such as &lt;a href="https://rskswap.com/"&gt;RSKSwap&lt;/a&gt;. The merchant sends your BTC to a smart contract that mints the WRBTC-wrapped token at a 1:1 ratio and stores your deposited BTC. When you want to redeem your WRBTC for bitcoin, the merchant will send a burn request to the custodian who will then destroy the WRBTC and return your RBTC back to you.&lt;br&gt;
For the more technically savvy, you can even perform the exact operations described above by interacting directly with &lt;a href="https://rootstock.blockscout.com/token/0x542FDA317318eBf1d3DeAF76E0B632741a7e677d"&gt;the WRBTC smart contract&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  BTC and RBTC
&lt;/h3&gt;

&lt;p&gt;If you have BTC on the Bitcoin network, you may wish to convert it to RBTC on the Rootstock network. Watch this &lt;a href="https://www.youtube.com/watch?v=t4y6SXbGvWs"&gt;explainer video&lt;/a&gt; below or read about the RBTC Conversion on &lt;a href="https://developers.rsk.co/rsk/rbtc/conversion/"&gt;Rootstock Developers Portal&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For converting RBTC to BTC and vice versa, you can check out the guide here: &lt;a href="https://developers.rsk.co/rsk/rbtc/conversion/"&gt;RBTC Conversion&lt;/a&gt; or &lt;a href="https://www.youtube.com/watch?v=zNzSmkJmdU8"&gt;watch this explainer video&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rsk</category>
      <category>rbtc</category>
      <category>crypto</category>
      <category>btc</category>
    </item>
    <item>
      <title>How to set up a Hardhat project for RSK Testnet</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Tue, 25 Jan 2022 16:09:35 +0000</pubDate>
      <link>https://dev.to/owans/how-to-set-up-a-hardhat-project-for-rsk-testnet-1f96</link>
      <guid>https://dev.to/owans/how-to-set-up-a-hardhat-project-for-rsk-testnet-1f96</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7Uyk_73o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clmk445qaq3rtio5vb8s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7Uyk_73o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clmk445qaq3rtio5vb8s.jpg" alt="Banner Hardhat" width="880" height="115"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Welcome to the tutorial on how to set up a Hardhat project for RSK Testnet. In this tutorial, we'll do the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is Hardhat?&lt;/li&gt;
&lt;li&gt;Setting up your environment &lt;/li&gt;
&lt;li&gt;Creating and configuring a new Hardhat project&lt;/li&gt;
&lt;li&gt;Writing and compiling smart contracts&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;To follow this tutorial, you should have knowledge in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics"&gt;JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Command Line&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;Smart contracts basics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are not familiar with the above, it will be advisable to learn the basics by clicking the links above, before proceeding with this tutorial on how to set up a hardhat project.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Hardhat?
&lt;/h2&gt;

&lt;p&gt;Hardhat is a development environment that enables a developer to compile, deploy, test, and debug your RSK software. It helps to manage and automate the recurring tasks that are inherent to the process of building blockchain applications. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Setting up your node.js environment
&lt;/h2&gt;

&lt;p&gt;Most Hardhat libraries and tools are written in JavaScript, and so is Ethereum libraries and tools. Node.js is a JavaScript runtime environment built on Chrome's V8 JavaScript engine. It's the most popular solution to run JavaScript outside of a web browser and Hardhat is built on top of it. &lt;/p&gt;

&lt;h3&gt;
  
  
  1.1. Installing Node.js
&lt;/h3&gt;

&lt;p&gt;You can skip this section if you already have a working Node.js &amp;gt;= 12.0 installation. If not, here's how to install it on Ubuntu, MacOS and Windows.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;curl git
curl &lt;span class="nt"&gt;-sL&lt;/span&gt; https://deb.nodesource.com/setup_12.x | &lt;span class="nb"&gt;sudo&lt;/span&gt; &lt;span class="nt"&gt;-E&lt;/span&gt; bash -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;nodejs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Windows
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Git's installer for Windows](https://git-scm.com/download/win)
node-v12.XX.XX-x64.msi [from](https://nodejs.org/dist/latest-v12.x/) here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Mac OSX
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-o-&lt;/span&gt; https://raw.githubusercontent.com/creationix/nvm/v0.35.2/install.sh | bash
nvm &lt;span class="nb"&gt;install &lt;/span&gt;12
nvm use 12
nvm &lt;span class="nb"&gt;alias &lt;/span&gt;default 12
npm &lt;span class="nb"&gt;install &lt;/span&gt;npm &lt;span class="nt"&gt;--global&lt;/span&gt; &lt;span class="c"&gt;# Upgrade npm to the latest version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Creating and configuring a new Hardhat project
&lt;/h3&gt;

&lt;p&gt;Lets install Hardhat using the npm CLI. The Node.js package manager is the world's largest Software Registry that contains over 800,000 JavaScript code packages. Go &lt;a href="https://www.w3schools.com/whatis/whatis_npm.asp"&gt;here&lt;/a&gt; to learn more about npm&lt;/p&gt;

&lt;p&gt;Open a new terminal and run the below command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir hardhat-tutorial-guide
cd hardhat-tutorial-guide
npm init --yes
npm install --save-dev hardhat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the same directory where you installed Hardhat run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npx hardhat&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Create an empty hardhat.config.js&lt;/strong&gt; with your keyboard and hit enter, do the same for the remaining prompts&lt;/p&gt;

&lt;p&gt;When Hardhat is run, it searches for the closest &lt;code&gt;hardhat.config.js&lt;/code&gt; file starting from the current working directory. This file normally lives in the root of your project and an empty &lt;code&gt;hardhat.config.js&lt;/code&gt; is enough for Hardhat to work. The entirety of your setup is contained in this file. Hardhat will create a &lt;code&gt;hardhat.config.js&lt;/code&gt; like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/**
 * @type import('hardhat/config').HardhatUserConfig
 */
module.exports = {
  solidity: "0.7.3",
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.1. Configure &lt;code&gt;hardhat.config.js&lt;/code&gt; to connect to RSK Testnet
&lt;/h3&gt;

&lt;p&gt;To set up your config, you have to export an object from hardhat.config.js. This object can have entries like &lt;code&gt;defaultNetwork&lt;/code&gt;, &lt;code&gt;networks&lt;/code&gt;, &lt;code&gt;solidity&lt;/code&gt;, &lt;code&gt;paths&lt;/code&gt; and &lt;code&gt;mocha&lt;/code&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  2.2. Network configuration
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;networks&lt;/code&gt; config field is an optional object where network names map to their configuration.&lt;/p&gt;

&lt;p&gt;There are two kinds of networks in Hardhat: JSON-RPC based networks, which is what we will be using in this tutorial, and the built-in Hardhat Network.&lt;/p&gt;

&lt;p&gt;You can customize which network is used by default when running Hardhat by setting the config's &lt;code&gt;defaultNetwork&lt;/code&gt; field. If you omit this config, its default value is &lt;code&gt;"hardhat"&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2.3. Hardhat Network
&lt;/h3&gt;

&lt;p&gt;Hardhat comes built-in with a special network called hardhat. When using this network, an instance of the &lt;a href="https://hardhat.org/hardhat-network/"&gt;Hardhat Network&lt;/a&gt; will be automatically created when you run a task, script or test your smart contracts.&lt;/p&gt;

&lt;p&gt;Hardhat Network has first-class support of Solidity. It always knows which smart contracts are being run and exactly what they do and why they fail. Learn more about it &lt;a href="https://hardhat.org/hardhat-network/"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  2.4. JSON-RPC based networks
&lt;/h3&gt;

&lt;p&gt;These are networks that connect to an external node. Nodes can run on your computer, like Ganache, or remotely, like RSK Testnet. We'll be configuring a network connection named &lt;code&gt;rsktestnet&lt;/code&gt; for this tutorial.&lt;/p&gt;

&lt;p&gt;Include the following code in your &lt;code&gt;hardhat.config.js&lt;/code&gt; file&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/**
 * @type import('hardhat/config').HardhatUserConfig
 */
module.exports = {
  solidity: '0.7.3',
  networks: {
    rsktestnet: {
      chainId: 31,
      url: 'https://public-node.testnet.rsk.co/',
      gasPrice: Math.floor(minimumGasPriceTestnet * TESTNET_GAS_MULT),
      gasMultiplier: TESTNET_GAS_MULT,
      accounts: {
        mnemonic: mnemonic,
        initialIndex: 0,
        path: "m/44'/60'/0'/0",
        count: 10,
      },
    },
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To set such networks, you’ll have to configure the object with the following fields: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;url&lt;/code&gt;: This is the url of the node for custom networks.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chainId&lt;/code&gt;: This number is used to validate the network Hardhat connects to.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gasPrice&lt;/code&gt;: Its value should be auto or a number. Default value: auto&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;gasMultiplier&lt;/code&gt;: Default value : 1&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;accounts&lt;/code&gt;: This field controls the account that Hardhat uses. It can use node’s accounts or an HD Wallet. Default : “remote”.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.5. HD Wallet Configuration
&lt;/h3&gt;

&lt;p&gt;For using HD Wallet with Hardhat, you’ll have to set your network’s account with the below fields.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mnemonic&lt;/code&gt;: A string that is your seed phrase of the wallet&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;path&lt;/code&gt;: the HD parent of all derived keys. Default value : &lt;code&gt;m/44'/60'/0'/0&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;initialIndex&lt;/code&gt;: Initial index to derive. Default value : 0&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;count&lt;/code&gt;: Number of accounts to derive. Default value: 20&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2.6. Solidity configuration
&lt;/h3&gt;

&lt;p&gt;The solidity config is an optional field that can be one of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A solc version to use, e.g. &lt;code&gt;"0.7.3"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;An object which describes the configuration for a single compiler. It contains the version, which is the solc version to use, and settings like optimizer with enabled and runs keys.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  solidity: {
    version: "0.7.3",
    settings: {
      optimizer: {
        enabled: true,
        runs: 200
      }
    }
  },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.7. Path configuration
&lt;/h3&gt;

&lt;p&gt;You can customize the different paths that Hardhat uses by providing an object to the paths field with the following keys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;root&lt;/code&gt;: The root of the Hardhat project. This path is resolved from &lt;code&gt;hardhat.config.js&lt;/code&gt;'s directory. Default value: the directory containing the config file.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sources&lt;/code&gt;: The directory where your contract are stored. This path is resolved from the project's root. Default value: &lt;code&gt;'./contracts'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tests&lt;/code&gt;: The directory where your tests are located. This path is resolved from the project's root. Default value: &lt;code&gt;'./test'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cache&lt;/code&gt;: The directory used by Hardhat to cache its internal stuff. This path is resolved from the project's root. Default value: &lt;code&gt;'./cache'&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;artifacts&lt;/code&gt;: The directory where the compilation artifacts are stored. This path is resolved from the project's root. Default value: &lt;code&gt;'./artifacts'&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Paths: {
    sources: "./contracts",
    tests: "./test",
    cache: "./cache",
    artifacts: "./artifacts"
},
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2.8. Mocha configuration:
&lt;/h3&gt;

&lt;p&gt;You can configure how tests are running using mocha entity, it would accept the same options as Mocha.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mocha: {
    timeout: 20000
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's look at some other statements in the &lt;code&gt;hardhat.config.js&lt;/code&gt; file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fs = require('fs');

require('@nomiclabs/hardhat-ethers');
require('@nomiclabs/hardhat-waffle');

const TESTNET_GAS_MULT = 1.1;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first line &lt;code&gt;const fs = require('fs');&lt;/code&gt; provides access to the NodeJs built-in File System, &lt;code&gt;fs&lt;/code&gt; module.&lt;/p&gt;

&lt;p&gt;The second line, &lt;code&gt;require('@nomiclabs/hardhat-ethers');&lt;/code&gt; gives us access to the plugin that brings to Hardhat the Ethereum library ethers.js, which allows you to interact with the Ethereum blockchain in a simple way. This plugins adds an &lt;code&gt;ethers&lt;/code&gt; object to the Hardhat Runtime Environment.&lt;/p&gt;

&lt;p&gt;The third line, &lt;code&gt;require('@nomiclabs/hardhat-waffle');&lt;/code&gt;&lt;br&gt;
gives us access to the plugin for building smart contract tests using Waffle in Hardhat, this plugin adds a Hardhat-ready version of Waffle to the Hardhat Runtime Environment, and automatically initializes the Waffle Chai matchers. This object has all the Waffle functionality, already adapted to work with Hardhat.&lt;/p&gt;

&lt;p&gt;The line &lt;code&gt;const TESTNET_GAS_MULT = 1.1;&lt;/code&gt; declares a constant that stores the &lt;code&gt;gasMultiplier&lt;/code&gt; value to be used in the network object.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const mnemonic = fs.readFileSync('.testnet.seed-phrase').toString().trim();
if (!mnemonic || mnemonic.split(' ').length !== 12) {
  console.log('unable to retrieve mnemonic from .secret');
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The line &lt;code&gt;const mnemonic = fs.readFileSync('.testnet.seed-phrase').toString().trim();&lt;/code&gt;  enables the Hardhat configuration file to read the mnemonics from a &lt;code&gt;.testnet.seed-phrase&lt;/code&gt; file present in the Hardhat project directory. This is done using the following lines already present in the &lt;code&gt;hardhat.config.js file&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;The preceding script reads the &lt;code&gt;.testnet.seed-phrase&lt;/code&gt; file from the filesystem and sets in the mnemonic variable. This variable can be used in the configuration to read the BIP39 mnemonic keyword.&lt;/p&gt;

&lt;p&gt;If this file is not present, you should create this file under the Hardhat project and add your BIP39 mnemonic seed keywords in plain text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const gasPriceTestnetRaw = fs
  .readFileSync('.minimum-gas-price-testnet.json')
  .toString()
  .trim();
const minimumGasPriceTestnet = parseInt(
  JSON.parse(gasPriceTestnetRaw).result.minimumGasPrice,
  16,
);
if (
  typeof minimumGasPriceTestnet !== 'number' ||
  Number.isNaN(minimumGasPriceTestnet)
) {
  throw new Error(
    'unable to retrieve network gas price from .gas-price-testnet.json',
  );
}
console.log(`Minimum gas price Testnet: ${minimumGasPriceTestnet}`);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above script enables us to get the updated gas price from RSK Testnet, as  &lt;code&gt;minimumGasPriceTestnet&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The updated &lt;code&gt;hardhat.config.js&lt;/code&gt; file:
&lt;/h3&gt;

&lt;p&gt;Check out the full project source code on &lt;a href="https://github.com/bguiz/workshop-hardhat-rsk"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const fs = require('fs');

require('@nomiclabs/hardhat-ethers');
require('@nomiclabs/hardhat-waffle');

const TESTNET_GAS_MULT = 1.1;

const mnemonic = fs.readFileSync('.testnet.seed-phrase').toString().trim();
if (!mnemonic || mnemonic.split(' ').length !== 12) {
  console.log('unable to retrieve mnemonic from .secret');
}

const gasPriceTestnetRaw = fs
  .readFileSync('.minimum-gas-price-testnet.json')
  .toString()
  .trim();
const minimumGasPriceTestnet = parseInt(
  JSON.parse(gasPriceTestnetRaw).result.minimumGasPrice,
  16,
);
if (
  typeof minimumGasPriceTestnet !== 'number' ||
  Number.isNaN(minimumGasPriceTestnet)
) {
  throw new Error(
    'unable to retrieve network gas price from .gas-price-testnet.json',
  );
}
console.log(`Minimum gas price Testnet: ${minimumGasPriceTestnet}`);

/**
 * @type import('hardhat/config').HardhatUserConfig
 */
module.exports = {
  solidity: '0.7.3',
  networks: {
    rsktestnet: {
      chainId: 31,
      url: 'https://public-node.testnet.rsk.co/',
      gasPrice: Math.floor(minimumGasPriceTestnet * TESTNET_GAS_MULT),
      gasMultiplier: TESTNET_GAS_MULT,
      accounts: {
        mnemonic: mnemonic,
        initialIndex: 0,
        path: "m/44'/60'/0'/0",
        count: 10,
      },
    },
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Let's take a look at the concepts of hardhat tasks and plugins.
&lt;/h3&gt;

&lt;p&gt;Hardhat is designed around the concepts of tasks and plugins. The bulk of Hardhat's functionality comes from plugins, which as a developer you're free to choose the ones you want to use in your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.1. Tasks
&lt;/h3&gt;

&lt;p&gt;Every time you run Hardhat from the CLI, you're running a task. e.g. &lt;code&gt;npx hardhat compile&lt;/code&gt; is running the &lt;code&gt;compile&lt;/code&gt; task.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.2. Plugins
&lt;/h3&gt;

&lt;p&gt;Hardhat does come with some built-in default plugins, all of which can be overriden. For this tutorial we are going to use the Ethers.js and Waffle plugins. They'll allow you to interact with Ethereum and to test your contracts. To install them in your project directory run:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm install --save-dev @nomiclabs/hardhat-ethers ethers @nomiclabs/hardhat-waffle ethereum-waffle chai&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Writing and compiling smart contracts
&lt;/h3&gt;

&lt;p&gt;We're going to create a simple smart contract that implements a token that can be transferred. Token contracts are most frequently used to exchange or store value. Find below some logic we implemented by the contract.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;There is a fixed total supply of tokens that can't be changed.&lt;/li&gt;
&lt;li&gt;The entire supply is assigned to the address that deploys the contract.&lt;/li&gt;
&lt;li&gt;Anyone can receive tokens.&lt;/li&gt;
&lt;li&gt;Anyone with at least one token can transfer tokens.&lt;/li&gt;
&lt;li&gt;Get Token balance of a given account&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4.1 Creating the  smart contracts
&lt;/h3&gt;

&lt;p&gt;Start by creating a new directory called &lt;code&gt;contracts&lt;/code&gt; and create a file inside the directory called &lt;code&gt;Token.sol&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir contracts
touch contracts/Token.sol
code contracts/Token.sol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the below initial set up code for the Token transfer contract into your integrated development environment. We’ll implement the functions in the smart contract as we go along.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2. Code walkthrough
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pragma solidity ^0.7.0;

import "hardhat/console.sol";

// This is the main building block for smart contracts.
contract Token {

    // Some string type variables to identify the token.
    // The `public` modifier makes a variable readable from outside the contract.
    string public name = "My Hardhat Token";
    string public symbol = "MHT";

    // The fixed amount of tokens stored in an unsigned integer type variable.
    uint256 public totalSupply = 1000000;

    // An address type variable is used to store ethereum accounts.
    address public owner;

    // A mapping is a key/value map. Here we store each account balance.
    mapping(address =&amp;gt; uint256) balances;

    constructor() {
    // TODO set default candidates
    }

    function transfer(address to, uint256 amount) external {
    // TODO Create a function to enable transfer of Tokens
    }

    function balanceOf(address account) external view returns (uint256) {
        // TODO Create a function to check the balance of an account
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first line - &lt;code&gt;pragma&lt;/code&gt; - declares the version of Solidity you wish to write your code in. The declaration of the smart contract starts with the &lt;code&gt;contract&lt;/code&gt; keyword, then the name of the contract. Here, &lt;code&gt;Token&lt;/code&gt; is the name of our smart contract.&lt;/p&gt;

&lt;p&gt;Next, we declare a string variable called &lt;code&gt;name&lt;/code&gt; to hold the name and identifier for the Token. The line &lt;code&gt;string public name = "My Hardhat Token";&lt;/code&gt; declares a named variable that is public and of type &lt;code&gt;string&lt;/code&gt;. This variable holds the identifier for the Token, which in our case is "My Hardhat Token"&lt;/p&gt;

&lt;p&gt;Next, we declare a variable called "symbol" to hold the symbol for the token. The line &lt;code&gt;string public symbol = "MHT";&lt;/code&gt; declares a symbol variable that is public and of type &lt;code&gt;string&lt;/code&gt;. This variable stores the symbol by which the token should be known, in our case "MHT". &lt;/p&gt;

&lt;p&gt;Next, we declare a variable called &lt;code&gt;totalSupply&lt;/code&gt; to hold the fixed amount of Token in circulation. The line &lt;code&gt;uint256 public totalSupply = 1000000;&lt;/code&gt; declares a totalSupply variable that is public and of type &lt;code&gt;uint&lt;/code&gt; (unsigned integer with 256 bits). This variable stores the fixed amount of tokens in supply, in our case is 1000000. &lt;/p&gt;

&lt;p&gt;Next, we declare a variable called &lt;code&gt;owner&lt;/code&gt; to hold the address of the owner of the contract. The line &lt;code&gt;address public owner;&lt;/code&gt; declares an owner variable that is public and of type address. &lt;/p&gt;

&lt;h3&gt;
  
  
  4.3. Address data type
&lt;/h3&gt;

&lt;p&gt;The address type comes in two flavours, which are largely identical:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;address&lt;/code&gt;: Holds a 20 byte value (size of an RSK address).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;address payable&lt;/code&gt;: Same as address, but with the additional members transfer and send.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea behind this distinction is that address payable is an address you can send RBTC to, while a plain address cannot be sent RBTC. Read more on &lt;a href="https://docs.soliditylang.org/en/v0.7.1/style-guide.html?highlight=bool#mappings"&gt;Variable Declaration in Solidity&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, we store each account balance in a key/value pair map. The line &lt;code&gt;mapping(address =&amp;gt; uint256) balances;&lt;/code&gt;maps an address field that stores the address of the account, and a uint256 field that stores the balance of Tokens in the mapped address. &lt;/p&gt;

&lt;p&gt;The constructor function gets called when the smart contract is deployed to the blockchain. The constructor would be initialised upon contract creation. Read about &lt;a href="https://solidity.readthedocs.io/en/v0.7.1/contracts.html#constructor"&gt;Constructors in Solidity&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.5. Implementing the smart contract functions
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Implementing the constructor
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;constructor() {
        // The totalSupply is assigned to transaction sender, which is the account
        // that is deploying the contract.
        balances[msg.sender] = totalSupply;
        owner = msg.sender;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The line &lt;code&gt;balances[msg.sender] = totalSupply;&lt;/code&gt; assigns the address of the person deploying the contract to the balances address field, and then assigns the &lt;code&gt;totalSupply&lt;/code&gt; to the &lt;code&gt;uint256&lt;/code&gt; field of the balances variable. The line &lt;code&gt;owner = msg.sender;&lt;/code&gt; assigns the address of the person deploying the contract to the owner variable, which is of type &lt;code&gt;address&lt;/code&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  4.6. Transfer Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function transfer(address to, uint256 amount) external {
        console.log("Sender balance is %s tokens", balances[msg.sender]);
        console.log("Trying to send %s tokens to %s", amount, to);
        // Check if the transaction sender has enough tokens.
        // If `require`'s first argument evaluates to `false` then the
        // transaction will revert.
        require(balances[msg.sender] &amp;gt;= amount, "Not enough tokens");

        // Transfer the amount.
        balances[msg.sender] -= amount;
        balances[to] += amount;
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The function transfer takes two parameters, the first is the address to which Tokens should be transfered to, and the second parameter is the amount of Tokens to be sent. The external modifier makes this function only callable from outside the contract. The functions requires that balance of sender should be greater than amount to be sent, if this condition is false, then an error message is thrown, saying "not enough Tokens". If the balance amount is greater than amount to be sent, then the amount is deducted from the senders balance and then credited to the receivers account.&lt;/p&gt;

&lt;h3&gt;
  
  
  4.7. Implementing the balanceOf Function
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    function balanceOf(address account) external view returns (uint256) {
        return balances[account];
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The function &lt;code&gt;balanceOf&lt;/code&gt; takes an address as a parameter and then returns the current balance of that address to the caller of the function. The view keyword in the declaration means that the function will not modify the state of the contract, while the returns keyword indicate that the function will return a &lt;code&gt;uint256&lt;/code&gt; value.&lt;/p&gt;

&lt;h3&gt;
  
  
  The updated Smart Contract
&lt;/h3&gt;

&lt;p&gt;Check out the full project source code on &lt;a href="https://github.com/bguiz/workshop-hardhat-rsk"&gt;GitHub&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// SPDX-License-Identifier: GPL-3.0
// Solidity files have to start with this pragma.
// It will be used by the Solidity compiler to validate its version.
pragma solidity ^0.7.0;

import "hardhat/console.sol";

// This is the main building block for smart contracts.
contract Token {
    // Some string type variables to identify the token.
    // The `public` modifier makes a variable readable from outside the contract.
    string public name = "My Hardhat Token";
    string public symbol = "MHT";

    // The fixed amount of tokens stored in an unsigned integer type variable.
    uint256 public totalSupply = 1000000;

    // An address type variable is used to store ethereum accounts.
    address public owner;

    // A mapping is a key/value map. Here we store each account balance.
    mapping(address =&amp;gt; uint256) balances;

    /**
     * Contract initialization.
     *
     * The `constructor` is executed only once when the contract is created.
     */
    constructor() {
        // The totalSupply is assigned to transaction sender, which is the account
        // that is deploying the contract.
        balances[msg.sender] = totalSupply;
        owner = msg.sender;
    }

    /**
     * A function to transfer tokens.
     *
     * The `external` modifier makes a function *only* callable from outside
     * the contract.
     */
    function transfer(address to, uint256 amount) external {
        console.log("Sender balance is %s tokens", balances[msg.sender]);
        console.log("Trying to send %s tokens to %s", amount, to);
        // Check if the transaction sender has enough tokens.
        // If `require`'s first argument evaluates to `false` then the
        // transaction will revert.
        require(balances[msg.sender] &amp;gt;= amount, "Not enough tokens");

        // Transfer the amount.
        balances[msg.sender] -= amount;
        balances[to] += amount;
    }

    /**
     * Read only function to retrieve the token balance of a given account.
     *
     * The `view` modifier indicates that it doesn't modify the contract's
     * state, which allows us to call it without executing a transaction.
     */
    function balanceOf(address account) external view returns (uint256) {
        return balances[account];
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.8. Compiling contracts
&lt;/h3&gt;

&lt;p&gt;To compile the contract, run &lt;code&gt;npx hardhat compile&lt;/code&gt; in your terminal. The &lt;code&gt;compile&lt;/code&gt; task is one of the built-in tasks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npx hardhat compile
Compiling 1 file with 0.7.3
Compilation finished successfully
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The contract has been successfully compiled and it's ready to be used.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing the smart contract
&lt;/h3&gt;

&lt;p&gt;Writing automated tests when building smart contracts is of crucial importance. In our tests we're going to use ethers.js to interact with the RSK contract we built in the previous section, and Mocha as our test runner.&lt;/p&gt;

&lt;p&gt;See the complete &lt;a href="https://developers.rsk.co/kb/hardhat-setup-on-rsk/"&gt;tutorial&lt;/a&gt; on the RSK Developers Portal showing examples for How to write and setup a testing environment.&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>How to verify a smart contract on the RSK Block Explorer</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Tue, 18 Jan 2022 13:52:43 +0000</pubDate>
      <link>https://dev.to/owans/how-to-verify-a-smart-contract-on-the-rsk-block-explorer-57oc</link>
      <guid>https://dev.to/owans/how-to-verify-a-smart-contract-on-the-rsk-block-explorer-57oc</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xOjw7EFY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urqsdimrenb7wviklmsc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xOjw7EFY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urqsdimrenb7wviklmsc.jpg" alt="banner image" width="880" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Originally published on the &lt;a href="https://developers.rsk.co/kb/verify-smart-contract/"&gt;RSK Developers Portal&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Smart contracts are a means to execute code and store data on a blockchain.&lt;br&gt;
To understand how smart contracts work, read &lt;a href="https://developers.rsk.co/guides/full-stack-dapp-on-rsk/part1-overview/#what-is-a-smart-contract"&gt;What is a Smart Contract?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code verification provides &lt;strong&gt;transparency&lt;/strong&gt; for users interacting with smart contracts. By uploading the source code, a block explorer will match the compiled code with that on the blockchain. &lt;/p&gt;

&lt;p&gt;Once verified, a smart contract or token contract's source code becomes publicly &lt;strong&gt;visible&lt;/strong&gt; and thus independently verifiable. This creates transparency and trust.&lt;br&gt;
It also makes it more convenient for other developers to interact with your smart contracts.&lt;/p&gt;

&lt;p&gt;In this tutorial, we will verify a smart contract, using the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Connect metamask to RSK Explorer&lt;/li&gt;
&lt;li&gt;Get tRBTC using the RSK faucet&lt;/li&gt;
&lt;li&gt;Use remix compile and deploy the Smart Contract at RSK testnet&lt;/li&gt;
&lt;li&gt;Verify the Smart Contract on the RSK Explorer&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Getting started
&lt;/h2&gt;

&lt;p&gt;To connect Metamask to RSK Testnet, compile and deploy a smart contract, follow the steps in &lt;a href="https://developers.rsk.co/tutorials/ethereum-devs/remix-and-metamask-with-rsk-testnet/"&gt;Using remix and metamask with RSK Testnet&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As mentioned in the steps above, this is the smart contract below we will compile and deploy, it is called &lt;code&gt;SimpleStorage.sol&lt;/code&gt; which has:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A variable &lt;code&gt;storedData&lt;/code&gt; to store a number&lt;/li&gt;
&lt;li&gt;A function &lt;code&gt;get()&lt;/code&gt; to return the number stored at variable &lt;code&gt;storedData&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;A function &lt;code&gt;set()&lt;/code&gt; to change the number stored at variable &lt;code&gt;storedData&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight solidity"&gt;&lt;code&gt;&lt;span class="c1"&gt;// SPDX-License-Identifier: MIT
&lt;/span&gt;
&lt;span class="k"&gt;pragma&lt;/span&gt; &lt;span class="n"&gt;solidity&lt;/span&gt; &lt;span class="o"&gt;^&lt;/span&gt;&lt;span class="mf"&gt;0.8&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;contract&lt;/span&gt; &lt;span class="n"&gt;Contract&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
     &lt;span class="kt"&gt;uint&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

     &lt;span class="k"&gt;constructor&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;uint&lt;/span&gt; &lt;span class="n"&gt;_x&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="k"&gt;public&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_x&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;increment&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="k"&gt;external&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;uint&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;external&lt;/span&gt; &lt;span class="k"&gt;view&lt;/span&gt; &lt;span class="k"&gt;returns&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;uint&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
        &lt;span class="c1"&gt;// return the state variable
&lt;/span&gt;        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;one&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Prepare the compiler settings in Remix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Remix, ensure that the compiler setting used for the contract is same as the one in Remix. In this tutorial, we used version &lt;code&gt;0.8.7&lt;/code&gt; of the Solidity compiler, &lt;code&gt;solc&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;You do this by clicking on the solidity icon by the left navigation in remix, and selecting the compiler version, this looks something like: &lt;code&gt;0.8.7+commit.e28d00a7&lt;/code&gt; in the dropdown menu.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q5J0_I1P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/olCoF1J.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q5J0_I1P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/olCoF1J.png" alt="Compiler2" width="880" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that the exact version of the compiler,&lt;br&gt;
plus the other details here are critical during verification.&lt;br&gt;
We'll use this later.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Verifying the smart contract
&lt;/h2&gt;

&lt;p&gt;Upon contract creation, you will receive an address to check a pending transaction. Visit the &lt;a href="https://explorer.testnet.rsk.co/"&gt;RSK Explorer&lt;/a&gt; and paste the transaction hash into the search field.&lt;/p&gt;

&lt;p&gt;In this article, we'll use the transaction hash:&lt;br&gt;
&lt;code&gt;0x843c7fc61ef2d678b36bb6662f610426a60ca484443231c3347c1896e03dfd49&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z9i_Qow0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/bGxPJB3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z9i_Qow0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/bGxPJB3.png" alt="Tx Hash" width="880" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To verify the smart contract, we need to locate the contract address, to do this, scroll down to find the contract address.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0W5a34YP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/OjO9bab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0W5a34YP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/OjO9bab.png" alt="Show contract address" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on this address to open up the contract details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--x5GDgRQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/C46JVKZ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--x5GDgRQW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/C46JVKZ.png" alt="Contract details" width="880" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on &lt;code&gt;Code&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--NHUllIB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/xBoSS12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NHUllIB5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/xBoSS12.png" alt="Code view" width="880" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This shows the bytecode for the contract.&lt;/p&gt;

&lt;p&gt;If another developer sees this,&lt;br&gt;
they are unlikely to be able to interact with your smart contract,&lt;br&gt;
as this is &lt;strong&gt;not human readable&lt;/strong&gt;.&lt;br&gt;
Let's improve this by performing verification.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Smart contract code is usually written in a high level programming language such as Solidity.&lt;br&gt;
This code gets compiled to something called the bytecode which gets deployed to the RSK blockchain.&lt;br&gt;
The nodes that comprise the RSK blockchain network execute this bytecode.&lt;br&gt;
What is actually stored on the blockchain is &lt;strong&gt;not&lt;/strong&gt; the original code written in Solidity,&lt;br&gt;
but rather this compiler output.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Click on &lt;code&gt;Verify Contract&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i1pKSTNB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/X9xEk2T.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i1pKSTNB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/X9xEk2T.png" alt="Verify contract" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill in the details below, enter contract name, upload the source file called &lt;code&gt;SimpleStorage.sol&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sQ2auLdr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/YcDYPV7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sQ2auLdr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/YcDYPV7.png" alt="Verify contract details" width="880" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check that the compiler version matches the version selected in remix, as shown in the images below;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--7zY0yDf6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/sHcgy43.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--7zY0yDf6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/sHcgy43.png" alt="Compiler settings - remix" width="880" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JFQADbyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Lw1toU1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JFQADbyE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Lw1toU1.png" alt="Compiler settings - explorer" width="880" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fill other info, such as constructor arguments, libraries, and EVM encoded arguments (if available).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that the &lt;code&gt;SimpleStorage.sol&lt;/code&gt; smart contract&lt;br&gt;
does not have any constructor arguments, so this is left blank.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Click on &lt;code&gt;Verify&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TBvcYXzR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Hpnro44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TBvcYXzR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/Hpnro44.png" alt="Verify contract" width="880" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vOhGR4x_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/riMAlQh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vOhGR4x_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/riMAlQh.png" alt="Verification in progress" width="880" height="474"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contract successfully verified.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dhfDxNqM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/iewd2Ab.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dhfDxNqM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/iewd2Ab.png" alt="Successful verification prompt" width="880" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once contract is successfully verified, click on "go to contract page". You'll notice a checkmark is now present beside &lt;strong&gt;Code&lt;/strong&gt; which wasn't there previously.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HFw_Y-Ga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/004d4nr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HFw_Y-Ga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/004d4nr.png" alt="Code checkmark" width="880" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can click on it to see more details of the contract.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vLDAaOwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/gvdmheq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vLDAaOwB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/gvdmheq.png" alt="Contract details" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You'll also be able to see the compiler settings.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--frUt4_cU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/SxUyPLx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--frUt4_cU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.imgur.com/SxUyPLx.png" alt="Compilation settings" width="880" height="225"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Congratulations, you have successfully verified a smart contract on the RSK Block Explorer. To see a live example check out the one used in this article:&lt;br&gt;
&lt;a href="https://explorer.testnet.rsk.co/address/0x111b836d63e507a45dee556b10aa17ef16d423ae?__ctab=Code"&gt;&lt;code&gt;0x111b836d63e507a45dee556b10aa17ef16d423ae&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>blockchain</category>
    </item>
    <item>
      <title>The A-Z of Stablecoins</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Wed, 29 Dec 2021 14:00:50 +0000</pubDate>
      <link>https://dev.to/owans/the-a-z-of-stablecoins-191h</link>
      <guid>https://dev.to/owans/the-a-z-of-stablecoins-191h</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Originally Published on  &lt;a href="https://hackernoon.com/the-a-to-z-of-stablecoins"&gt;Hackernoon&lt;/a&gt; &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Centralization runs deep in society in the form of corporations, businesses and governments. Not that they’re bad, but blockchain technology can offer a viable structural alternative by creating a more transparent and accountable system. The idea of open-source decentralization is to redistribute power and to create a fair and trustless system across all industries. This technological breakthrough, therefore, brings lots of promise and hope for the future.&lt;/p&gt;

&lt;p&gt;The inception of Bitcoin in 2009 has resulted in a revolution in the trading and payments industries. People have started to accept cryptocurrencies as a form of payment and it’s being exchanged in large volumes. These can be used for global transactions, buying new assets, and at your nearby retail stores.&lt;/p&gt;

&lt;p&gt;Even though many stores accept Bitcoin and other tokens as a method of payment, it’s rare to see token holders use it in their daily transactions. Another argument might be that there aren’t enough shops that accept it. An often cited reason behind this is that it’s not practical to use it as a unit of account. Stablecoins are tokens developed for this particular reason. They are termed “stable” because they are pegged to the value of something else, such as precious metals or fiat currency.&lt;/p&gt;

&lt;p&gt;To better understand stablecoins, it is important to first learn about price volatility in cryptocurrency.&lt;/p&gt;

&lt;p&gt;Volatility is a measure of how much the price of an asset has moved up or down over time. There are many factors attributing to the volatile nature of Cryptocurrency. Firstly, Cryptocurrency is still at a very nascent stage compared to other investment tools, traditional currencies and even gold. Secondly, the cryptocurrency market thrives on speculation, traders bet that the prices would go up or go down to make profits. These speculative bets can cause a sudden influx or a sudden efflux, leading to high volatility. Their highly speculative nature might be an attractive feature for investors, but it also makes them hard to use in payments and trade. Compared to other cryptocurrencies, stablecoins are stable in value while maintaining similar decentralized features as cryptocurrencies. This makes them an ideal medium for value storage or transaction.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Stablecoins?
&lt;/h2&gt;

&lt;p&gt;A stablecoin is a token built on a blockchain network that is designed to minimize volatility by pegging to a more stable asset. Most commonly, they are backed by US dollars, but they can also be backed by other fiat currencies, like euros or yuan, and even assets like gold, or other cryptocurrencies. Benefits of this include being able to take advantage of blockchain technology and peer-to-peer value transfer while not being exposed to the high price volatility of Bitcoin, Ether, or other cryptocurrencies. Stablecoins are a relatively new kind of technology and each of them comes with different implementations, liquidity, risks, and acceptance.&lt;/p&gt;

&lt;h1&gt;
  
  
  Importance of Stablecoins
&lt;/h1&gt;

&lt;p&gt;Without both short-term and long-term stability, it is considered extremely risky for the mainstream public to adopt cryptocurrencies as a direct replacement for fiat or traditional assets. Larger mass adoption will always require some form of stability. From a consumer perspective, it’s risky and impractical to use cryptocurrencies and tokens for daily use. A volatile medium of exchange can compromise users' purchasing power.&lt;/p&gt;

&lt;p&gt;That’s where stablecoins are the go-to. Stablecoins are the only form of tokens where you don’t have to worry about the instability and volatility of cryptocurrency prices. Stablecoins have an important role due to the following factors:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Protection from (hyper)inflationary fiat economies
Stablecoins have the potential to help people living in countries suffering from high inflation rates, which ultimately reduces their purchasing power. This is usually a result of economic and political uncertainty. There are many examples throughout history where fiat money has significantly suffered from devaluation.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In these countries, it is extremely hard to move their capital elsewhere since capital control laws are imposed by the government to prevent money from leaving the country. Converting their money in stablecoins will ensure that the value of their money is preserved, instead of keeping their money in their national fiat currency which will further reduce their purchasing power. Stablecoins have the ability to globally assist the masses from the fallout of economic and political uncertainty.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Hedging Mechanism For Traders&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To hedge is to reduce the risk of adverse price movements in an investment or asset. Hedging is a strategy often used in the investment world to protect users' positions by reducing risks. Stablecoins are commonly used in the cryptocurrency market as a hedge against Bitcoin and other digital assets. Converting their holdings into stablecoins protects their value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Types Of Stablecoins
&lt;/h2&gt;

&lt;p&gt;There are several ways that the stability feature of stablecoins are designed. The two most common types are convertible and synthetic stablecoins. The key difference between these two is how they are collateralized. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Convertible stablecoins 
These are backed by assets that are held in a reserve, where the asset acts like an IOU that is held by a centralized entity. The most commonly used are fiat-backed stablecoins pegged to the US dollar like USDT or USDC.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;For a more detailed explanation about Stablecoins, Read more in &lt;a href="https://developers.rsk.co/guides/stablecoin/overview/"&gt;What are Stablecoins?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Synthetic stablecoins &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They aim to target a return to a reference sovereign currency like the USD, but they are not directly convertible for fiat currencies. &lt;/p&gt;

&lt;p&gt;One way to achieve the target stability is by using crypto-collateralization (for example, DOC or RDOC), or using derivatives (eg XUSD). Another way is through a peg that is actively managed using an algorithmic monetary policy or smart contract (eg Terra or Ampleforth). This is often used in conjunction with oracles that provide on-chain access to price feeds for fiat and blockchain asset pairs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;See the &lt;a href="https://developers.rsk.co/guides/stablecoin/stablecoin-vs-digital-assets/"&gt;Difference between Stablecoins and other Digital Assets&lt;br&gt;
Stablecoins on RSK&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Stablecoins play an important role in the RSK ecosystem: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They allow users to send, receive, or save the value in a stable form &lt;/li&gt;
&lt;li&gt;Offer a stable trading pair for swaps&lt;/li&gt;
&lt;li&gt;Stablecoins function as less volatile collateral for borrowing reducing the risk of a margin call&lt;/li&gt;
&lt;li&gt;Create more stable yield generation and they're part of the foundation for RSK’s DeFi on Bitcoin ecosystem.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Bitcoin-backed Stablecoins
&lt;/h2&gt;

&lt;h3&gt;
  
  
  DOC
&lt;/h3&gt;

&lt;p&gt;DOC is short for Dollar on Chain. DOC is 100% collateralized with Bitcoin, with a 1:1 USD peg guaranteed by the smart contract. Dollar on Chain is the ideal stablecoin for daily transactions and users seeking to hold current value without leaving the benefits of bitcoin.&lt;/p&gt;

&lt;p&gt;The DOC Token Smart Contract Address: 0xE700691Da7B9851F2F35f8b8182C69C53ccad9DB&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Self Contained in the Blockchain&lt;br&gt;
What makes DoC unique is that the collateral is in a Smart Contract inside the blockchain, this means you don't need to trust a third party controlling the collateral.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Perfect for Daily Transactions&lt;br&gt;
With third party non-custodial wallets you can instantly send and receive DoC with no protocol fees.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Personalized Wallet Storage&lt;br&gt;
Forget about giving up your private keys to a third party, DoC tokens are securely stored in your own wallet.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Benefits
&lt;/h4&gt;

&lt;p&gt;Users of the DOC tokens gain;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Best Collateral&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dollar On Chain doesn’t rely on fiat. All the collateral is bitcoin. The DoC's outstanding stability is guaranteed by the Smart Contract.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Buy or Mint&lt;br&gt;
You can buy DoCs on a secondary market, but the Smart Contract allows you to mint your own DoCs avoiding unnecessary extra costs such as the spread.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use for Daily Transactions&lt;br&gt;
DoC is fast, secure and it doesn't have any protocol fees. That's why there is a growing ecosystem around it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Where to Get DOC Tokens?
&lt;/h4&gt;

&lt;p&gt;You can get the DOC on  &lt;a href="https://alpha.moneyonchain.com/"&gt;Money On Chain Stablecoin Protocol&lt;/a&gt;  or read the  &lt;a href="https://wiki.moneyonchain.com/getting-started/what-do-i-need-to-know-first"&gt;Getting Started Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  RDOC
&lt;/h3&gt;

&lt;p&gt;The  &lt;a href="https://moneyonchain.com/doc-bitcoin-backed-stablecoin/"&gt;RIF Dollar on Chain&lt;/a&gt;  stablecoin, or RDOC for short, is one of the main assets on the RIF On Chain DeFi platform. RIF on Chain is powered by Money on chain, a stablecoin and leveraged token protocol, which runs on RSK smart contracts.&lt;/p&gt;

&lt;p&gt;RDOC is a stablecoin in the RSK ecosystem that's pegged 1:1 to the US Dollar and guaranteed by a smart contract. &lt;/p&gt;

&lt;p&gt;RDOC is a crypto-collateralized stablecoin that uses the RIF token as collateral. &lt;br&gt;
Unlike the majority of other DeFi protocol stablecoins where users are required to provide collateral or a collateralized debt position to borrow funds, like the competing Ether-backed decentralized stablecoin DAI, RDOC can be acquired by platform users directly by spending RIF, which is a unique feature that some users may prefer.&lt;/p&gt;

&lt;p&gt;The RSK Infrastructure Framework is creating the building blocks to construct a fully decentralized internet that enables decentralized sharing economies. &lt;/p&gt;

&lt;p&gt;An important distinction to keep in mind is that RBTC is the transactional token that facilitates operations on the RSK network, whereas the RIF Token allows any token holder to consume the services that are compatible with the RIF architecture.&lt;/p&gt;

&lt;p&gt;Avoid crypto volatility using RDOC for payments, daily transactions, holding your savings, and acquiring RIF Services like identity, storage or communications.&lt;/p&gt;

&lt;p&gt;RDOC smart contract token address:  &lt;a href="https://explorer.rsk.co/address/0x2d919f19d4892381d58edebeca66d5642cef1a1f"&gt;https://explorer.rsk.co/address/0x2d919f19d4892381d58edebeca66d5642cef1a1f &lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;
  
  
  How to Get RDOC?
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Buy RDOC using a Decentralized Exchange&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can buy RDOC tokens on a DEX, such as  &lt;a href="https://app.rskswap.com/swap"&gt;RSKSwap&lt;/a&gt;  or &lt;a href="https://tex.moneyonchain.com/"&gt;https://tex.moneyonchain.com/&lt;/a&gt;, and  &lt;a href="https://liquality.io/atomic-swap-dapp.html"&gt;Liquality Swap&lt;/a&gt; .&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minting RDOC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can mint the tokens yourself using RIF as collateral. To mint RDOC, you need to connect to the RIF On Chain Platform. You can access the RIF On Chain Platform at  &lt;a href="https://rif.moneyonchain.com"&gt;https://rif.moneyonchain.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Note, before you can interact with the ROC platform, you need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Set up an RSK network-compatible wallet like Nifty Wallet, Wallet Connect, Metamask, or Liquality&lt;/li&gt;
&lt;li&gt;Fund your wallet with RIF for minting, and RBTC to pay for gas fees. &lt;/li&gt;
&lt;li&gt;Mint RDOC through the MINT/REDEEM button on the Exchange section of the RIF On Chain Platform, and you'll need to set the ALLOWANCE regarding the amount of funds in the wallet that you authorize to spend on minting. Note, the platform charges a fee of 0.1% of the value in RIF.&lt;/li&gt;
&lt;li&gt;After you confirm the mint, your RDOC balance will be reflected within a few seconds and you have access to a USD pegged stablecoin on the RSK network&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  XUSD
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://babelfish.money/"&gt;BabelFish&lt;/a&gt;  is the cross-chain protocol that aggregates stablecoin liquidity from multiple issuers and chains into one single token: XUSD.&lt;/p&gt;

&lt;p&gt;XUSD is a USD-pegged stablecoin that acts as a decentralized aggregator and distributor of different stablecoins. XUSD can be exchanged and redeemed 1:1 with any of the underlying stablecoin tokens backing it using smart contracts.&lt;/p&gt;

&lt;p&gt;BabelFish acts as a decentralized bank that has branches on different chains, accepting and distributing USD-pegged stablecoins. In this way, it acts as a "trustless stablecoin translation device" for supported stablecoins on different networks.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why Use XUSD?
&lt;/h4&gt;

&lt;p&gt;XUSD is a unique stablecoin: by acting as a decentralized aggregator and distributor of different stablecoins, it offers three advantages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Reduces risk: Pooling liquidity from multiple networks reduces potential systemic risk across platforms and marketplaces if one stablecoin is compromised. Users of XUSD are also subject to less systemic risk because the Babelfish insurance fund is intended to provide a level of security beyond the assurances offered by its underlying stablecoins.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provides deeper liquidity: The advantage of this type of architecture is that it allows the fragmented liquidity pools formed by various stablecoins to join together as one larger and thus more liquid stablecoin pool. Deeper liquidity leads to lower slippage or failures in closing margin and lending positions. Deploying XUSD on top of the RSK network also attracts liquidity to the RSK ecosystem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provides flexibility: XUSD facilitates a 1:1 exchange between different stablecoins and networks. It allows users to easily bridge multiple stablecoins from RSK, Ethereum, &amp;amp; Binance Smart Chain networks to XUSD, and in reverse.  &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;XUSD currently serves the following use cases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;International remittances and payments&lt;/li&gt;
&lt;li&gt;Stable collateral in RSKs DeFi on Bitcoin ecosystem&lt;/li&gt;
&lt;li&gt;Open margin trades using XUSD or swap between XUSD and other tokens&lt;/li&gt;
&lt;li&gt;Lending to earn interest on XUSD, including the option to earn interest in RBTC and FISH tokens&lt;/li&gt;
&lt;li&gt;Use it to save as a non-volatile store of value&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Need help storing Stablecoins? Read  &lt;a href="https://developers.rsk.co/guides/stablecoin/how-to-store-stablecoins/"&gt;How to Store Stablecoins on RSK&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;How to Get XUSD?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On an Exchange&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Decentralized exchange like RSKSwap, TEX, or Sovryn Swap&lt;/li&gt;
&lt;li&gt;Use a swap app to exchange your crypto for XUSD, like Liquality Swap.&lt;/li&gt;
&lt;li&gt;Peer to peer through Defiant or another user like you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use a Bridge&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use a cross-chain bridge. The BabelFish Bridge allows easy and permissionless transfers of tokens from one chain to another through audited smart contracts. &lt;/p&gt;

&lt;p&gt;There are 3 networks included in the Cross-Chain Bridge: RSK, Ethereum, and Binance Smart Chain. You can use the BabelFish Bridge to cross funds in and out of RSK with the Ethereum and Binance Smart chains.&lt;br&gt;
The bridge allows users to transfer multiple stablecoins from Ethereum and BSC to RSK XUSD. The $XUSD tokens on RSK can be bridged into any of the supported stablecoins at a 1:1 ratio.&lt;/p&gt;

&lt;p&gt;XUSD smart contract token address:  &lt;a href="https://explorer.rsk.co/address/0xb5999795be0ebb5bab23144aa5fd6a02d080299f?__ctab=general"&gt;https://explorer.rsk.co/address/0xb5999795be0ebb5bab23144aa5fd6a02d080299f?__ctab=general&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Find out more in the  &lt;a href="https://developers.rsk.co/guides/stablecoin/stablecoin-on-bitcoin/"&gt;Stablecoins on Bitcoin&lt;/a&gt; .&lt;/p&gt;

&lt;h3&gt;
  
  
  RBRZ Tokens
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.brztoken.io/"&gt;RBRZ&lt;/a&gt;  is the first Brazilian stablecoin in circulation. 1:1 pegged to the Brazilian Real. It will allow Brazilians to directly ramp up investments in foreign exchanges and to trade a Brazilian Real (BRL) pegged stablecoin on a global scale. It will permit sending and receiving BRL backed tokens safely and instantly, for a fraction of the cost of any other alternative.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Stability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Price stability will be pursued by market agents based on the reserves held by the Reserve Managers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reserve&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Reserve Managers keep full reserves. BRZ Tokens are always fully backed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multichains&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The BRZ is built-up on top of Ethereum, Solana and Algorand blockchains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The BRZ Smart Contract is the public instrument used for issuing and burning tokens according to convertibility demands. Our crypto transactions are verified by Parsiq.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Transparency&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The issuance of new tokens and the underlying reserves will be audited by a reputable third-party firm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Global Acceptance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The BRZ Token can be traded on multiple platforms.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why Use BRZ?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Access to International Platforms&lt;/strong&gt;&lt;br&gt;
Brazilian users now can enter international crypto markets without immediate exposure to Bitcoin or any other volatile cryptocurrency.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enter the Brazillian Market&lt;/strong&gt;&lt;br&gt;
International exchanges and platforms will be able to enter the Brazilian market seamlessly. Acquire Brazilian customers with a frictionless solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Trading Opportunity&lt;/strong&gt;&lt;br&gt;
Users will be able to trade 24h / 7 days.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hedge&lt;/strong&gt;&lt;br&gt;
International investors with business in Brazil will have an easy alternative to hedge their holdings in Brazilian Reais.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Get RBRZ?
&lt;/h4&gt;

&lt;p&gt;To get BRZ, use the  &lt;a href="https://app.rskswap.com/swap"&gt;RSKSwap&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Ethereum-based Stablecoins
&lt;/h2&gt;

&lt;p&gt;The RSK ecosystem allows users an alternative way to transact with Ethereum-based stablecoins like USDT or DAI with much lower fees by converting them to stablecoins that move on the RSK network, including rUSDT, rDAI, and others.&lt;/p&gt;

&lt;p&gt;RBRZ Smart Contract Address:  &lt;a href="https://explorer.rsk.co/address/0xe355c280131dfaf18bf1c3648aee3c396db6b5fd"&gt;https://explorer.rsk.co/address/0xe355c280131dfaf18bf1c3648aee3c396db6b5fd&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  rUSDT
&lt;/h3&gt;

&lt;p&gt;rUSDT is the RSK token bridge "crossed token" counterpart to USDT, which is natively from ethereum.&lt;br&gt;
Tether USDT converts cash into digital currency, to anchor or tether the value to the price of national currencies like the US dollar, and the Euro.&lt;/p&gt;

&lt;p&gt;Tether token is also 1-to-1 pegged to the dollar, so 1 USDT Token is always valued by Tether at 1 USD.&lt;/p&gt;

&lt;p&gt;Read the Tether Whitepaper:  &lt;a href="https://tether.to/wp-content/uploads/2016/06/TetherWhitePaper.pdf"&gt;https://tether.to/wp-content/uploads/2016/06/TetherWhitePaper.pdf&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Ethereum/RSK Bridge that allows to move ERC20 tokens between one chain and the other. The bridge contracts are upgradeable, this enables a smoother move to a more decentralized bridge in the future.&lt;/p&gt;

&lt;p&gt;rUSDT smart contract token address:  &lt;a href="https://explorer.rsk.co/address/0xef213441a85df4d7acbdae0cf78004e1e486bb96"&gt;https://explorer.rsk.co/address/0xef213441a85df4d7acbdae0cf78004e1e486bb96&lt;/a&gt;  &lt;/p&gt;

&lt;h4&gt;
  
  
  How to Get rUSDT?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Using a Swap app;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To get rUSDT, use the RSKSwap&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the TokenBridge;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use the ‘Token Bridge DApp’ together with Nifty Wallet or Metamask to move tokens between networks.&lt;/p&gt;

&lt;p&gt;Follow the  &lt;a href="https://developers.rsk.co/tools/tokenbridge/dappguide/"&gt;Dapp guide &lt;/a&gt; for more details on how to use the token bridge.&lt;/p&gt;

&lt;p&gt;Find out  &lt;a href="https://developers.rsk.co/guides/stablecoin/how-to-get-stablecoins/"&gt;How to Get Stablecoins on RSK&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  rDAI
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.rsk.co/rdai/index.html"&gt;rDAI&lt;/a&gt;  is an alternative to convert Dai and pay much cheaper transaction costs, around 0.15c per transaction which is approximately 80 times cheaper than transacting DAI compared to doing it over the Ethereum network.&lt;/p&gt;

&lt;h4&gt;
  
  
  Why use rDAI?
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Boycott High Fees on Ethereum&lt;/strong&gt;&lt;br&gt;
Ethereum is experiencing extraordinarily high fees which make it impractical &amp;amp; expensive for most use cases.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to Get rDAI?
&lt;/h4&gt;

&lt;p&gt;Want to convert your DAI to rDAI?&lt;/p&gt;

&lt;p&gt;Cross DAI to rDAI using the  &lt;a href="https://youtu.be/RS-_HNRJx04"&gt;Defiant or Token Bridge&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Cross DAI to rDAI using  &lt;a href="https://youtu.be/p6IodhKzpkg"&gt;Kripton Market Swaps&lt;/a&gt;  on Defiant or follow the  &lt;a href="https://www.rsk.co/rdai/how-to-convert-dai-to-rdai-with-km#step-4"&gt;Step by Step Guide&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;rDAI smart contract token address:  &lt;a href="https://explorer.rsk.co/address/0x6b1a73d547f4009a26b8485b63d7015d248ad406"&gt;https://explorer.rsk.co/address/0x6b1a73d547f4009a26b8485b63d7015d248ad406&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;See more explanation in &lt;a href="https://developers.rsk.co/guides/stablecoin/how-to-use-rsk-tokenbridge/"&gt;Understanding Cross-Chains: How to use the RSK TokenBridge&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For a more detailed explanation about Stablecoins, the differences between stablecoins and other types of digital assets, stablecoins on Bitcoin, where to store them, how to cross stablecoins using the RSK Token Bridge, and how blockchains achieve interoperability via cross-chain bridges, check out &lt;a href="https://developers.rsk.co/guides/stablecoin/"&gt;The Complete Guide to Stablecoins&lt;/a&gt; on the RSK Developers Portal!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://developers.rsk.co/"&gt;RSK Developers Portal&lt;/a&gt; &lt;/li&gt;
&lt;li&gt; &lt;a href="https://explorer.rsk.co/"&gt;RSK Explorer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://youtu.be/JHzyQS1rc_s"&gt;What are Stablecoins?&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://developers.rsk.co/guides/stablecoin/"&gt;The Complete Guide to Stablecoins&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://app.rskswap.com/swap"&gt;RSKSwap&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://tokenbridge.rsk.co/"&gt;RSK Bridge with Ethereum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://developers.rsk.co/slack/"&gt;RSK Open Slack Community&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>bitcoin</category>
    </item>
    <item>
      <title>RSK Community Call, December 2021 - Summary</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Mon, 20 Dec 2021 14:09:57 +0000</pubDate>
      <link>https://dev.to/owans/rsk-community-call-december-2021-summary-5bp5</link>
      <guid>https://dev.to/owans/rsk-community-call-december-2021-summary-5bp5</guid>
      <description>&lt;p&gt;&lt;em&gt;About the next hard fork HOP &amp;amp; RSKj Iris v3.2.0, Simplified Emergency Time-locks Refresh, Bridge peg-out Batching.&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;On 16th December 2021, The RSK Ecosystem held its fifth community call. The aim of these community calls is to discuss the &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals - RSKIPs&lt;/a&gt;, get the community involved, gather feedback, discuss the RSK consensus protocol, the formal process for proposing improvements, and the upcoming network upgrades. For more info, read the &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP0.md"&gt;RSKIP Purpose and Guidelines.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;It was live-streamed on several platforms, thanks to everyone who joined the Livestream! For those of you who missed out on attending it live, visit the links below;&lt;/p&gt;

&lt;p&gt;🎥 Watch the &lt;a href="https://youtu.be/vWVbaYMaL6Y"&gt;RSK Community Call December 2021&lt;/a&gt; on Youtube (Replay).&lt;/p&gt;

&lt;p&gt;🗣️ Propose your own &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSKIPs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 Join the &lt;a href="https://research.rsk.dev"&gt;RSK Research &amp;amp; Innovation Forum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🗣️ &lt;a href="https://research.rsk.dev/t/community-call-january-february-2022/258"&gt;Suggest RSKIPs to discuss&lt;/a&gt; in the next community call&lt;/p&gt;

&lt;p&gt;🔗Join our &lt;a href="https://developers.rsk.co/slack/"&gt;Open Slack Community&lt;/a&gt; and ask your questions in #research-and-innovation.&lt;/p&gt;

&lt;p&gt;The speakers on this call were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adrian Eidelman&lt;/li&gt;
&lt;li&gt;Sergio Demian Lerner&lt;/li&gt;
&lt;li&gt;Marcos Irisarri&lt;/li&gt;
&lt;li&gt;Brendan Graetz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;In this call, we discussed:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/rskj/milestone/27?closed=1"&gt;RSKj IRIS v3.2.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP291.md"&gt;The next hard fork: HOP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP264.md"&gt;RSKIP 264 - Simplified Emergency Time-locks Refresh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP271.md"&gt;RSKIP 271 - Bridge peg-out Batching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The RSKj IRIS v3.2.0
&lt;/h2&gt;

&lt;p&gt;Adrian Eidelman gave brief updates on the next release of RSKj. He said the IRIS v3.2.0 will happen in early January 2022. The new version will contain several improvements to the JSON-RPC interface (e.g, the &lt;code&gt;pending&lt;/code&gt; argument for &lt;code&gt;getBlockByNumber&lt;/code&gt;), improved gas estimation, support for new methods specifically support for new arguments that were not supported in already existing methods for. Also, there will be various performance improvements.&lt;/p&gt;

&lt;p&gt;He pointed out that all these changes are non-consensus changes, so this release is not a mandatory upgrade for RSK Mainnet. There are improvements being made to adjust the minimum difficulty for users and developers working on RSK Testnet. This does constitute a consensus change &lt;strong&gt;only&lt;/strong&gt; for the RSK Testnet. Thus v3.2.0 of RSKj will be a mandatory upgrade for RSK Testnet. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See related links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/rskj/tree/IRIS-3.2.0-rc"&gt;Release candidate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsksmart/rskj/milestone/27?closed=1"&gt;Included PRs&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The next hardfork: HOP
&lt;/h2&gt;

&lt;p&gt;Adrian Eidelman also talked about the next hardfork named HOP, though the date for this hardfork has not been set yet, he said this is open for discussion, and anyone can post their proposals to be discussed and included in the next hardfork via the &lt;a href="https://research.rsk.dev/t/rskip-291-network-upgrade-hop-initial-proposal/257"&gt;RSKIP 291: Network Upgrade HOP Initial Proposal&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;He said two improvements were proposed which are Peg-out Batching and Simplified Emergency Time-locks Refresh. Read more about these proposals in &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP291.md"&gt;Network Upgrade RSKIP&lt;/a&gt;. These same proposals were subsequently discussed in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Simplified Emergency Time-locks Refresh
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--13I01GbP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6p0fgkg7pd0o1d4ll76w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--13I01GbP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6p0fgkg7pd0o1d4ll76w.png" alt="Simplified Emergency Time-locks Refresh" width="880" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sergio Lerner talked about the Simplified Emergency Time-locks Refresh, he started with a brief recap of the history of what is now the RSK PowPeg, the potential problems with the PowHSM and the solutions introduced by &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP201.md"&gt;RSKIP-201&lt;/a&gt;. He talked about the activation of the emergency multisig and that it has been ready since the IRIS network upgrade proposed in Jan, 2021 and activated in Aug, 2021 but it only activates after the first change in the powpeg members and that we have delayed activation because there was no automatic method to refresh the UTXOs (only manual refresh) and that the RSKIP-264 (Simplified Emergency Time-locks Refresh) proposes such a method. The Emergency multisig will be activated with a PowPeg renewal immediately after &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP264.md"&gt;RSKIP-264&lt;/a&gt; is activated.&lt;/p&gt;

&lt;p&gt;He highlighted the features of RSKIP-264:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checks all UTXOs for timelock expiration every 2 weeks&lt;/li&gt;
&lt;li&gt;Renews the time-locks 6 months prior to the expiration&lt;/li&gt;
&lt;li&gt;Compete renewal of all UTXOs every 6months&lt;/li&gt;
&lt;li&gt;Low expected average load&lt;/li&gt;
&lt;li&gt;Best efficiency if RSKIP-270 (Bridge UTXO set size management) is activated&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See related links;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP270.md"&gt;RSKIP 270 - Bridge UTXO set size management&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  RSKIP 271 - Bridge peg-out Batching
&lt;/h2&gt;

&lt;p&gt;Marcos Irisarri talked about the bridge peg-out batching. He said the idea is to reduce the cost for users when performing peg-out transactions while maintaining security of the peg.&lt;/p&gt;

&lt;p&gt;He talked about the current peg-out process;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;RSK user sends &lt;em&gt;n&lt;/em&gt; RBTC to the Bridge contract address&lt;/li&gt;
&lt;li&gt;Bridge smart contract creates a BTC transaction sending &lt;em&gt;n&lt;/em&gt; BTC to the user’s derived BTC address&lt;/li&gt;
&lt;li&gt;Wait 4000 RSK blocks confirmations (33 hours approx) then the PowHSM signs the transaction&lt;/li&gt;
&lt;li&gt;User receives the amount sent to the Bridge minus the BTC transaction fees&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The proposal is to;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Each time a user sends RBTC to the Bridge, the peg-out request is added to a queue&lt;/li&gt;
&lt;li&gt;Every 360 RSK blocks (approximately 3 hours) the Bridge creates one BTC transaction with an output for each of the peg-out requests in the queue&lt;/li&gt;
&lt;li&gt;Wait 4000 RSK blocks confirmations (33 hours approx) then the PowHSM signs the transaction&lt;/li&gt;
&lt;li&gt;Each user receives the amount sent to the Bridge minus a fraction of the BTC transaction fees&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;He also highlighted the pros of the bridge peg-out batching, which includes less fees to be paid by users (total fee is divided among all the users receiving funds), and the pros involved. These include additional waiting time for the user to receive the funds (9% increase). This time has the potential to be reduced to 16 hours approximately in a following network upgrade.&lt;/p&gt;

&lt;p&gt;See related links;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP271.md"&gt;RSKIP 271 - Bridge peg-out Batching&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decisions
&lt;/h2&gt;

&lt;p&gt;No decisions were made during the December Community Call.&lt;/p&gt;

&lt;p&gt;However, there was a short debate about RSKIP-271:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brendan raised the question about whether both RSKIP-271 and the RSKIP that would halve the waiting time could be both included in HOP, or whether the latter needed to be in a separate network upgrade.&lt;/li&gt;
&lt;li&gt;Sergio raised the question about whether RSKIP-271 could be implemented without necessitating a network upgrade in the first place, by avoiding consensus changes.&lt;/li&gt;
&lt;li&gt;These questions were not resolved during the call, and thus
&lt;a href="https://research.rsk.dev/t/rskip-271-bridge-peg-out-batching/262?u=bguiz"&gt;the discussion continues in the RSK Research forums&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;For more details on these, please watch the &lt;a href="https://youtu.be/vWVbaYMaL6Y"&gt;recording on Youtube&lt;/a&gt;.&lt;br&gt;
Want to champion an RSKIP? Missed the previous RSK Community Call? Watch the &lt;a href="https://youtu.be/mdCinpZ7Qcg"&gt;recording on Youtube&lt;/a&gt;. Also, leave a comment on &lt;a href="https://research.rsk.dev/t/community-call-january-february-2022/258"&gt;this thread for the next community call&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/Cl1NWsJrFmI"&gt;RSK Community Call May, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/H15kZD15oSg"&gt;RSK Community Call, July, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;RSK Community Call, August 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/mdCinpZ7Qcg"&gt;RSK Community Call, October 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/community-call-january-february-2022/258"&gt;Discussion for next RSK Community Call&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals Repository&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/"&gt;RSK Discourse Forum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Developer Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Community Slack&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>rsk</category>
      <category>bitcoin</category>
      <category>programming</category>
    </item>
    <item>
      <title>RSK Community Call - October 2021 Summary</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Mon, 08 Nov 2021 12:52:29 +0000</pubDate>
      <link>https://dev.to/owans/rsk-community-call-october-2021-summary-4fl2</link>
      <guid>https://dev.to/owans/rsk-community-call-october-2021-summary-4fl2</guid>
      <description>&lt;p&gt;&lt;em&gt;About RSKj v3.1.0, Aggregation &amp;amp; parallel transaction processing, and Rollup-optimized Ephemeral Call data.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;On 29th October 2021, The RSK Ecosystem held its fourth community call. The aim of these community calls is to discuss the &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals - RSKIPs&lt;/a&gt;, get the community involved, gather feedback, discuss the RSK consensus protocol, the formal process for proposing improvements, and the upcoming network upgrades. For more info, read the &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP0.md"&gt;RSKIP Purpose and Guidelines.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;It was live-streamed on several platforms, thanks to everyone who joined the Livestream! For those of you who missed out on attending it live, visit the links below;&lt;/p&gt;

&lt;p&gt;🎥 Watch the &lt;a href="https://youtu.be/mdCinpZ7Qcg"&gt;RSK Community Call October 2021&lt;/a&gt; on Youtube (Replay).&lt;/p&gt;

&lt;p&gt;🗣️ Propose your own &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSKIPs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 Join the &lt;a href="https://research.rsk.dev"&gt;RSK Research &amp;amp; Innovation Forum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🗣️ &lt;a href="https://research.rsk.dev/t/community-call-july-august-2021/204/2"&gt;Suggest RSKIPs to discuss&lt;/a&gt; in the next community call&lt;/p&gt;

&lt;p&gt;🔗Join our &lt;a href="https://developers.rsk.co/slack/"&gt;Open Slack Community&lt;/a&gt; and ask your questions in #research-and-innovation.&lt;/p&gt;

&lt;p&gt;The speakers on this call were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Diego Masini&lt;/li&gt;
&lt;li&gt;Adrian Eidelman&lt;/li&gt;
&lt;li&gt;Sergio Demian Lerner&lt;/li&gt;
&lt;li&gt;Brendan Graetz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this call, we discussed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;a href="https://github.com/rsksmart/rskj/releases/tag/IRIS-3.1.0"&gt;The recent RSKj v3.1.0 release&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Aggregation: fast and cost-effective peer-to-peer payments&lt;/li&gt;
&lt;li&gt;Parallel transaction processing: block processing as fast as possible &lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP281.md"&gt;RSKIP-281: Rollup-optimized Ephemeral Calldata&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The RSKj v3.1.0 Release
&lt;/h3&gt;

&lt;p&gt;Adrian Eidelman talked about the release of RSKj v3.1.0. He said this release contains several enhancements in JSON-RPC interface, Ethereum compatibility fixes and node performance improvements, among other things. Also, some of the improvements introduced in this release came from community contributions made within the past &lt;a href="https://gitcoin.co/hackathon/rsk-hack/"&gt;RSK Hackathon: Building the Future On Bitcoin&lt;/a&gt; on the Gitcoin platform.&lt;/p&gt;

&lt;p&gt;This release is a non-mandatory upgrade, however, you should consider updating to benefit from the enhancements and new features.&lt;/p&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;See more details about the &lt;a href="https://github.com/rsksmart/rskj/milestone/25"&gt;RSKj v3.1.0 release milestone&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/rskj/releases/tag/IRIS-3.0.1https://github.com/rsksmart/rskj/releases/tag/IRIS-3.0.1"&gt;Releases page&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Aggregation: fast and cost-effective peer-to-peer payments
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vmmV0SIn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59susg4w663v81isz476.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vmmV0SIn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59susg4w663v81isz476.jpg" alt="Deposit Accepted" width="269" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego Masini spoke about the work done on Aggregation, which is a fast and Cost-effective payment system. He said it is a layer 2 scalability solution for RSK and its main goal is to process transactions off-chain, bundle them in batches and post a validity proof for these batches to the blockchain. This solution ensures that the layer 2 transactions are secured by the blockchain and we can transact much faster. He mentioned two potential approaches to this solution which includes; optimistic rollups and Zero-Knowledge (ZK) rollups, he said the method of verification between these two approaches is the key distinction.&lt;/p&gt;

&lt;h3&gt;
  
  
  Parallel transaction processing: block processing as fast as possible
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KH6ZFplZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8tht3xv23vxb318mbh2i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KH6ZFplZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8tht3xv23vxb318mbh2i.jpg" alt="Multithreading" width="880" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego Masini also spoke about the ongoing work on parallel transaction processing, which enables processing a block as fast as possible. This enables transactions to be split into different partitions, and each partition could be executed in parallel. The main goal of this approach is to process as many transactions per block as possible and also reduce synchronization time.&lt;/p&gt;

&lt;h3&gt;
  
  
  RSKIP-281: Rollup-optimized Ephemeral Call data
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lJc_uKvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7de9j49mi0axx5zkhkyf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lJc_uKvN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7de9j49mi0axx5zkhkyf.jpg" alt="Ephemeral Call Data Banner" width="880" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP281.md"&gt;RSKIP-281&lt;/a&gt; is an improvement over RSKIP214 and RSKIP28. It enables sending data to contracts called ephemeral data and enables the disposal of this data at a later block.&lt;/p&gt;

&lt;p&gt;Sergio Lerner introduced the RSKIP-281. He noted that this research began in 2016 and it is about the optimization of the RSK blockchain to better serve as a data availability layer for rollups. He said this proposal is very efficient and can provide gas savings for rollups such as Aggregation. An ephemeral call data, is similar to the call data, but gets a discount in gas costs because it is only temporarily available for smart contracts to query. The use cases for this kind of data is;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data to be challenged over a period (optimistic computations)&lt;/li&gt;
&lt;li&gt;Immediate availability of datasets that accept a later compression&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both occur in Zero Knowledge (ZK) and Optimistic Rollups&lt;/p&gt;

&lt;p&gt;He mentioned two flavours of this type of data; &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Remove by Default (initially cheap, pay more to preserve data)&lt;/li&gt;
&lt;li&gt;Keep by Default (initially expensive, with reimbursement on data removal)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;He said there are many advantages of using rollups; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SoOOa7sB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndffa3hliio238kk1okl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SoOOa7sB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ndffa3hliio238kk1okl.jpg" alt="Motivation Rollups" width="880" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This includes freedom to experiment, inheriting layer 1 security, the ability to create governance tokens, etc, this allows for easy collaboration and integration of different needs. &lt;/p&gt;

&lt;p&gt;He compared the gas costs of transferring tokens for several existent rollups, such as Arbitrum ZK-Sync, Fuel, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9i7aGa4u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a9ckqho995lraeqgye41.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9i7aGa4u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a9ckqho995lraeqgye41.jpg" alt="How Ephemeral Call Data Works" width="880" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He explained how the Ephemeral Call Data is implemented by creating a new field in an RSK transaction. He said this field contains other fields and that instead of the ephemeral call data (ecd) being hashed into the transaction, it is being double-hashed. This double hash gives the opportunity to remove the original data without changing the transaction ID. He explained other fields like the &lt;code&gt;ecdSize&lt;/code&gt;, &lt;code&gt;ecdHash&lt;/code&gt;, &lt;code&gt;hasherContractAddress&lt;/code&gt;, &lt;code&gt;hasherCallGasConsumed&lt;/code&gt;, etc as captured in the image above.&lt;/p&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP281.md"&gt;RSKIP-281&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Discuss &lt;a href="https://research.rsk.dev/t/ephemeral-calldata-rskip281/241"&gt;RSKIP-281 for Ephemeral Call Data&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;He summarized his talk by saying, the ephemeral Calldata reduces the cost of Rollups realistically (compared with the unrealistic reduction in the case of Ethereum), it can be removed by default, or kept by default. It also requires changes on several parts of a consensus protocol, and it competes with other RSKIPs, such as RSKIP-215 (Ephemeral Blockchain).&lt;/p&gt;

&lt;h2&gt;
  
  
  Decisions
&lt;/h2&gt;

&lt;p&gt;No decisions were made during the October Community Call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;For more details on these, please watch the &lt;a href="https://youtu.be/mdCinpZ7Qcg"&gt;recording on Youtube.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to champion an RSKIP? Missed the previous RSK Community Call? Watch the &lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;recording on Youtube&lt;/a&gt;. Also, leave a comment on &lt;a href="https://research.rsk.dev/t/community-call-november-december-2021/245"&gt;this thread for the next community call&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/Cl1NWsJrFmI"&gt;RSK Community Call May, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/H15kZD15oSg"&gt;RSK Community Call, July, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;RSK Community Call, August 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/community-call-november-december-2021/245"&gt;Discussion for next RSK Community Call&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals Repository&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/"&gt;RSK Discourse Forum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Developer Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Community Slack&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>rsk</category>
      <category>blockchain</category>
      <category>bitcoin</category>
    </item>
    <item>
      <title>Fungible Token Standards</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Fri, 24 Sep 2021 12:16:10 +0000</pubDate>
      <link>https://dev.to/owans/fungible-token-standards-407p</link>
      <guid>https://dev.to/owans/fungible-token-standards-407p</guid>
      <description>&lt;h2&gt;
  
  
  ERCs vs EIPs vs RSKIPs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://docs.ethhub.io/built-on-ethereum/erc-token-standards/what-are-erc-tokens/"&gt;Ethereum Requests for Comment (ERCs)&lt;/a&gt;,&lt;br&gt;
and &lt;a href="https://eips.ethereum.org/erc"&gt;Ethereum Improvement Proposals (EIPs)&lt;/a&gt;&lt;br&gt;
refer to the same thing - they were originally called ERCs,&lt;br&gt;
and then subsequently renamed to EIPs.&lt;br&gt;
These are all focused on improvements to Ethereum.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals (RSKIPs)&lt;/a&gt; use a similar process to improve RSK.&lt;/p&gt;

&lt;p&gt;A small subset of EIPs, albeit an extremely popular subset, &lt;br&gt;
are tokens standards, which have to do with smart contracts,&lt;br&gt;
and do not have much to do with the Ethereum nodes.&lt;br&gt;
Instead, they focus on the Solidity smart contract implementations&lt;br&gt;
with the intent to standardise the ways in which tokens get implemented.&lt;/p&gt;
&lt;h2&gt;
  
  
  Ethereum Token Standards work on RSK
&lt;/h2&gt;

&lt;p&gt;Since the RSK Virtual Machine (RSKVM) is compatible with&lt;br&gt;
the Ethereum Virtual Machine (EVM) at the op-code level,&lt;br&gt;
smart contracts that are compiled to target the EVM&lt;br&gt;
can be executed in exactly the same way on the RSKVM.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: Some differences exist, most notably to do with how gas&lt;br&gt;
costs are calculated, both in terms of the schedule per op-code,&lt;br&gt;
as well as the calculation methodology.&lt;br&gt;
At the time of writing, like-for-like smart contract function invocations&lt;br&gt;
cost 2% to 2.5% on RSK compared to Ethereum.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Owing to this level of compatibility,&lt;br&gt;
the same smart contracts standards that work on Ethereum&lt;br&gt;
also work on RSK - there is no need to create "mirror RSKIPs"&lt;br&gt;
that are the equivalent of EIPs for token standards,&lt;br&gt;
since they will be virtually identical.&lt;/p&gt;
&lt;h2&gt;
  
  
  Fungible Tokens
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;address -&amp;gt; amount
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;At their core, fungible tokens are smart contracts which store&lt;br&gt;
a mapping of addresses to amounts.&lt;br&gt;
This is used to represent an understanding that each particular address&lt;br&gt;
is the owner of a particular amount of tokens.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;transfer(...)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These smart contracts will also have a &lt;code&gt;transfer&lt;/code&gt; function,&lt;br&gt;
that allows them to transfer the tokens held in one address to another address.&lt;/p&gt;

&lt;p&gt;Of course, there is a lot more to fungible tokens than the above,&lt;br&gt;
the above is merely a rudimentary illustration.&lt;/p&gt;
&lt;h2&gt;
  
  
  ERC20
&lt;/h2&gt;

&lt;p&gt;The ERC20, or EIP20, token standard is the most well-known&lt;br&gt;
among all fungible tokens standards.&lt;br&gt;
In fact, it was so popular, that at some point 3 in 4 smart contracts on the Ethereum blockchain implemented this standard.&lt;br&gt;
To this day, it remains a dominant force,&lt;br&gt;
and in fact the term "ERC20" is almost synonymous with the term "fungible token".&lt;/p&gt;

&lt;p&gt;The above is also true on the RSK network,&lt;br&gt;
virtually all fungible tokens implement this particular token standard.&lt;/p&gt;

&lt;p&gt;Its continued relevance stems from the fact that whenever&lt;br&gt;
a new fungible token standard comes out,&lt;br&gt;
the most critical factor to enable adoption is to be "ERC20 compatible".&lt;br&gt;
This means that new fungible tokens standards implement&lt;br&gt;
the interface specified by the ERC20 token standard,&lt;br&gt;
and then add their own additional functions on top of it.&lt;/p&gt;
&lt;h2&gt;
  
  
  ERC677
&lt;/h2&gt;

&lt;p&gt;The ERC677 token standard is also a fungible token standard,&lt;br&gt;
and it extends the ERC20 token standard.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;transferAndCall(...)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key addition is the &lt;code&gt;transferAndCall&lt;/code&gt;  function,&lt;br&gt;
which allows the user to combine&lt;br&gt;
a &lt;code&gt;transfer&lt;/code&gt; function invocation on the fungible token smart contract&lt;br&gt;
with another function invocation of their choice on a different smart contract.&lt;br&gt;
This allows the user to accomplish both operations in a single transaction&lt;br&gt;
submitted to the blockchain network.&lt;/p&gt;

&lt;p&gt;On the RSK network, the LINK token from Chainlink,&lt;br&gt;
and the RIF token from RSK, both implement this standard.&lt;/p&gt;

&lt;h2&gt;
  
  
  More standards
&lt;/h2&gt;

&lt;p&gt;There are many other smart contract standards&lt;br&gt;
used to build fungible tokens, including ERC223, ERC777, and ERC1363.&lt;br&gt;
These all happen to be backwards compatible with ERC20 standard,&lt;br&gt;
however have not seen much by way of widespread adoption yet.&lt;/p&gt;

&lt;p&gt;Thanks to &lt;a href="https://www.linkedin.com/in/brendangraetz/"&gt;Brendan Graetz&lt;/a&gt; for writing this article!&lt;/p&gt;

</description>
      <category>rsk</category>
      <category>ethereum</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Decentralised Wallets-DeFi Gateways</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Thu, 23 Sep 2021 01:22:56 +0000</pubDate>
      <link>https://dev.to/owans/decentralised-wallets-defi-gateways-563a</link>
      <guid>https://dev.to/owans/decentralised-wallets-defi-gateways-563a</guid>
      <description>&lt;p&gt;&lt;strong&gt;Decentralised Finance (DeFi)&lt;/strong&gt; has been a hot topic for a number of years and continues to draw attention, resources and innovation from all corners of the world. This article aims to give information to those who are interested in delving deeper into accessing this exciting universe of decentralised applications, where bunnies with pancakes on their heads and unicorns come with the territory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decentralised wallets&lt;/strong&gt;, also labelled as &lt;strong&gt;DeFi wallets&lt;/strong&gt;, are the gateways into these vast ecosystems of &lt;strong&gt;decentralised applications&lt;/strong&gt; otherwise known as &lt;strong&gt;dApps&lt;/strong&gt;. As a basis, a wallet is a service that enables a user to store their digital assets and is available under two structures: centralised and decentralised.&lt;/p&gt;

&lt;h2&gt;
  
  
  Centralised and decentralised wallets
&lt;/h2&gt;

&lt;p&gt;Most of us are familiar with a centralised authority acting as the custodian (or keeper) of our assets, this holds true in the traditional markets (for example, banks) and with digital assets with the most common being centralised exchanges like Coinbase, Binance, Bitstamp and so on. In fact, &lt;strong&gt;centralised exchanges&lt;/strong&gt; are a &lt;strong&gt;starting point&lt;/strong&gt; for many to move funds from fiat to crypto and then make their way into the DeFi ecosystem.&lt;/p&gt;

&lt;p&gt;With decentralised wallets, the user &lt;strong&gt;self-custodies&lt;/strong&gt; the funds keeping full ownership, responsibility and control of the funds within. These typically come in the form of &lt;strong&gt;software wallets&lt;/strong&gt; — as browser extension and/or application download — and as a &lt;strong&gt;physical hardware&lt;/strong&gt; device. This article is primarily focused on software wallets which are the most commonly used wallet to connect to dApps and I discuss how hardware wallets can be used with software wallets to exponentially enhance security.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Centralised Wallets&lt;/th&gt;
&lt;th&gt;Decentralised Wallets&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Control&lt;/td&gt;
&lt;td&gt;Centralised entities have an immense amount of control over a user's account and could perform an action such as locking access to it. Importantly, you do not own your private keys (more on private keys and seed phrases later).&lt;/td&gt;
&lt;td&gt;With self-custody comes the complete control over your funds and ownership of your private keys.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Security&lt;/td&gt;
&lt;td&gt;Vulnerable to hacks and as we see more money flow into this space, there will be greater motivation for malicious actors to focus on vulnerable points of entry to gain access to users’ funds. Although the risk remains, security procedures are continually evolving and the most trusted exchanges strive to be ahead of the security curve.&lt;/td&gt;
&lt;td&gt;Exploits typically occur by gaining access to your password or seed phrase by hacking your computer or through social engineering.Never give anyone your password or seed phrase, and store them offline (preferred) or through a trusted password keeper. To enhance security, use a hardware wallet in conjunction with your software wallet (I’ll explain this further).&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Convenience&lt;/td&gt;
&lt;td&gt;Should you forget your password, the entity can help you recover it via some form of authentication.&lt;/td&gt;
&lt;td&gt;Should you forget your password and misplace your seed phrase, your funds are unrecoverable.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Features&lt;/td&gt;
&lt;td&gt;Most users will use a crypto exchange to store their funds (fiat and blockchain assets) which opens up the features we are accustomed to from exchanges such as trading - in the spot and margin markets - across order types. Depending on the exchange, additional features like lending, staking and prediction pools may also be available.&lt;/td&gt;
&lt;td&gt;Does not hold fiat but stores blockchain assets which include stablecoins. Although there is constant innovation, the main feature is their ability to connect to dApps, which opens up the true power of DeFi.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regulations&lt;/td&gt;
&lt;td&gt;Entities are becoming increasingly regulated and new laws/regulations will continue to impact their operations and therefore, their users.&lt;/td&gt;
&lt;td&gt;There is mention of regulation which is largely focused on the dApps, however, no noteworthy news has been released which would impact users to date on decentralised wallets.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;KYC (Know your customer)&lt;/td&gt;
&lt;td&gt;Must follow KYC procedures (typically proof of identity and address) to ensure compliance in the jurisdictions they have operations in.&lt;/td&gt;
&lt;td&gt;No KYC required.&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Examples&lt;/td&gt;
&lt;td&gt;Centralised Exchanges: Coinbase, Binance, Bitsamp, Luno&lt;/td&gt;
&lt;td&gt;Software wallets Browser Extension: Metamask, Trust Wallet, Liquality App Download: Metamask, Edge, Eidoo, Argent Hardware wallets: Trezor, Ledger, D’CENT&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Passwords and seed phrases / private keys
&lt;/h2&gt;

&lt;p&gt;As mentioned, should you forget your password, there is no entity to interact with in order to recover it. The user needs to store their password and seed phrase preferably offline. A &lt;strong&gt;seed phrase&lt;/strong&gt; (also called a &lt;strong&gt;recovery phrase&lt;/strong&gt;) is your encrypted private key that are typically represented as a string of words that &lt;strong&gt;you can input&lt;/strong&gt; should you forget your password and/or lose access to your wallet. &lt;strong&gt;Losing your seed phrase will result in your funds being unrecoverable&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;To understand these concepts better, this article by &lt;a href="https://lykke.com/about/blog/2018-12-how-public-and-private-keys-work"&gt;lykke.com&lt;/a&gt; does a brilliant job of explaining it by using your home as an analogy.&lt;/p&gt;

&lt;p&gt;For optimal security, there is a recommended approach that utilises a &lt;strong&gt;hardware wallet&lt;/strong&gt; to store your private key offline. &lt;strong&gt;Many software wallets&lt;/strong&gt;, for example &lt;a href="https://metamask.io/"&gt;Metamask&lt;/a&gt; — the most widely used decentralised wallet — offer integration with hardware wallets like &lt;a href="https://trezor.io/"&gt;Trezor&lt;/a&gt; and &lt;a href="https://www.ledger.com/"&gt;Ledger&lt;/a&gt;, ensuring &lt;strong&gt;maximal security&lt;/strong&gt; with the &lt;strong&gt;flexibility&lt;/strong&gt; of transacting on decentralised applications. With this integration, every time the user needs to transact on an application, they will require their connected hardware wallet to approve the transaction, which requires a physical touch sequence on the hardware wallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6mFC9J2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wakyjysbgni8f20xqcpy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6mFC9J2j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wakyjysbgni8f20xqcpy.jpeg" alt="Photo Cred: Saish Menon"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The key takeaway is that &lt;strong&gt;decentralised wallets are the gateways&lt;/strong&gt; into interacting with decentralised applications across the blockchain spectrum. This is where the power really tilts in the favour of users who choose to self custody their funds.&lt;/p&gt;

&lt;p&gt;Some applications that are worthy of mention are &lt;a href="https://aave.com/"&gt;Aave&lt;/a&gt; and &lt;a href="https://compound.finance/"&gt;Compound&lt;/a&gt;, who are in the business of lending/borrowing, as well as &lt;a href="https://uniswap.org/"&gt;Uniswap&lt;/a&gt;, &lt;a href="https://www.sovryn.app/"&gt;Sovryn&lt;/a&gt; and &lt;a href="https://pancakeswap.finance/"&gt;Pancakeswap&lt;/a&gt;, who are primarily focused as decentralised exchanges (DEXs) — where you can swap between a vast array of crypto currencies and stablecoins.&lt;/p&gt;

&lt;p&gt;The examples above are just the &lt;strong&gt;tip of the proverbial iceberg&lt;/strong&gt;[1] as there are a myriad of decentralised applications which span a host of blockchains (blockchains like &lt;a href="https://ethereum.org/en/"&gt;Ethereum&lt;/a&gt;, &lt;a href="https://www.binance.org/en"&gt;Binance Smart Chain&lt;/a&gt;, &lt;a href="https://www.rsk.co/rsk-blockchain/"&gt;RSK&lt;/a&gt; and &lt;a href="https://solana.com/"&gt;Solana&lt;/a&gt; to name a few) and the user can connect to them through their decentralised wallet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What software wallet is best for me?
&lt;/h2&gt;

&lt;p&gt;After reading this article you may have questions regarding what is the best software wallet for you to use as there are a number of options. Remembering that software wallets cover browser extensions and/or application download. In order to keep the focus, I’ll dedicate a separate post to wallet options as it is heavily &lt;strong&gt;dependent on a number of factors&lt;/strong&gt;, one of which is which blockchain you are looking to interact with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to go from here?
&lt;/h2&gt;

&lt;p&gt;Software wallets have been evolving their value proposition with one example being &lt;a href="https://liquality.io/"&gt;Liquality&lt;/a&gt;, where one can store their favourite digital assets and perform an &lt;strong&gt;atomic swap&lt;/strong&gt; (peer-to-peer cross blockchain exchange of one cryptocurrency for another without trusted third parties). This is powerful as one can &lt;strong&gt;exchange a cryptocurrency on one blockchain&lt;/strong&gt; for example ETH (on the Ethereum blockchain) &lt;strong&gt;to a completely different asset&lt;/strong&gt; for example RBTC (the Bitcoin pegged native currency on the RSK blockchain). This is a fantastic use case for anyone looking to move their funds to a different blockchain so they can then interact with those new and exciting dApps!&lt;/p&gt;

&lt;p&gt;This post is not to say that decentralised wallets are better than the centralised equivalents. Both structures can (and do) &lt;strong&gt;co-exist&lt;/strong&gt; and provide access to services in differing ways. The goal of this post is to give insight into the &lt;strong&gt;growing DeFi ecosystem&lt;/strong&gt; which, as of writing, sits at $120 billion dollars in market capitalisation with decentralised wallets being the entry point.&lt;/p&gt;

&lt;p&gt;Have you been impressed by any wallets, be it software or hardware?&lt;/p&gt;

&lt;p&gt;Leave a comment or reach out to discuss!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Footnotes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;[1] Be careful out there. Although the innovation is astonishing, hacks are frequent in this space and not all dApps are considered ‘safe’.&lt;/p&gt;

&lt;p&gt;Legal disclaimer: The post above does not constitute financial advice. It is very important to do your own analysis/research before making any investment and base this on your own personal circumstances.&lt;/p&gt;




&lt;p&gt;Article originally written and published on Medium by &lt;a href="https://www.linkedin.com/in/michaelmendes7/"&gt;Michael Mendez&lt;/a&gt;&lt;/p&gt;

</description>
      <category>wallets</category>
      <category>defi</category>
    </item>
    <item>
      <title>RSK Community Call - August 2021 Summary</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Thu, 02 Sep 2021 09:05:48 +0000</pubDate>
      <link>https://dev.to/owans/rsk-community-call-august-2021-summary-43ei</link>
      <guid>https://dev.to/owans/rsk-community-call-august-2021-summary-43ei</guid>
      <description>&lt;p&gt;_About expanding the emergency multi-sig, peg-out tx fee-bumping, time-lock refresh, bridge UTXOs selection, consolidation, and batching.&lt;/p&gt;

&lt;p&gt;On 19th August 2021, The RSK Ecosystem held its third community call. The aim of these community calls is to discuss the &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals - RSKIPs&lt;/a&gt;, get the community involved, gather feedback, discuss the RSK consensus protocol, the formal process for proposing improvements, and the upcoming network upgrades. For more info, read the &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP0.md"&gt;RSKIP Purpose and Guidelines.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;https://youtu.be/lZ0Y4VHvR4Q&lt;/a&gt;   &lt;/p&gt;

&lt;p&gt;It was live-streamed on several platforms, thanks to everyone who joined the Livestream! For those of you who missed out on attending it live, visit the links below;  &lt;/p&gt;

&lt;p&gt;🎥 Watch the &lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;RSK Community Call August 2021&lt;/a&gt; on Youtube (Replay).&lt;br&gt;
🗣️ Propose your own &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSKIPs&lt;/a&gt;&lt;br&gt;
🔗 Join the &lt;a href="https://research.rsk.dev"&gt;RSK Research &amp;amp; Innovation Forum&lt;/a&gt;&lt;br&gt;
🗣️ &lt;a href="https://research.rsk.dev/t/community-call-july-august-2021/204/2"&gt;Suggest RSKIPs to discuss&lt;/a&gt; in the next community call&lt;br&gt;
🔗Join our &lt;a href="https://developers.rsk.co/slack/"&gt;Open Slack Community&lt;/a&gt; and ask your questions in #research-and-innovation&lt;/p&gt;

&lt;p&gt;The speakers on this call were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  John Light&lt;/li&gt;
&lt;li&gt;  Jose Dahlquist&lt;/li&gt;
&lt;li&gt;  Sergio Demian Lerner&lt;/li&gt;
&lt;li&gt;  Brendan Graetz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this call, we discussed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/rskj/releases/tag/IRIS-3.0.0"&gt;The recent Iris release&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/268/files"&gt;Expanding the emergency multisig (RSKIP 268)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/rskip207/IPs/RSKIP207.md"&gt;Emergency time-locks refresh (RSKIP 207)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP264.md"&gt;Simplified emergency time-locks refresh (RSKIP 264)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP265.md"&gt;Bridge UTXOs selection, consolidation and batching (RSKIP 265)&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP241.md"&gt;User-triggered peg-out transaction fee-bumping (RSKIP 241)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Iris v3.0.0 Release
&lt;/h3&gt;

&lt;p&gt;RSK is happy to announce that the RSK Iris 5th network upgrade was successfully activated at block #3,614,800 on 19th August 2021! Read about the benefits this milestone upgrade brings to the ecosystem in this article: &lt;a href="https://blog.rsk.co/noticia/iris-v3-0-0-is-here-what-you-need-to-know-about-rsk-upcoming-network-upgrade/"&gt;Iris v3.0.0: What You Need To Know About RSK’s Upcoming Network Upgrade&lt;/a&gt; and also check out &lt;a href="https://youtu.be/H15kZD15oSg"&gt;the previous community call&lt;/a&gt; which focused on RSKIPs that were included in Iris.&lt;/p&gt;

&lt;h3&gt;
  
  
  Expanding The Emergency Multisig (RSKIP-268)
&lt;/h3&gt;

&lt;p&gt;John Light from &lt;a href="https://www.sovryn.app/"&gt;Sovryn&lt;/a&gt; talked about modifying and expanding the Iris multisig from a 3-of-4 to a 7-of-12 multisig in line with the 7-of-12 PowHSM nodes required to operate the Powpeg Schnorr key aggregation to reduce the size of the emergency multisig transactions. He talked about enabling the current PowHSM nodes to be able to make taproot style transactions.&lt;/p&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/268/files"&gt;RSKIP-268&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/rskip-x-expanding-the-emergency-multisig/218"&gt;RSKIP-268 discussion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Emergency Time Locks Refresh (RSKIP-207)
&lt;/h3&gt;

&lt;p&gt;Jose Dahlquist talked about improving the time-locked emergency multisig of RSKIP-201. Prior to this time, the Powpeg unspent transaction outputs (UTXOs) are periodically spent in order to prevent the time-lock expiration, with the recent upgrade to the network, the new mechanism for the Bridge to command this time-lock refresh efficiently. &lt;/p&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/rskip207/IPs/RSKIP207.md"&gt;RSKIP-207&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/rskip-207-emergency-time-locks-refresh/215"&gt;RSKIP-207 discussion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Simplified Emergency Time-locks Refresh (RSKIP-264)
&lt;/h3&gt;

&lt;p&gt;Jose also talked about simplifying RSKIP207 and prioritising UTXO consolidation. The aim of this RSKIP is the same as 207, but for 264 to be implementable, a consolidation of UTXOs should happen. If RSKIP-264 is activated, then the priority queue introduced in RSKIP-207 is not needed, and therefore RSKIP-264 should replace it.&lt;/p&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP264.md"&gt;RSKIP-264&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/rskip-264-simplified-emergency-time-locks-refresh/223"&gt;RSKIP-264 discussion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Bridge UTXOs Selection, Consolidation and Batching (RSKIP-265)
&lt;/h3&gt;

&lt;p&gt;Sergio Demian Lerner talked about preventing the proliferation and fragmentation of UTXOs, consolidating the peg-ins into a small set when the number of UTXOs grows over a threshold concurrent with a method of peg-out output batching, this solves the problem of variable peg-out fees and reduces the effectiveness of some DoS attacks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0BakyrhE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lpdf9drn5ycr3quykj6t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0BakyrhE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lpdf9drn5ycr3quykj6t.png" alt="Bridge UTXOs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He highlighted the problems of the current UTXO management in RSK, these include;&lt;/p&gt;

&lt;p&gt;UTXO denial of service, UTXO proliferation, UTXO fragmentation, UTXO uneven amount distribution, UTXO size shrink, peg-out cost, unfunded UTXO management, peg-out transactions fee bumping, etc. &lt;/p&gt;

&lt;h4&gt;
  
  
  Some problems addressed by RSKIP-265;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;DOS attacks targeting the bridge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;High peg out costs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UTXO proliferation and shrinkage&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UTXO fragmentation, uneven amount distribution &amp;amp; UTXO refresh&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Large variance in peg-out costs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Unfunded UTXO management&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What RSKIP 265 does not solve;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Fee bumping&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See related links:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP265.md"&gt;RSKIP-265&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/rskip-265-bridge-utxos-selection-consolidation-and-batching/219"&gt;RSKIP-265 discussion&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  User-triggered peg-out transaction fee-bumping (RSKIP-241)
&lt;/h3&gt;

&lt;p&gt;Sergio talked about adding several methods to the bridge contract, allowing previously signed transactions to be rebuilt with higher Bitcoin transaction fees, and also allowing these transactions to be re-signed by the pegnatories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eA_Vid73--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42ujh65vco0b8uvsyf6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eA_Vid73--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42ujh65vco0b8uvsyf6s.png" alt="Manual Fee Bumping"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  See related links:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP265.md"&gt;RSKIP-241&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/rskip-265-bridge-utxos-selection-consolidation-and-batching/219"&gt;RSKIP-241 discussion&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decisions
&lt;/h2&gt;

&lt;p&gt;Read about the decisions made during the call on the &lt;a href="https://developers.rsk.co/community-calls/2021-08/#decisions"&gt;RSK Developers Portal&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;For more details on these, please watch the &lt;a href="https://youtu.be/lZ0Y4VHvR4Q"&gt;recording on Youtube.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to champion an RSKIP? Missed the previous RSK Community Call? Watch the &lt;a href="https://youtu.be/H15kZD15oSg"&gt;recording on Youtube&lt;/a&gt;. Also, leave a comment on &lt;a href="https://research.rsk.dev/t/community-call-september-october-2021/220?u=bguiz"&gt;this thread for the next community call&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/Cl1NWsJrFmI"&gt;RSK Community Call,May, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://youtu.be/H15kZD15oSg"&gt;RSK Community Call, July, 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co/community-calls/2021-08/"&gt;RSK Community Call, August 2021&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/t/community-call-september-october-2021/220?u=bguiz"&gt;Discussion for next RSK Community Call&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals Repository&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;  &lt;a href="https://research.rsk.dev/"&gt;RSK Discourse Forum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Developer Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developers.rsk.co"&gt;RSK Community Slack&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>rsk</category>
      <category>blockchain</category>
      <category>bitcoin</category>
    </item>
    <item>
      <title>RSK Community Call, July 2021 — Summary
</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Sun, 25 Jul 2021 18:44:30 +0000</pubDate>
      <link>https://dev.to/owans/rsk-community-call-july-2021-summary-370l</link>
      <guid>https://dev.to/owans/rsk-community-call-july-2021-summary-370l</guid>
      <description>&lt;p&gt;Introduction to Iris 3.0.0 network upgrades, powpeg security and flyover protocol.&lt;/p&gt;

&lt;p&gt;On 16th July 2021, The RSK Ecosystem held its second community call. The aim of these community calls is to discuss the &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals — RSKIPs&lt;/a&gt;, get the community involved, gather feedback, discuss the RSK consensus protocol, the formal process for proposing improvements, and the upcoming network upgrades. For more info, read the &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP0.md"&gt;RSKIP Purpose and Guidelines.&lt;/a&gt; It was live-streamed on several platforms, and we received quite a lot of questions and feedback from everyone who participated! For those of you who missed out on attending it live, we’ll catch you up in this article or read the detailed guide on &lt;a href="https://blog.rsk.co/noticia/iris-v3-0-0-is-here-what-you-need-to-know-about-rsk-upcoming-network-upgrade/"&gt;What You Need To Know About RSK Upcoming Network Upgrade&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;🎥 Watch the &lt;a href="https://youtu.be/H15kZD15oSg"&gt;RSK Community Call July 2021&lt;/a&gt; on Youtube (Replay).&lt;/p&gt;

&lt;p&gt;🗣️ Propose your own &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSKIPs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 Join the &lt;a href="https://research.rsk.dev"&gt;RSK Research &amp;amp; Innovation Forum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🗣️ &lt;a href="https://research.rsk.dev/t/community-call-july-august-2021/204/2"&gt;Suggest RSKIPs to discuss&lt;/a&gt; in the next community call&lt;/p&gt;

&lt;p&gt;🔗Join our &lt;a href="https://developers.rsk.co/slack/"&gt;Open Slack Community&lt;/a&gt; and ask your questions in &lt;strong&gt;#research-and-innovation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The speakers on this call were:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Sergio Demian Lerner&lt;/li&gt;
&lt;li&gt;  Adrian Eidelman&lt;/li&gt;
&lt;li&gt;  Jose Dahlquist&lt;/li&gt;
&lt;li&gt;  John Light&lt;/li&gt;
&lt;li&gt;  … and hosted by Brendan Graetz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;In this call, we discussed:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  RSK Iris hard fork overview&lt;/li&gt;
&lt;li&gt;  RSKIP process&lt;/li&gt;
&lt;li&gt;  RSKIP-201, PowPeg Security&lt;/li&gt;
&lt;li&gt;  RSKIP-170, Pegin to any address&lt;/li&gt;
&lt;li&gt;  RSKIP-219, Pegin minimum reductions&lt;/li&gt;
&lt;li&gt;  RSKIP-176, Flyover&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  All about RSKIPs
&lt;/h3&gt;

&lt;p&gt;The live event began with Adrian Eidelman talking about the Iris Hard Fork, which release has been talked about for months, and the new features and major improvements are ready to be made public.&lt;/p&gt;

&lt;p&gt;Iris is a network upgrade or a hard fork — a hard fork is a set of changes to the underlying RSK protocol and those changes introduce new rules to improve the platform. These new rules are coded into the RSK reference client which is RSKj, and if the protocol rules change, all the nodes in the network need to be updated, otherwise those nodes not updated will remain on an old change with the previous rules.&lt;/p&gt;

&lt;p&gt;Everyone running an RSK node instance (either a testnet or mainnet node) should ensure to update it before the IRIS updates are activated. No special consideration is needed, simply update your node instance, and it can be done in under a few minutes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scheduled Dates for IRIS Activation
&lt;/h3&gt;

&lt;p&gt;The activation of the IRIS network upgrades will take place around Aug 19, 2021for Mainnet and Aug 4, 2021 for Testnet, the number of block activation numbers for mainnet is &lt;strong&gt;3,614,800&lt;/strong&gt; and &lt;strong&gt;2,060,500&lt;/strong&gt; for testnet respectively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Components of Iris network upgrade
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;18 RSKIPs&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are 18 RSKIPs included in IRIS. All of these RSKIPs can be found in the meta RSKIP (&lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP187.md"&gt;RSKIP-187&lt;/a&gt;), which is an index of all the changes that are individually described in the RSKIPs repository.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Release&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tag name for this upcoming version upgrade is &lt;a href="https://github.com/rsksmart/rskj/releases/tag/IRIS-3.0.0"&gt;RSKj IRIS-3.0.0&lt;/a&gt; which also contains both consensus and non-consensus improvements to RSKj. These include compatibility fixes at the JSON-RPC interface, performance enhancements of the node, et cetera. See the IRIS milestone on Github for a more detailed view of these changes.&lt;/p&gt;

&lt;p&gt;The following are the included RSKIPs in &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP187.md"&gt;RSKIP-187: Iris Network Upgrade&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP153.md"&gt;RSKIP 153&lt;/a&gt;: Add BLAKE2 compression function F precompile&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP169.md"&gt;RSKIP 169&lt;/a&gt;: Rectify EXTCODEHASH implementation&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP170.md"&gt;RSKIP 170&lt;/a&gt;: 2WP peg-in transactions to any address&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP171.md"&gt;RSKIP 171&lt;/a&gt;: Arbitrary-length data return mechanism&lt;/li&gt;
&lt;li&gt;  RSKIP 174: Preserve balance in contract creation&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/176"&gt;RSKIP 176&lt;/a&gt;: Trustless fast BTC bridge&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP179.md"&gt;RSKIP 179&lt;/a&gt;: BTC-RSK timestamp linking&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/181"&gt;RSKIP 181&lt;/a&gt;: Add 2WP peg-in transactions reject events&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP185.md"&gt;RSKIP 185&lt;/a&gt;: Add 2WP peg-out transactions events and refund support&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/186"&gt;RSKIP 186&lt;/a&gt;: Preserve RSK PowPeg activation block height&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP191.md"&gt;RSKIP 191&lt;/a&gt;: Remove non-Ethereum opcodes from the virtual machine&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/197"&gt;RSKIP 197&lt;/a&gt;: Error Handling for Precompiled Contracts&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/199"&gt;RSKIP 199&lt;/a&gt;: Bridge performance improvement&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/200"&gt;RSKIP 200&lt;/a&gt;: ReceiveHeaders method limitations&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP201.md"&gt;RSKIP 201&lt;/a&gt;: Time-locked Emergency Multisignature&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP218.md"&gt;RSKIP 218&lt;/a&gt;: New fee rewards address for the RSK Core Developers Fund&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/219"&gt;RSKIP 219&lt;/a&gt;: Minimum peg-in and peg-out values reduced&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/rsksmart/RSKIPs/pull/220"&gt;RSKIP 220&lt;/a&gt;: Open Bitcoin blockchain oracle&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  IRIS Network Upgrade: Changes explained
&lt;/h3&gt;

&lt;h4&gt;
  
  
  RSKIP-170: Peg-in to a user-defined RSK address
&lt;/h4&gt;

&lt;p&gt;The change in RSKIP-170 includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Allow users to peg-in BTC to any address in RSK, EOA or contract.&lt;/li&gt;
&lt;li&gt;  Output with an OP_RETURN op code and certain payload in the transaction&lt;/li&gt;
&lt;li&gt;  Backwards compatible&lt;/li&gt;
&lt;li&gt;  2WP wallets/tools can provide a much more friendly experience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--c62gFWNf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e27kip5slx8bqnqvam0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--c62gFWNf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e27kip5slx8bqnqvam0z.png" alt="BTC-RBTC Transaction Summary"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are changes to the peg-in protocol, a very simple change but it enables a better peg-in experience, the goal of this consensus change is to basically allow users to specify any address in RSK (&lt;a href="https://ethdocs.org/en/latest/contracts-and-transactions/account-types-gas-and-transactions.html#:~:text=Externally%20owned%20account%20%28EOAs%29%3A,and%20is%20controlled%20by%20code."&gt;EOA&lt;/a&gt; or contracts) where the RBTC will be delivered when doing a peg-in transaction. This enables developers to build solutions that use this feature, for example, any wallet that provides this feature needs to implement this new feature, these changes are also backwards compatible, so node changes needed for the tools implementing this feature can keep working without issues. Some teams are already working on implementing this feature which can be seen in the image above.&lt;/p&gt;

&lt;h4&gt;
  
  
  RSKIP-219: Reduced minimum peg-in and peg-out values
&lt;/h4&gt;

&lt;p&gt;The changes include;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Minimum required values for peg-in and peg-out have been halved.&lt;/li&gt;
&lt;li&gt;  Peg-in minimum: 0.01 → 0.005&lt;/li&gt;
&lt;li&gt;  Peg-out minimum: 0.008 → 0.004&lt;/li&gt;
&lt;li&gt;  Peg-out BTC fees must be less than 20% of the peg-out value.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  RSKIP-176: Flyover Protocol
&lt;/h4&gt;

&lt;p&gt;Jose Dahlquist explained the changes in RSKIP-176;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Converting BTC to RBTC in just a Bitcoin block is now possible&lt;/li&gt;
&lt;li&gt;  A new market opportunity for liquidity providers&lt;/li&gt;
&lt;li&gt;  Fully decentralized&lt;/li&gt;
&lt;li&gt;  Business rules are written in solidity&lt;/li&gt;
&lt;li&gt;  Bridge remarkable changes&lt;/li&gt;
&lt;li&gt;  Register Bridge UTXOs from a derived powpeg Federation address&lt;/li&gt;
&lt;li&gt;  Secured by the powpeg (HSM, ERP, etc)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The RSKIP Process
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;RSKIP-0&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sergio Lerner talked about the &lt;a href="https://github.com/rsksmart/RSKIPs/blob/master/IPs/RSKIP0.md"&gt;RSKIP-0&lt;/a&gt;, which is a document describing the RSKIP process, which will be discussed by the community before getting included in the RSKIPs. Essentially, how the RSK community initiates, discusses, and incorporates improvements. This process began in 2016, he said there are approximately 144 proposals published, and 20 proposals that have been abandoned or incomplete, he encouraged everyone who started a proposal to finish it, and that 40 proposals have been adopted and activated.&lt;/p&gt;

&lt;p&gt;Sergio explained the process/workflow for submitting a proposal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gk244YRZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6kkymrpley9qyr3fm7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gk244YRZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k6kkymrpley9qyr3fm7a.png" alt="RSKIP Process"&gt;&lt;/a&gt;&lt;br&gt;
This starts with a draft which is a detailed document where you sketch your idea, the draft can be rejected if the community finds it of no value to the platform, or it contradicts some fundamental genesis of concepts of the platform. Or it can be &lt;strong&gt;activated&lt;/strong&gt; — for e.g, if it is a change in consensus or if it is any other change that does not involve consensus, for e.g, a change in the interface of a node or CLI args or JSON-RPC then it is said to be &lt;strong&gt;adopted&lt;/strong&gt; after several discussions have been had in the research forum, once accepted, it will be implemented in subsequent versions.&lt;/p&gt;

&lt;p&gt;The below image shows the steps to follow, and how to get community feedback on your idea;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yQpxIOm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jxkon2nk3u1xlwocfo6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yQpxIOm9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5jxkon2nk3u1xlwocfo6.png" alt="RSKIP Proposed Flow"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Do check out the RSKIP process. We encourage everyone from the RSK community to participate in this process, by creating new RSKIPs, discussing existing ones, and attending community calls like this one!&lt;/p&gt;

&lt;h3&gt;
  
  
  RSKIP-201: Powpeg Security
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Time-locked Emergency Multisignature
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;Timelock Emergency Multisig&lt;/strong&gt; is a backup method to access the funds in the PowPeg that is only activated after one year of continued external attack.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  DOS Attack against the RSK Mining Network (Very low risk)&lt;/li&gt;
&lt;li&gt;  DOS attack against the majority of the pegnatories (very low risk)&lt;/li&gt;
&lt;li&gt;  Seizure of the majority of the PowHSM devices (low risk)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, some internal bug or vulnerability bricks the PowHSM.&lt;/p&gt;

&lt;p&gt;Sergio also talked about the new bitcoin script for Powpeg address, which has two execution paths — the normal peg out script path and the emergency peg out script path, see image below;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---h159cxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hipi72ljrfg1osfy8z7q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---h159cxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hipi72ljrfg1osfy8z7q.png" alt="Bitcoin script"&gt;&lt;/a&gt;&lt;br&gt;
The reason for a one-year time lock and what signatories will do in the case of an emergency. He also gave a brief history of the PwoPeg since 2020, the private key holders, the future of the emergency multisignature and the original security concerns that motivated an emergency multisig which were;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Firmware bugs&lt;/li&gt;
&lt;li&gt;  Flash Memory Failure&lt;/li&gt;
&lt;li&gt;  Board Failure&lt;/li&gt;
&lt;li&gt;  Censorship, Seizure and Ransom Demands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For more info on RSKIP-201, read &lt;a href="https://medium.com/iovlabs-innovation-stories/the-rsk-emergency-multisig-5c3ae0fee84e"&gt;The RSK Emergency Multisig article&lt;/a&gt; by Sergio Lerner.&lt;/p&gt;

&lt;p&gt;John Light from &lt;a href="https://www.sovryn.app/"&gt;Sovryn&lt;/a&gt; expressed concerns about the potential degradation of the security of the PowPeg which could arise as a result of adding the emergency multisig, he suggested some improvements like expanding the number of signatories on the multisig, securing the private keys using PowHSM devices. Sergio responded to this by saying that future network upgrades will prioritise security. Adrian added to this by saying that discussions are already underway and that the next upgrade will see improvements like the one mentioned by John Light.&lt;/p&gt;

&lt;h3&gt;
  
  
  Q &amp;amp; A
&lt;/h3&gt;

&lt;p&gt;For more details on these, please watch the &lt;a href="https://youtu.be/H15kZD15oSg"&gt;live recording on Youtube.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want to champion an RSKIP? Missed the first RSK Community Call? Watch the &lt;a href="https://youtu.be/Cl1NWsJrFmI"&gt;recording on Youtube&lt;/a&gt;. Also, leave a comment on &lt;a href="https://research.rsk.dev/t/community-call-june-july-2021/174"&gt;this thread for the next community call&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;The following questions were asked during the community call;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Why is an Emergency and a Hard Fork?&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Adrian responded by saying that though the term used calls for valid concerns, he said that there’s nothing to worry about especially with regards to their RBTC and that this is a &lt;strong&gt;planned&lt;/strong&gt; hard fork and a consensus change to improve the features of the network.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Does the user need to do anything? Will we end up with RBTC and the “old” hard forked RBTC as it happened with BTC’s hardfork?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Brendan responded by saying no, you generally don’t need to do anything unless you’re running an RSK node. If you are running an RSK node, do update it to the latest version of RSKj as soon as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Resources
&lt;/h3&gt;

&lt;p&gt;What do you &lt;a href="https://research.rsk.dev/t/community-call-july-august-2021/204"&gt;want to discuss&lt;/a&gt; in our next community call?&lt;/p&gt;

&lt;p&gt;The next RSK Community Call will happen on August 5th 2021 with discussions including the &lt;strong&gt;next&lt;/strong&gt; hard fork.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;a href="https://github.com/rsksmart/RSKIPs"&gt;RSK Improvement Proposals — RSKIPs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://research.rsk.dev"&gt;Discourse Forum&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://developers.rsk.co"&gt;RSK/RIF Developer’s Portal&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://developers.rsk.co"&gt;RSK Open Slack Community&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="https://github.com/rsksmart/rskj"&gt;RSKj&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

</description>
      <category>bitcoin</category>
      <category>community</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>The difference between a Cryptocurrency and a Token</title>
      <dc:creator>Owanate Amachree</dc:creator>
      <pubDate>Tue, 25 May 2021 13:50:46 +0000</pubDate>
      <link>https://dev.to/owans/the-difference-between-a-cryptocurrency-and-a-token-3ee4</link>
      <guid>https://dev.to/owans/the-difference-between-a-cryptocurrency-and-a-token-3ee4</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vYNRgP5o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bm29d7wpl6v4ridoyj4i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vYNRgP5o--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bm29d7wpl6v4ridoyj4i.png" alt="Crypto vs Token Banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a Digital Asset?
&lt;/h2&gt;

&lt;p&gt;In broad terms, a digital asset is a non-tangible asset that is created, traded, and stored in a digital format. Using this definition In the context of blockchains, digital assets include cryptocurrency and crypto tokens.&lt;/p&gt;

&lt;p&gt;The blockchain terms; token and cryptocurrency are often used interchangeably, as these are both digital assets on blockchains. The biggest difference between a cryptocurrency and a token is that cryptocurrencies are the native asset of a&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5MywgOKI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3nenv3kpdgz12znjdich.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5MywgOKI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3nenv3kpdgz12znjdich.png" alt="Crypto vs Token"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;blockchain like BTC, RBTC, or ETH, whereas tokens are built on an existing blockchain, using smart contracts. Most commonly, these are EIP-20 tokens.&lt;/p&gt;

&lt;p&gt;The following chart summarises the similarities between the two:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--alJEeX2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/td9ysdl9w6pvajn1373z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--alJEeX2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/td9ysdl9w6pvajn1373z.png" alt="Crypto vs Tokens2"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we can see, these are largely the same from the perspective of the end user. However, there are large technical differences between the two. Let’s dive a little bit deeper into the technical differences:&lt;/p&gt;

&lt;h2&gt;
  
  
  Blockchain, Blocks, Transactions, and Signatures
&lt;/h2&gt;

&lt;p&gt;Here’s a whirlwind introduction to blockchain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;End users use public key cryptography to digitally sign information&lt;/li&gt;
&lt;li&gt;This signed information is a transaction&lt;/li&gt;
&lt;li&gt;The transaction is broadcast to a peer-to-peer network of computers running the blockchain node software&lt;/li&gt;
&lt;li&gt;All the nodes have to reach a consensus on whether or not the transaction is valid&lt;/li&gt;
&lt;li&gt;If the transaction is valid, it gets added to a block, which is a set of transactions&lt;/li&gt;
&lt;li&gt;Many computers on the network build these blocks of transactions, but only one block gets added at a time&lt;/li&gt;
&lt;li&gt;These blocks form a single chain, called a blockchain&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Note that many details have been left out of the above description, for the sake of brevity.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Public key cryptography&lt;/strong&gt; is used in blockchain networks, mainly for digitally signing information, and then subsequently verifying those signatures. This was the process of transaction creation and transaction verification. The user possesses both a private key and a public key, and needs to keep the private key a secret, while allowing the public key to be broadcast widely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Transfer Transactions vs Smart Contract Interaction Transactions
&lt;/h2&gt;

&lt;p&gt;In Bitcoin, and in many other blockchains, the information being signed was about one account transferring units from itself to another account. These units are encoded into the software protocols of the blockchain software itself, and are known as cryptocurrency. In this system there is only one type of transaction.&lt;/p&gt;

&lt;p&gt;In Ethereum, RSK, and many other blockchains that support smart contracts, the information being signed was about one account transferring units of cryptocurrency from itself to another account too. However, they added a new concept where you could have “smart contracts” which are autonomously executing code and data stored on the blockchain. These smart contracts may be thought of as a special type of account. Now an account could sign information that does &lt;strong&gt;not&lt;/strong&gt; transfer any units of cryptocurrency, but instead contains instructions for a smart contract to execute some code or store some data. In this system, there are two types of transaction. Read more about Smart contracts in &lt;a href="https://developers.rsk.co/guides/full-stack-dapp-on-rsk/part1-overview/"&gt;How to Build a Full Stack dApp on RSK&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tokens
&lt;/h2&gt;

&lt;p&gt;Tokens behave very similarly to cryptocurrencies, in the sense that they are a type of currency that exist on a blockchain, and can be transferred from one account to another. However, unlike cryptocurrencies, their behaviour is not built into the blockchain software itself. Instead their behaviour comes about by implementations in smart contracts. These smart contracts tally the units of the token transferred between accounts.&lt;/p&gt;

&lt;p&gt;To transfer units of these tokens, an account signs a transaction telling the smart contract to debit a number of units of the token from its tally, and credit the same number of units of the token to the other account’s tally. Most tokens conform to the EIP-20 token standard, and in fact the majority of all smart contracts on blockchain networks tend to be of this type; making it easy for users, wallets, exchanges, etc to interact with them.&lt;/p&gt;

&lt;p&gt;When interacting with blockchain networks, it is important to be aware of this distinction. On Ethereum, Ether is the cryptocurrency, and other “currencies” are tokens. Likewise, on RSK, RBTC is the cryptocurrency, and other “currencies” are tokens. Some practical reasons to take note of this are that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fees (or gas) for transactions are cheaper when transferring the cryptocurrency, and more expensive when transferring tokens.&lt;/li&gt;
&lt;li&gt;Fees (or gas) is always paid for in the cryptocurrency, and therefore when transferring tokens, you will still need some cryptocurrency in the same account.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: When talking about tokens, you will see the terms ERC-20 as well as EIP-20. These are both &lt;strong&gt;the same&lt;/strong&gt;. At the outset, the process for defining standards for Ethereum, and Ethereum-compatible networks, was called “Ethereum Request for Comment”. This process has since been refined and renamed to “Ethereum Improvement Proposal”.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Visit the &lt;a href="https://developers.rsk.co/"&gt;RSK Developer's Portal&lt;/a&gt; for more info or join the &lt;a href="https://developers.rsk.co/slack/"&gt;Slack Community&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;Thanks for reading!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Originally published at the &lt;a href="https://developers.rsk.co/kb/get-crypto-on-rsk/cryptocurrency-vs-token/"&gt;RSK Developer's Portal&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>rsk</category>
      <category>blockchain</category>
      <category>token</category>
      <category>cryptocurrency</category>
    </item>
  </channel>
</rss>
