<?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: bock-studio</title>
    <description>The latest articles on DEV Community by bock-studio (@bockesstudio).</description>
    <link>https://dev.to/bockesstudio</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%2F3670365%2F6d660aea-8979-4497-bf14-d5f0dc5c3118.jpg</url>
      <title>DEV Community: bock-studio</title>
      <link>https://dev.to/bockesstudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bockesstudio"/>
    <language>en</language>
    <item>
      <title>Vue + XChainJS Example</title>
      <dc:creator>bock-studio</dc:creator>
      <pubDate>Fri, 19 Dec 2025 10:39:47 +0000</pubDate>
      <link>https://dev.to/bockesstudio/vue-xchainjs-example-221j</link>
      <guid>https://dev.to/bockesstudio/vue-xchainjs-example-221j</guid>
      <description>&lt;p&gt;&lt;strong&gt;A minimal Vue starter using @xchainjs/xchain-util&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This example demonstrates how to use XChainJS utilities inside a Vue 3 + TypeScript application.&lt;/p&gt;

&lt;p&gt;The goal of this repository is to show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to work with assets (BTC.BTC, ETH.ETH, THOR.RUNE)&lt;/li&gt;
&lt;li&gt;how to safely handle amounts and decimals&lt;/li&gt;
&lt;li&gt;how to structure a small Vue app around XChainJS utilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 GitHub repository:&lt;br&gt;
&lt;a href="https://github.com/xchainjs/xchainjs-lib/tree/master/packages/xchain-bitcoin" rel="noopener noreferrer"&gt;https://github.com/xchainjs/xchainjs-lib/tree/master/packages/xchain-bitcoin&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vue 3 + TypeScript&lt;/li&gt;
&lt;li&gt;@xchainjs/xchain-util integration&lt;/li&gt;
&lt;li&gt;Asset parsing &amp;amp; validation&lt;/li&gt;
&lt;li&gt;Human ↔ base amount conversion&lt;/li&gt;
&lt;li&gt;Simple service layer abstraction&lt;/li&gt;
&lt;li&gt;Ready to extend into wallet / DeFi app&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Clone the repository and install dependencies:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/&amp;lt;your-org&amp;gt;/vue-xchainjs-example.git&lt;br&gt;
cd vue-xchainjs-example&lt;br&gt;
npm install&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Run the development server:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;npm run dev&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Open your browser at:&lt;br&gt;
&lt;code&gt;http://localhost:5173&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Main dependency used in this example:&lt;br&gt;
&lt;code&gt;npm install @xchainjs/xchain-util&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The example is intentionally minimal and focuses only on core XChainJS utilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage&lt;br&gt;
Asset parsing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Assets in XChainJS follow a standardized format:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;CHAIN&amp;gt;.&amp;lt;SYMBOL&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;BTC.BTC&lt;/li&gt;
&lt;li&gt;ETH.ETH&lt;/li&gt;
&lt;li&gt;THOR.RUNE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this example, asset parsing is handled via assetFromString.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import { assetFromString, assetToString } from '@xchainjs/xchain-util'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;export function parseAsset(input: string) {&lt;br&gt;
  const asset = assetFromString(input)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;if (!asset) {&lt;br&gt;
    throw new Error(&lt;/code&gt;Invalid asset string: ${input}&lt;code&gt;)&lt;br&gt;
  }&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;return assetToString(asset)&lt;br&gt;
}&lt;br&gt;
This guarantees consistent asset handling across chains.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amount utilities&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Crypto applications must distinguish between:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;human-readable amounts (e.g. 1.5 BTC)&lt;/li&gt;
&lt;li&gt;base amounts (e.g. 150000000 satoshis)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This example shows how to handle both safely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human amount&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`import { assetAmount } from '@xchainjs/xchain-util'&lt;/p&gt;

&lt;p&gt;const amount = assetAmount(1.5)&lt;br&gt;
console.log(amount.amount().toString()) // "1.5"`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Base amount&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`import { baseAmount } from '@xchainjs/xchain-util'&lt;/p&gt;

&lt;p&gt;const base = baseAmount(150000000)&lt;br&gt;
console.log(base.amount().toString()) // "150000000"`&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example service (recommended pattern)&lt;/strong&gt;&lt;br&gt;
All XChainJS logic is isolated inside a small service layer.&lt;/p&gt;

&lt;p&gt;`import { assetFromString, assetToString, baseAmount, assetAmount } from '@xchainjs/xchain-util'&lt;/p&gt;

&lt;p&gt;export const xchainService = {&lt;br&gt;
  normalizeAsset(input: string) {&lt;br&gt;
    const asset = assetFromString(input.trim().toUpperCase())&lt;br&gt;
    if (!asset) throw new Error('Invalid asset')&lt;br&gt;
    return assetToString(asset)&lt;br&gt;
  },&lt;/p&gt;

&lt;p&gt;toBaseAmount(value: number, decimals: number) {&lt;br&gt;
    const factor = 10 ** decimals&lt;br&gt;
    return baseAmount(Math.round(value * factor))&lt;br&gt;
  },&lt;/p&gt;

&lt;p&gt;toAssetAmount(value: number, decimals: number) {&lt;br&gt;
    const factor = 10 ** decimals&lt;br&gt;
    return assetAmount(value / factor)&lt;br&gt;
  }&lt;br&gt;
}`&lt;br&gt;
This pattern keeps Vue components clean and makes the logic reusable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example Vue component usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`&amp;lt;br&amp;gt;
import { ref } from &amp;amp;#39;vue&amp;amp;#39;&amp;lt;br&amp;gt;
import { xchainService } from &amp;amp;#39;@/services/xchain&amp;amp;#39;&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;const assetInput = ref(&amp;amp;#39;BTC.BTC&amp;amp;#39;)&amp;lt;br&amp;gt;
const normalized = ref(&amp;amp;#39;&amp;amp;#39;)&amp;lt;/p&amp;gt;

&amp;lt;p&amp;gt;function handleParse() {&amp;lt;br&amp;gt;
  normalized.value = xchainService.normalizeAsset(assetInput.value)&amp;lt;br&amp;gt;
}&amp;lt;br&amp;gt;
&lt;/p&gt;

&lt;p&gt;&lt;br&gt;
  &lt;br&gt;
  Parse asset&lt;br&gt;
  &lt;/p&gt;
&lt;p&gt;Result: {{ normalized }}&lt;/p&gt;
&lt;br&gt;
`

&lt;p&gt;&lt;strong&gt;Project structure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;src/&lt;br&gt;
 ├─ components/&lt;br&gt;
 ├─ services/&lt;br&gt;
 │   └─ xchain.ts&lt;br&gt;
 ├─ App.vue&lt;br&gt;
 └─ main.ts&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;services/ — all XChainJS logic&lt;/li&gt;
&lt;li&gt;components/ — UI only&lt;/li&gt;
&lt;li&gt;easy to extend with chain clients later&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Extending this example&lt;/strong&gt;&lt;br&gt;
This starter can be extended to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add chain clients (xchain-bitcoin, xchain-ethereum)&lt;/li&gt;
&lt;li&gt;fetch balances&lt;/li&gt;
&lt;li&gt;build a portfolio tracker&lt;/li&gt;
&lt;li&gt;implement swap flows&lt;/li&gt;
&lt;li&gt;connect wallets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This example shows how to use @xchainjs/xchain-util in a real Vue application:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clean asset parsing&lt;/li&gt;
&lt;li&gt;safe amount handling&lt;/li&gt;
&lt;li&gt;minimal but extensible structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is intended as a starting point for cross-chain wallets and DeFi frontends built with Vue and XChainJS.&lt;/p&gt;

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

&lt;p&gt;➡️ Clone the example:&lt;br&gt;
&lt;a href="https://github.com/" rel="noopener noreferrer"&gt;https://github.com/&lt;/a&gt;/vue-xchainjs-example&lt;/p&gt;

&lt;p&gt;Stars, issues and pull requests are welcome.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>web3</category>
      <category>solidity</category>
      <category>cryptocurrency</category>
    </item>
    <item>
      <title>@xchainjs/xchain-util: Install, Use &amp; Build Cross-Chain Crypto Apps (with TypeScript)</title>
      <dc:creator>bock-studio</dc:creator>
      <pubDate>Fri, 19 Dec 2025 09:59:19 +0000</pubDate>
      <link>https://dev.to/bockesstudio/xchainjsxchain-util-install-use-build-cross-chain-crypto-apps-with-typescript-3k5a</link>
      <guid>https://dev.to/bockesstudio/xchainjsxchain-util-install-use-build-cross-chain-crypto-apps-with-typescript-3k5a</guid>
      <description>&lt;p&gt;&lt;strong&gt;When building blockchain applications, reusability, consistency, and reliability are critical.&lt;/strong&gt;&lt;br&gt;
That’s exactly where @xchainjs/xchain-util shines.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In this article, we’ll cover:&lt;/li&gt;
&lt;li&gt;What @xchainjs/xchain-util is&lt;/li&gt;
&lt;li&gt;How to install it&lt;/li&gt;
&lt;li&gt;How to use it in real projects&lt;/li&gt;
&lt;li&gt;Why it’s one of the best utility libraries for multi-chain crypto development&lt;/li&gt;
&lt;li&gt;How it fits into the XChainJS ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What is&lt;/strong&gt; @xchainjs/xchain-util?&lt;/p&gt;

&lt;p&gt;@xchainjs/xchain-util is a utility package for XChainJS, a TypeScript-based blockchain SDK designed to work with multiple blockchains through a unified API.&lt;/p&gt;

&lt;p&gt;This package provides shared helper functions, types, and primitives that are used across the entire XChainJS ecosystem.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;xchainjs&lt;/li&gt;
&lt;li&gt;xchainjs util&lt;/li&gt;
&lt;li&gt;blockchain utility library&lt;/li&gt;
&lt;li&gt;multi-chain JavaScript SDK&lt;/li&gt;
&lt;li&gt;TypeScript crypto utilities&lt;/li&gt;
&lt;li&gt;THORChain JavaScript tools&lt;/li&gt;
&lt;li&gt;cross-chain development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why **@xchainjs/xchain-util **Exists&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When building blockchain SDKs, many operations are repeated across chains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Asset formatting&lt;/li&gt;
&lt;li&gt;Decimal &amp;amp; amount conversions&lt;/li&gt;
&lt;li&gt;Chain-agnostic helpers&lt;/li&gt;
&lt;li&gt;Common types and constants&lt;/li&gt;
&lt;li&gt;Validation utilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of duplicating this logic in every package, XChainJS centralizes it in @xchainjs/xchain-util.&lt;/p&gt;

&lt;p&gt;👉 This leads to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cleaner code&lt;/li&gt;
&lt;li&gt;Fewer bugs&lt;/li&gt;
&lt;li&gt;Consistent behavior across blockchains&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Installation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Installing @xchainjs/xchain-util is straightforward using npm or yarn&lt;br&gt;
&lt;strong&gt;Using npm&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`&amp;gt; bash&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;npm install @xchainjs/xchain-util`&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Using yarn&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;`&amp;gt; bash&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;yarn add @xchainjs/xchain-util`&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This package is typically used &lt;strong&gt;together with other XChainJS clients&lt;/strong&gt;, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;@xchainjs/xchain-bitcoin&lt;/li&gt;
&lt;li&gt;@xchainjs/xchain-ethereum&lt;/li&gt;
&lt;li&gt;@xchainjs/xchain-thorchain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Use&lt;/strong&gt; @xchainjs/xchain-util&lt;br&gt;
Below are some &lt;strong&gt;real-world usage examples&lt;/strong&gt; showing why this library is essential for blockchain developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Working with Assets&lt;/strong&gt;&lt;br&gt;
XChainJS represents assets in a standardized format across chains.&lt;/p&gt;

&lt;p&gt;`&amp;gt; import { Asset, assetFromString } from '@xchainjs/xchain-util'&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;const asset: Asset | null = assetFromString('BTC.BTC')&lt;br&gt;
if (asset) {&lt;br&gt;
  console.log(asset.chain)   // BTC&lt;br&gt;
  console.log(asset.symbol)  // BTC&lt;br&gt;
}`&lt;br&gt;
✅ This ensures consistent asset handling across all supported blockchains.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Amount &amp;amp; Decimal Utilities&lt;/strong&gt;&lt;br&gt;
Blockchain apps often struggle with precision and decimals.&lt;br&gt;
@xchainjs/xchain-util provides safe helpers for that.&lt;/p&gt;

&lt;p&gt;`&amp;gt; import { assetAmount, baseAmount } from '@xchainjs/xchain-util'&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;const amount = assetAmount(1.5)&lt;br&gt;
const base = baseAmount(150000000)&lt;br&gt;
console.log(amount.amount().toString())&lt;br&gt;
console.log(base.amount().toString())`&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is crucial for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wallets&lt;/li&gt;
&lt;li&gt;DeFi apps&lt;/li&gt;
&lt;li&gt;Cross-chain swaps&lt;/li&gt;
&lt;li&gt;AMMs (like THORChain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Chain-Agnostic Design&lt;/strong&gt;&lt;br&gt;
One of the biggest advantages of XChainJS is chain abstraction.&lt;/p&gt;

&lt;p&gt;Thanks to @xchainjs/xchain-util, developers can write logic that works the same way for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bitcoin&lt;/li&gt;
&lt;li&gt;Ethereum&lt;/li&gt;
&lt;li&gt;THORChain&lt;/li&gt;
&lt;li&gt;Binance Chain&lt;/li&gt;
&lt;li&gt;Litecoin&lt;/li&gt;
&lt;li&gt;And more
This makes it ideal for cross-chain wallets and DeFi platforms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why&lt;/strong&gt; @xchainjs/xchain-util &lt;strong&gt;Is the Best Utility Library for XChainJS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s be honest: utility libraries are everywhere.&lt;br&gt;
So why is this one special?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Built for Multi-Chain from Day One&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Unlike generic crypto libraries, @xchainjs/xchain-util is designed specifically for cross-chain development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;TypeScript First&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Strong typing means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fewer runtime errors&lt;/li&gt;
&lt;li&gt;Better IDE autocomplete&lt;/li&gt;
&lt;li&gt;Safer refactoring&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Perfect for professional blockchain development.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Battle-Tested in Production&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This package is used internally by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;THORChain tools&lt;/li&gt;
&lt;li&gt;XChainJS clients&lt;/li&gt;
&lt;li&gt;Real DeFi applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That means it’s production-ready, not experimental.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Clean, Focused Scope&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It does one thing well:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Provide shared utilities for blockchain SDKs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No bloat. No unnecessary abstractions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When Should You Use&lt;/strong&gt; @xchainjs/xchain-util*&lt;em&gt;?&lt;/em&gt;*&lt;/p&gt;

&lt;p&gt;You should use it if you are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building a crypto wallet&lt;/li&gt;
&lt;li&gt;Developing a cross-chain DeFi app&lt;/li&gt;
&lt;li&gt;Working with THORChain&lt;/li&gt;
&lt;li&gt;Using XChainJS clients&lt;/li&gt;
&lt;li&gt;Writing blockchain code in TypeScript / JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of those apply — this package is a no-brainer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;br&gt;
@xchainjs/xchain-util may look like a small helper package, but it plays a critical role in the XChainJS ecosystem.&lt;/p&gt;

&lt;p&gt;It improves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code quality&lt;/li&gt;
&lt;li&gt;Consistency&lt;/li&gt;
&lt;li&gt;Developer experience&lt;/li&gt;
&lt;li&gt;Cross-chain reliability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re serious about blockchain development with JavaScript or TypeScript, this utility library is something you definitely want in your stack.&lt;/p&gt;

&lt;p&gt;🔑 SEO Summary (for dev.to)&lt;/p&gt;

&lt;p&gt;Primary keywords:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;xchainjs&lt;/li&gt;
&lt;li&gt;xchainjs util&lt;/li&gt;
&lt;li&gt;blockchain utility library&lt;/li&gt;
&lt;li&gt;TypeScript blockchain SDK&lt;/li&gt;
&lt;li&gt;&lt;p&gt;cross-chain JavaScript&lt;br&gt;
Secondary keywords:&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;THORChain development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;crypto utilities&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DeFi JavaScript tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;multi-chain wallet development&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>blockchain</category>
      <category>typescript</category>
      <category>javascript</category>
      <category>solidity</category>
    </item>
  </channel>
</rss>
