<?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: Rastislav ₡ORE</title>
    <description>The latest articles on DEV Community by Rastislav ₡ORE (@rastislavcore).</description>
    <link>https://dev.to/rastislavcore</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%2F1083350%2Ff673d2e1-dbe9-41cd-bb98-ebbdb79dcaba.png</url>
      <title>DEV Community: Rastislav ₡ORE</title>
      <link>https://dev.to/rastislavcore</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rastislavcore"/>
    <language>en</language>
    <item>
      <title>Building a Well-Known Token Registry</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Thu, 04 Sep 2025 08:54:53 +0000</pubDate>
      <link>https://dev.to/rastislavcore/building-a-well-known-token-registry-38k3</link>
      <guid>https://dev.to/rastislavcore/building-a-well-known-token-registry-38k3</guid>
      <description>&lt;h2&gt;
  
  
  The Problem: Token Discovery Chaos
&lt;/h2&gt;

&lt;p&gt;In the blockchain ecosystem, one of the most persistent challenges is &lt;strong&gt;token discovery and validation&lt;/strong&gt;. Every day, thousands of new tokens are created across different blockchains, but there's no standardized way for applications to discover and validate them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Current Pain Points
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fragmented Data Sources&lt;/strong&gt;: Token metadata is scattered across multiple APIs, websites, and databases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inconsistent Formats&lt;/strong&gt;: Each platform uses different data structures and validation methods&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Standard Discovery&lt;/strong&gt;: Applications must maintain their own token lists or rely on centralized services&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation Complexity&lt;/strong&gt;: Each blockchain has different address formats and validation rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance Overhead&lt;/strong&gt;: Developers spend significant time maintaining token lists and validation logic&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Solution: Well-Known Token Registry
&lt;/h2&gt;

&lt;p&gt;The solution can be a &lt;strong&gt;Well-Known Token Registry&lt;/strong&gt; that leverages the established &lt;code&gt;.well-known&lt;/code&gt; URI specification to provide a standardized, discoverable way to access token information across the web.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is .well-known?
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;.well-known&lt;/code&gt; URI specification (RFC 8615) defines a standard way to provide metadata about a service at a predictable location. It's used by major services like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OAuth providers&lt;/strong&gt; (&lt;code&gt;/.well-known/oauth-authorization-server&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenID Connect&lt;/strong&gt; (&lt;code&gt;/.well-known/openid_configuration&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security policies&lt;/strong&gt; (&lt;code&gt;/.well-known/security.txt&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WebFinger&lt;/strong&gt; (&lt;code&gt;/.well-known/webfinger&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following this standard, we ensure that our token registry is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Discoverable&lt;/strong&gt; at predictable URLs&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Interoperable&lt;/strong&gt; with existing web infrastructure&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Standardized&lt;/strong&gt; following established conventions&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Cacheable&lt;/strong&gt; by CDNs and browsers&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Architecture Overview
&lt;/h2&gt;

&lt;p&gt;The solution is built on &lt;strong&gt;Serverless Functions&lt;/strong&gt; with the following architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   Client App    │───▶│  Serverless      │───▶│   Storage       │
│   (Wallet/DEX)  │    │  Functions       │    │   (Token Data)  │
└─────────────────┘    └──────────────────┘    └─────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │  Information     │
                       │  (Address Check) │
                       └──────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  API Endpoints
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Status Endpoints
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Health Check
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://coreblockchain.net/.well-known/tokens/status/ping
&lt;span class="c"&gt;# Response: "pong"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Version Information
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://coreblockchain.net/.well-known/tokens/status/version
&lt;span class="c"&gt;# Response: {"version": "0.1.0", "environment": "prod"}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Detailed Health
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://coreblockchain.net/.well-known/tokens/status/health
&lt;span class="c"&gt;# Response: {"currentTime": "2024-01-15T10:30:00.000Z", "health": "ok"}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Token Endpoints
&lt;/h3&gt;

&lt;h4&gt;
  
  
  List All Tokens
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://coreblockchain.net/.well-known/tokens.json?prefix&lt;span class="o"&gt;=&lt;/span&gt;cb&amp;amp;limit&lt;span class="o"&gt;=&lt;/span&gt;50
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tokens"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"cb19c7acc4c292d2943ba23c2eaa5d9c5a6652a8710c"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"pagination"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"limit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"hasNext"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"cursor"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"6Ck1la0VxJ0djhidm1MdX2FyD"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Get Specific Token
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;GET https://coreblockchain.net/.well-known/tokens/cb19c7acc4c292d2943ba23c2eaa5d9c5a6652a8710c.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Response:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ticker"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CTN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CoreToken"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"decimals"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"symbol"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ƈ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CBC20"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://coretoken.net"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"logos"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"size"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;16&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"image/svg+xml"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://corecdn.info/mark/16/coretoken.svg"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;…&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Scalable&lt;/strong&gt;: Handles thousands of tokens efficiently&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Consistent&lt;/strong&gt;: Results remain stable across pagination&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Network-friendly&lt;/strong&gt;: Minimal data transfer&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Prefix Filtering&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Support for filtering tokens by address prefix:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Get all tokens starting with "cb11"&lt;/span&gt;
GET /.well-known/tokens.json?prefix&lt;span class="o"&gt;=&lt;/span&gt;cb11
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Route Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Status endpoints&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/.well-known/tokens/status/ping&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Ping&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/.well-known/tokens/status/version&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Version&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/.well-known/tokens/status/health&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Health&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Token endpoints&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/.well-known/tokens.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;listAllTokens&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/.well-known/tokens/:token.json&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;getToken&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Security Considerations
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Input Validation&lt;/strong&gt;: All inputs should be validated&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rate Limiting&lt;/strong&gt;: Ensure built-in DDoS protection is in place&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CORS&lt;/strong&gt;: Properly configure for cross-origin requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment Separation&lt;/strong&gt;: Different validation rules for production and development&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Future Improvements
&lt;/h2&gt;

&lt;p&gt;The storage can be connected to multiple sources. Some examples may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;KV storage&lt;/li&gt;
&lt;li&gt;IPFS database (like OrbitDB)&lt;/li&gt;
&lt;li&gt;Blockchain data itself&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits for the Ecosystem
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For Developers
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduced Complexity&lt;/strong&gt;: No need to maintain token lists&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardized API&lt;/strong&gt;: Consistent interface across all tokens&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built-in Validation&lt;/strong&gt;: Address validation handled automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High Performance&lt;/strong&gt;: Global CDN distribution&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For Users
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Faster Loading&lt;/strong&gt;: Optimized token discovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Better UX&lt;/strong&gt;: Consistent token information across applications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliability&lt;/strong&gt;: Based on proven web standards&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  For the Industry
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Interoperability&lt;/strong&gt;: Standardized token discovery&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decentralization&lt;/strong&gt;: No single point of failure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparency&lt;/strong&gt;: Open source and auditable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Can handle growing token ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The Well-Known Token Registry demonstrates how established web standards can solve modern blockchain challenges. By leveraging the &lt;code&gt;.well-known&lt;/code&gt; URI specification, we've created a solution that is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discoverable&lt;/strong&gt;: Easy to find and integrate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardized&lt;/strong&gt;: Follows established conventions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalable&lt;/strong&gt;: Built for the growing Blockchain ecosystem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable&lt;/strong&gt;: Powered by a global CDN infrastructure &amp;amp; selected storage&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository&lt;/strong&gt;: &lt;a href="https://github.com/bchainhub/well-known" rel="noopener noreferrer"&gt;well-known&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RFC 8615&lt;/strong&gt;: &lt;a href="https://tools.ietf.org/html/rfc8615" rel="noopener noreferrer"&gt;Well-Known URIs specification&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wellknown</category>
      <category>token</category>
      <category>blockchain</category>
      <category>registry</category>
    </item>
    <item>
      <title>Speed-run a SvelteKit app with the MOTA starter</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Sat, 30 Aug 2025 21:41:58 +0000</pubDate>
      <link>https://dev.to/rastislavcore/speed-run-a-sveltekit-app-with-the-mota-starter-2ggc</link>
      <guid>https://dev.to/rastislavcore/speed-run-a-sveltekit-app-with-the-mota-starter-2ggc</guid>
      <description>&lt;p&gt;Want a fresh, batteries-included SvelteKit app without wading through prompts and boilerplate? The &lt;strong&gt;MOTA&lt;/strong&gt; starter wraps the official &lt;code&gt;sv&lt;/code&gt; CLI with a one-shot installer that scaffolds your app, merges a template, sets sensible dotfiles, handles licensing, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run that, follow the prompts, and you’re coding. The script calls &lt;code&gt;npx sv create&lt;/code&gt; behind the scenes, then automates the rest. (&lt;a href="https://github.com/bchainhub/sveltekit-starter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get (automatically)
&lt;/h2&gt;

&lt;p&gt;After you run the command, the installer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Creates a SvelteKit project&lt;/strong&gt; via &lt;code&gt;npx sv create&lt;/code&gt; (you can still pass extra &lt;code&gt;sv&lt;/code&gt; flags if you want—see below).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detects the project folder&lt;/strong&gt; and &lt;code&gt;cd&lt;/code&gt;s into it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Installs a curated set of base deps&lt;/strong&gt; for this starter.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional Auth setup&lt;/strong&gt; (interactive):

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;None&lt;/code&gt; (default)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@auth/sveltekit&lt;/code&gt; (runs &lt;code&gt;npx auth secret&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lucia&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional Data layer&lt;/strong&gt; picker (interactive): Prisma, Drizzle ORM, Supabase, Neon, MongoDB, Redis, or none—kicks off tiny init steps where relevant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merges a template repository&lt;/strong&gt; (default: the &lt;strong&gt;MOTA&lt;/strong&gt; template) so you start with a real app structure instead of a blank skeleton.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Initializes git&lt;/strong&gt; (if needed) and can make a quiet “scaffold” commit for a clean baseline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs &lt;code&gt;npm-check-updates&lt;/code&gt; locally&lt;/strong&gt; to bump ranges, reinstalls, and removes the tool—so you begin on fresh deps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Augments &lt;code&gt;.gitignore&lt;/code&gt;&lt;/strong&gt; (OS cruft, logs, editor dirs) and can optionally &lt;strong&gt;ignore lockfiles&lt;/strong&gt; (default &lt;strong&gt;Yes&lt;/strong&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copies shared assets&lt;/strong&gt; from the starter repo when you choose them:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.editorconfig&lt;/code&gt; (default &lt;strong&gt;Yes&lt;/strong&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.github/ISSUE_TEMPLATE&lt;/code&gt; (default &lt;strong&gt;No&lt;/strong&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sets a LICENSE&lt;/strong&gt; (interactive):

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CORE&lt;/strong&gt; (custom, non-SPDX) with the right &lt;code&gt;package.json&lt;/code&gt; field, or&lt;/li&gt;
&lt;li&gt;Common &lt;strong&gt;SPDX&lt;/strong&gt; licenses (MIT, Apache-2.0, GPL-3.0-or-later, AGPL-3.0-or-later, LGPL-3.0-or-later, BSD-2/3, MPL-2.0, Unlicense, CC0-1.0, ISC, EPL-2.0).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optional final local commit&lt;/strong&gt; of all changes (never pushes).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When it’s done, open the new folder and run your dev server with your package manager of choice (the script already installed deps).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this saves time
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One command, all the things&lt;/strong&gt; – You don’t have to remember the right order of &lt;code&gt;sv&lt;/code&gt; + packages + auth + DB + dotfiles + license. It’s orchestrated for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real template, not just a skeleton&lt;/strong&gt; – By default it merges the &lt;strong&gt;MOTA&lt;/strong&gt; template so you start with a working app structure and assets. Less yak-shaving, more shipping.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Team-friendly consistency&lt;/strong&gt; – Everyone spins up the same baseline (git commit included), which makes diffs and reviews saner.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Up-to-date deps from the start&lt;/strong&gt; – The &lt;code&gt;npm-check-updates&lt;/code&gt; pass means you aren’t starting behind on versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sane housekeeping&lt;/strong&gt; – &lt;code&gt;.gitignore&lt;/code&gt;, &lt;code&gt;.editorconfig&lt;/code&gt;, and optional &lt;code&gt;.github&lt;/code&gt; templates come prepped, so you don’t copy/paste from old projects.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Options you might want
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use a different template&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--template&lt;/span&gt; https://github.com/your-org/your-sveltekit-template.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default template is the &lt;strong&gt;MOTA&lt;/strong&gt; repo. Swap it for your own when needed. (&lt;a href="https://github.com/bchainhub/sveltekit-starter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Forward flags to &lt;code&gt;sv create&lt;/code&gt;&lt;/strong&gt;
Anything after &lt;code&gt;--&lt;/code&gt; goes straight to &lt;code&gt;sv&lt;/code&gt;. For example:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Requirements &amp;amp; platform notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node 18+&lt;/strong&gt; (20+ recommended), &lt;strong&gt;git&lt;/strong&gt;, &lt;strong&gt;curl&lt;/strong&gt;, and at least one of: &lt;strong&gt;pnpm&lt;/strong&gt;, &lt;strong&gt;bun&lt;/strong&gt;, &lt;strong&gt;yarn&lt;/strong&gt;, or &lt;strong&gt;npm&lt;/strong&gt;. The script auto-detects what you have.&lt;/li&gt;
&lt;li&gt;Tested on &lt;strong&gt;macOS 14/13&lt;/strong&gt; and &lt;strong&gt;Ubuntu 22.04+&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Security tip
&lt;/h2&gt;

&lt;p&gt;Running remote scripts is super convenient—and something you should always eyeball first. You can review it before executing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh | less
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then run it once you’re comfortable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bash &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.jsdelivr.net/gh/bchainhub/sveltekit-starter/sv-starter.sh&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The repo’s README documents this flow and the safety notes. (&lt;a href="https://github.com/bchainhub/sveltekit-starter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Handy links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Installer / README&lt;/strong&gt; (full step-by-step &amp;amp; flags): (&lt;a href="https://github.com/bchainhub/sveltekit-starter" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MOTA template repo&lt;/strong&gt; (the default template the script merges): (&lt;a href="https://github.com/bchainhub/sveltekit-mota" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Wrap-up
&lt;/h3&gt;

&lt;p&gt;If you find yourself starting SvelteKit projects often-or onboarding teammates-the &lt;strong&gt;MOTA&lt;/strong&gt; starter condenses 15-30 minutes of setup into a guided minute. One command, clear prompts, production-minded defaults. Copy the TL;DR and go build something.&lt;/p&gt;

</description>
      <category>sveltekit</category>
      <category>svelte</category>
      <category>mota</category>
      <category>programming</category>
    </item>
    <item>
      <title>0G Transmission service - TxMS</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Tue, 17 Sep 2024 16:33:59 +0000</pubDate>
      <link>https://dev.to/rastislavcore/0g-transmission-service-txms-2k76</link>
      <guid>https://dev.to/rastislavcore/0g-transmission-service-txms-2k76</guid>
      <description>&lt;h2&gt;
  
  
  What is 0G Transmission?
&lt;/h2&gt;

&lt;p&gt;0G refers to signaling and transmission used prior to the introduction of mobile data technologies such as GPRS, 3G, 4G, etc. With this technology, you can enable communication in areas without internet connectivity, as it only requires a basic cellular network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is it important?
&lt;/h2&gt;

&lt;p&gt;Even in well-developed areas, data transmission is not always feasible due to coverage limitations or cost constraints. For example, imagine enjoying wine 🍷 in a cellar and wanting to pay with cryptocurrency. This is possible using &lt;a href="https://github.com/bchainhub/txms.js" rel="noopener noreferrer"&gt;TxMS&lt;/a&gt;, which operates without data connections.&lt;/p&gt;

&lt;h2&gt;
  
  
  What can be transferred?
&lt;/h2&gt;

&lt;p&gt;TxMS can handle any data in hexadecimal format, as described in the &lt;a href="https://en.wikipedia.org/wiki/Binary-to-text_encoding" rel="noopener noreferrer"&gt;binary-to-text encoding&lt;/a&gt; process. You can utilize the &lt;a href="https://txms.info" rel="noopener noreferrer"&gt;Core Blockchain endpoints&lt;/a&gt; or set up your own &lt;a href="https://github.com/DataLayerHost/txms-server" rel="noopener noreferrer"&gt;TxMS server&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let's try it!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Create and Sign a Core Blockchain Transaction
&lt;/h3&gt;

&lt;p&gt;First, you need to compose and sign a Core Blockchain transaction.&lt;/p&gt;

&lt;p&gt;If you don't have the &lt;code&gt;go-core&lt;/code&gt; client installed, you can &lt;a href="https://github.com/core-coin/go-core/releases" rel="noopener noreferrer"&gt;download it here&lt;/a&gt; for your platform.&lt;/p&gt;

&lt;p&gt;Once downloaded, make the file executable by navigating to the directory containing &lt;code&gt;gocore&lt;/code&gt; and running the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;chmod +x gocore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can now run the client with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./gocore --verbosity 2 --nat any console
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens an interactive console where you can execute commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create a New Account
&lt;/h3&gt;

&lt;p&gt;To sign transactions, you need an account. You can either create a new account or import an existing one (UTC file). For now, let’s create a new account:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;your_passphrase&lt;/code&gt; with something you will remember! If you'd rather not use a passphrase, simply omit it. The UTC file will be stored in &lt;code&gt;~/Library/Core/keystore/&lt;/code&gt; (on Mac).&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: Check Sync Status (Optional)
&lt;/h3&gt;

&lt;p&gt;You may not be fully synchronized with the Core Blockchain, which is not strictly required but can be helpful. Use the following command to check your sync status:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;xcb.syncing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you're synchronized, this command returns &lt;code&gt;false&lt;/code&gt;. Synchronization consumes bandwidth and computing power, so you might want to leave it running when you're not actively using it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: Create and Prepare a Transaction
&lt;/h3&gt;

&lt;p&gt;To get the nonce for your account (which should be &lt;code&gt;0&lt;/code&gt; for the first transaction), run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;web3.xcb.getTransactionCount("cb…")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure your client is synchronized to get the correct nonce.&lt;/p&gt;

&lt;p&gt;Now, compose your first transaction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var tx = {nonce: '0x0', energy: 21000, energyPrice: 1000000000, from: "cb…", to: "cb…", value: web3.toOre(1)}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's a breakdown of the fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;nonce&lt;/code&gt;: The transaction count (in hexadecimal format).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;energy&lt;/code&gt;: The computational effort required, 21000 is standard for simple transfers.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;energyPrice&lt;/code&gt;: The amount of Core you're willing to pay per unit of energy (measured in 'nucle' from &lt;a href="https://github.com/core-coin/core-denomination/blob/master/units.json" rel="noopener noreferrer"&gt;Core denomination table&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;from&lt;/code&gt;: The sender's ICAN address.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;to&lt;/code&gt;: The recipient's ICAN address.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;value&lt;/code&gt;: The amount of Core to send, using the helper function &lt;code&gt;web3.toOre&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 5: Sign the Transaction
&lt;/h3&gt;

&lt;p&gt;Before signing, you'll need to unlock your account:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;personal.unlockAccount("cb…")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll be prompted for your passphrase (or just press Enter if you didn't set one). The account will remain unlocked for 300 seconds (5 minutes).&lt;/p&gt;

&lt;p&gt;Next, sign the transaction and store it in the &lt;code&gt;txSigned&lt;/code&gt; variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var txSigned = xcb.signTransaction(tx)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 6: Prepare the Raw Transaction for TxMS
&lt;/h3&gt;

&lt;p&gt;To prepare the raw transaction, print it with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;txSigned.raw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the raw transaction, as you'll need it for the next step.&lt;/p&gt;

&lt;p&gt;That is all what we need from Core console now. Keep it running for synchronization or shut down using the command &lt;code&gt;Ctrl + D&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 7: Install TxMS
&lt;/h3&gt;

&lt;p&gt;If you haven't already installed TxMS, you'll need &lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;Node.js&lt;/a&gt; installed. I recommend using &lt;a href="https://github.com/nvm-sh/nvm" rel="noopener noreferrer"&gt;nvm&lt;/a&gt; for Mac users. Once you've finished installing Node.js, proceed to the next step.&lt;/p&gt;

&lt;p&gt;Install the TxMS library globally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i -g txms.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, restart your terminal and verify that &lt;code&gt;txms&lt;/code&gt; is recognized by typing command for opening help context:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;txms -h
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Step 8: Encode the Transaction with TxMS
&lt;/h3&gt;

&lt;p&gt;To encode your transaction with TxMS, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;txms -e=rawtransaction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace &lt;code&gt;rawtransaction&lt;/code&gt; with the transaction data you copied earlier. TxMS will return the encoded message. You can also use the &lt;code&gt;-dl&lt;/code&gt; parameter to download the encrypted message to your working directory as &lt;code&gt;.txms.txt&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 9: Send the TxMS Message via SMS
&lt;/h3&gt;

&lt;p&gt;Now, copy the encoded message and send it via SMS. The message will typically split into 2-3 SMS messages, but MMS is also supported.&lt;/p&gt;

&lt;p&gt;Make sure the TxMS service is &lt;a href="https://txms.info" rel="noopener noreferrer"&gt;running&lt;/a&gt; before sending the message to the appropriate number:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mainnet: +12019715152&lt;/li&gt;
&lt;li&gt;Testnet (Devín): +12014835939&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 10: Confirm the Transaction on the Blockchain
&lt;/h3&gt;

&lt;p&gt;After about 10 seconds, the transaction should appear on the Blockchain. You can verify it using &lt;a href="https://blockindex.net" rel="noopener noreferrer"&gt;Blockindex&lt;/a&gt; by entering the sender or recipient address.&lt;/p&gt;

&lt;p&gt;Congratulations! You've just completed your first TxMS transaction. If you encounter issues, feel free to ask for help on our &lt;a href="https://discord.gg/YkA8ydkZ" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;, or open a thread in the &lt;a href="https://discord.com/channels/469227792538533888/1285602978836774953" rel="noopener noreferrer"&gt;forum&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We would be happy to hear about new use cases and your ideas for applying the technology. Don't hesitate to &lt;a href="https://discord.com/channels/469227792538533888/1285602978836774953" rel="noopener noreferrer"&gt;reach out to us&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>txms</category>
      <category>sms</category>
      <category>0g</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>The Future of Financial Compliance Supported by Blockchain</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Sat, 31 Aug 2024 12:37:13 +0000</pubDate>
      <link>https://dev.to/rastislavcore/the-future-of-financial-compliance-supported-by-blockchain-3dao</link>
      <guid>https://dev.to/rastislavcore/the-future-of-financial-compliance-supported-by-blockchain-3dao</guid>
      <description>&lt;p&gt;In an era where financial crimes like money laundering and terrorist financing pose significant threats to global security, innovative solutions are adding value as significant tools. One such solution is the &lt;a href="https://unite.un.org/goaml/" rel="noopener noreferrer"&gt;goAML platform&lt;/a&gt;, a comprehensive Anti-Money Laundering (AML) software developed by the United Nations Office on Drugs and Crime (UNODC). This system empowers Financial Intelligence Units (FIUs) with the tools necessary to collect, manage, analyze, and exchange financial data related to suspicious activities. The effectiveness of compliance software can be significantly enhanced, providing a robust framework for secure, transparent, and efficient data exchange.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Role of goAML 5.0 in Combating Financial Crimes
&lt;/h2&gt;

&lt;p&gt;On 9 July, a landmark release of goAML was &lt;a href="https://unite.un.org/goportfolio/news/unodc-publishes-landmark-release-goaml-50" rel="noopener noreferrer"&gt;published&lt;/a&gt;, introducing version 5.0, UNODC's Next Generation solution for Anti-Money Laundering and Countering Terrorist Financing. This latest release marks a major milestone for the project, offering Financial Intelligence Centres worldwide more advanced technologies for fighting financial crime. goAML 5.0 is the result of hard work and intensive collaboration between FIUs and UNODC, showcasing the power of global partnerships.&lt;/p&gt;

&lt;h3&gt;
  
  
  Notable Features of goAML 5.0
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cryptocurrency Support&lt;/strong&gt;: With the rise of virtual assets as a popular method for money laundering, goAML 5.0 now includes cryptocurrency support, allowing the reporting and processing of transactions involving digital currencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hybrid Reporting and Full Customisation&lt;/strong&gt;: This feature enables the combination of transaction and activity reporting in a single report, with flexible options for including persons, entities, or accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with Egmont Secure Web&lt;/strong&gt;: FIUs using goAML can now export and import information to each other, enhancing international cooperation and data sharing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessible Web Interface&lt;/strong&gt;: The new interface ensures that the reporting community of over 120,000 users can operate without restrictions in their daily tasks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artificial Intelligence Features&lt;/strong&gt;: goAML 5.0 introduces Natural Language Processing (NLP) and Optical Character Recognition (OCR) to ingest unstructured data, increasing automation and efficiency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Expanded Reporting Capabilities&lt;/strong&gt;: The addition of 130+ new fields and virtually unlimited reporting possibilities empower FIUs to capture more detailed and comprehensive data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;goAML 5.0 is already deployed in close to 60 countries, where it processes over 300,000 transactions daily, contributing to a global total of one billion transactions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Backbone of Secure and Decentralized Transactions
&lt;/h2&gt;

&lt;p&gt;Core Blockchain brings a new dimension to AML systems with its fast, secure, and decentralized network. Its key features make it an ideal platform for transmitting sensitive financial information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Security and Decentralization&lt;/strong&gt;: Core Blockchain ensures that data transmitted through its network is secure and immutable. The decentralized nature of the blockchain prevents unauthorized access and tampering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No PoS system&lt;/strong&gt;: Core and its ecosystem leverage proofs that work with contributions to computing; this is a well-proven concept for years. The era of Blockchain started with it, and we have improved it to be more efficient.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speed&lt;/strong&gt;: Transactions on Core Blockchain are verified approximately every seven seconds, making it possible to transmit information quickly without sacrificing security.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offline Capabilities&lt;/strong&gt;: With 0G (SMS, MMS) connectivity, Core Blockchain can operate even in environments without traditional internet access, ensuring that critical data can be transmitted regardless of infrastructure limitations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layer-1 applications&lt;/strong&gt;: Applications built on the Core network, such as CorePass.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PayTo&lt;/strong&gt;: Native support of &lt;a href="https://payto.money" rel="noopener noreferrer"&gt;PayTo protocol&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ICAN&lt;/strong&gt;: &lt;a href="https://cip.coreblockchain.net/cip/cbc/cip-100/" rel="noopener noreferrer"&gt;ICAN addresses&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Oracles&lt;/strong&gt;: Built Oracles, which connect current financial and compliance applications. Like &lt;a href="https://github.com/core-laboratories/XmlGoaml" rel="noopener noreferrer"&gt;XmlGoaml oracle&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;KYX&lt;/strong&gt;: KYT (know your transaction), KYP (know your transaction partner), KYC on demand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features make Core Blockchain a powerful tool, enabling the secure and efficient transmission of financial data, even under challenging conditions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancing Compliance Through Verified User Information
&lt;/h2&gt;

&lt;p&gt;CorePass, a Layer-1 application on the Core Blockchain, adds another layer of security and compliance to the AML process. CorePass allows users to provide verified information through a system that prioritizes user consent and privacy. This capability is crucial for Know Your Customer (KYC), Know Your Customer's Customer (KYCC), and Know Your Business (KYB) processes, which are central to AML compliance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;KYC and KYCC&lt;/strong&gt;: CorePass ensures that the identities of individuals and entities involved in financial transactions are verified, reducing the risk of fraud and money laundering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Beneficial Ownership&lt;/strong&gt;: Through CorePass, FIUs can access verified information about the beneficial owners of businesses, providing greater transparency and accountability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk Assessment and Financial Audit Trails&lt;/strong&gt;: CorePass can generate comprehensive audit trails, making it easier for FIUs to track and assess the risk associated with financial transactions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A Comprehensive Compliance Ecosystem
&lt;/h2&gt;

&lt;p&gt;The integration of Core Blockchain and CorePass with goAML 5.0 creates a powerful compliance ecosystem that meets the highest standards of security, transparency, and efficiency. This integration supports various AML processes, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Secure Information Transmission&lt;/strong&gt;: Core Blockchain ensures that all data exchanged within the goAML system is secure and resistant to tampering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced Compliance Tools&lt;/strong&gt;: CorePass provides verified, user-consented information, enhancing the accuracy and reliability of KYC, KYCC, and KYB processes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Compliance Oracles&lt;/strong&gt;: Core Labs offers &lt;a href="https://github.com/core-laboratories/XmlGoaml" rel="noopener noreferrer"&gt;XmlGoaml&lt;/a&gt;, a .NET project designed to process XML data aligned with goAML XSD standards. This tool enables seamless integration between Core Blockchain and the goAML environment, ensuring compliance with global AML regulations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Future of AML with Core Blockchain and goAML 5.0
&lt;/h2&gt;

&lt;p&gt;The financial system is undergoing a transformation, with digital currencies, programmable tokens, and FIAT bridges becoming increasingly prominent.&lt;/p&gt;

&lt;p&gt;You should follow few interesting aspects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digital money / CBDC&lt;/li&gt;
&lt;li&gt;Stable programmable tokens (not coins)&lt;/li&gt;
&lt;li&gt;FIAT bridges into digital ecosystem&lt;/li&gt;
&lt;li&gt;Compliance oracles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By basing your ecosystem or Dapps on Core Blockchain's decentralized architecture and CorePass's verified information system, you can offer an unparalleled level of security, efficiency, and on-demand compliance. This innovative approach not only contributing to global standards, but keep your data safe and full decentralized and anonymous.&lt;/p&gt;

</description>
      <category>goaml</category>
      <category>csharp</category>
      <category>blockchain</category>
      <category>defi</category>
    </item>
    <item>
      <title>Licensing the Open Source Software</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Mon, 26 Aug 2024 10:22:01 +0000</pubDate>
      <link>https://dev.to/rastislavcore/licensing-the-open-source-software-547f</link>
      <guid>https://dev.to/rastislavcore/licensing-the-open-source-software-547f</guid>
      <description>&lt;p&gt;The rise of open-source software (OSS) has fundamentally changed the landscape of software development, offering an alternative to the traditional closed-source model. The evolution of OSS continues, and the Core License is helps with licensing and flexibility. Whether you're working on a small personal project or managing a large corporate project, the Core License offers significant benefits that can amplify the impact of your work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding the Core License
&lt;/h2&gt;

&lt;p&gt;The Core License is a permissive open-source license that grants users extensive freedom to use, modify, merge, publish, distribute, sublicense, and even sell copies of the software. However, it includes one crucial condition: all distribution of the software in source code form, including modifications and contributions, must be &lt;em&gt;disclosed&lt;/em&gt; and made &lt;em&gt;publicly available&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;This transparency requirement ensures that improvements and innovations built on the software benefit the entire community, inviting collaboration and driving collective progress. This will significantly improve the security of the project and transparency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Core License is Beneficial for Small Projects
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Maximize Visibility and Impact:&lt;/strong&gt; For individual developers or small teams, gaining visibility can be a challenge. By adopting the Core License, your project is inherently open to contributions and improvements from the wider community, potentially attracting more users and collaborators. This can lead to your project growing far beyond what you could achieve alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Leverage Community Contributions:&lt;/strong&gt; When your project is open and accessible, other developers can contribute to it, fixing bugs, adding features, and improving documentation. This can significantly reduce your workload and allow you to focus on the core aspects of your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning and Collaboration:&lt;/strong&gt; For developers looking to learn, open-source projects licensed under the Core License offer a unique opportunity to see how others approach problem-solving. Collaborating on such projects can accelerate your growth as a developer and expand your professional network.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Core License is Essential for Corporate Projects
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Innovation:&lt;/strong&gt; In a corporate setting, innovation is key to staying competitive. The Core License allows companies to leverage external contributions and innovations, speeding up development cycles and reducing time to market.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensure Compliance and Security:&lt;/strong&gt; The transparency required by the Core License means that all modifications and contributions are publicly available. This makes it easier to audit code for security vulnerabilities, ensuring that your software remains robust and secure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Collaboration:&lt;/strong&gt; Many large corporations are shifting towards open collaboration to solve industry-wide challenges. By adopting the Core License, your company can contribute to and benefit from a collective pool of knowledge and resources, leading to better solutions faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adapt to Changing Market Conditions:&lt;/strong&gt; In today's fast-paced tech environment, the ability to pivot and adapt quickly is crucial. The flexibility of the Core License allows your company to rapidly incorporate new technologies and approaches without being constrained by proprietary software models.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The End of Closed Source:&lt;/strong&gt; The era of closed-source software is rapidly drawing to a close. The benefits of open-source development—collaboration, transparency, and innovation—are too compelling to ignore. The Core License represents a modern approach to OSS, one that balances freedom with responsibility. It encourages developers to share their work and contribute to a larger ecosystem while retaining the ability to monetize their efforts.&lt;/p&gt;

&lt;p&gt;By adopting the Core License, you're not just choosing a license; you're choosing to be part of a global community that believes in the power of collective progress. Whether you're an individual developer or part of a corporate team, the Core License offers a framework that can help you achieve your goals more effectively.&lt;/p&gt;

&lt;p&gt;Text of the license: &lt;a href="https://github.com/bchainhub/core-license/blob/master/LICENSE" rel="noopener noreferrer"&gt;https://github.com/bchainhub/core-license/blob/master/LICENSE&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>corelicense</category>
    </item>
    <item>
      <title>The Hidden Cost of Centralization: A Cautionary Tale from the World of Domains</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Fri, 04 Aug 2023 17:45:37 +0000</pubDate>
      <link>https://dev.to/rastislavcore/the-hidden-cost-of-centralization-a-cautionary-tale-from-the-world-of-domains-43ob</link>
      <guid>https://dev.to/rastislavcore/the-hidden-cost-of-centralization-a-cautionary-tale-from-the-world-of-domains-43ob</guid>
      <description>&lt;p&gt;In our modern digital era, domain names are our real estate, the cornerstones of our online identity and our business's digital presence. As our reliance on digital platforms grows, we become more creative, adopting unique and eye-catching domain names like emoji domains. These emoji domains were a fresh, fun twist on the traditional digital address format. Unfortunately, as some of us recently discovered, there's a cost to being too innovative in this arena.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Journey Through Emoji Domains
&lt;/h3&gt;

&lt;p&gt;Emoji domains, a captivating innovation in the digital world, are domain names containing one or more emojis, e.g., 😉.ga. They became a unique and vibrant way to mark our online presence. However, they're under the jurisdiction of centralized authorities like ICANN and regional domain registries. My recent experience highlighted the pitfalls of this centralization.&lt;/p&gt;

&lt;p&gt;I acquired several emoji domains through Subreg.cz, hosted on the GA TLD. They were a proud digital asset for me due to their rarity and uniqueness. But things started to unravel when I noticed some services hosted on these domains were failing. Further investigation revealed that Cloudflare was delisting them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Unforeseen Complications
&lt;/h3&gt;

&lt;p&gt;To make matters worse, the domain records themselves began to disappear, even though they were paid and active. I reached out to Subreg.cz to shed light on this mysterious occurrence. After a lengthy back and forth, the shocking truth was unveiled: the registry of GA domains was changing their rules and delisting all emoji domains.&lt;/p&gt;

&lt;p&gt;The entire episode resulted in sudden, unannounced deletion of the domains I owned and loss of services hosted on them. It was as if the rug had been pulled out from under me. Even worse, Subreg.cz provided no notification or refund. The company, in essence, shirked responsibility, citing that the actual issue was with Freenom, the previous GA domains operator.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Fallout
&lt;/h3&gt;

&lt;p&gt;The implications of this abrupt delisting were severe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All services hosted on the emoji GA domains were down and exposed to potential security breaches.&lt;/li&gt;
&lt;li&gt;The money paid to keep the domains registered was lost.&lt;/li&gt;
&lt;li&gt;Valuable time and resources were wasted in addressing the issue.&lt;/li&gt;
&lt;li&gt;There were no refunds or notifications from the registrar or the registry.&lt;/li&gt;
&lt;li&gt;Lastly, the damage to the digital infrastructure was substantial.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As a result of this debacle, my decision is clear: I will steer clear of GA domains and let go of emoji domains altogether.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Need for Decentralization
&lt;/h3&gt;

&lt;p&gt;This incident serves as a stark reminder that the future of domains should ideally not be tied to the ICANN or similar centralized bodies. The arbitrariness of their decisions and lack of transparency or responsibility can have significant consequences for individuals and businesses alike.&lt;/p&gt;

&lt;p&gt;That's why we should start considering alternatives, such as decentralized domains hosted on Blockchain. While onion domains can also serve as an alternative, their practical application remains limited. Blockchain domains, on the other hand, are immune to the whims of centralized authorities and offer greater security and control over our digital assets.&lt;/p&gt;

&lt;p&gt;In conclusion, as we continue to navigate our digital future, it's crucial to critically evaluate the platforms and systems we use. We should advocate for and support decentralized, transparent, and user-friendly domain systems that empower rather than disenfranchise us. The stakes are too high to leave our digital presence in the hands of unreliable centralized entities.&lt;/p&gt;

&lt;p&gt;Blockchain-based domains exemplify this by ensuring that your digital identity remains immune to external disruptions, such as arbitrary changes in domain registry rules. Just like our DNA, these domains are immutably tied to us, unalterable by external forces, ensuring that your digital "self" stays intact and inviolable.&lt;/p&gt;

&lt;p&gt;The incident I experienced serves as a stark reminder that the digital components of our identity are not just ornamental but are integral and as real as our physical selves. The current systems, under centralized control, lack the ability to recognize and respect this new facet of our identity. It's as if our digital self is under constant attack, not just from cyber threats, but also from the authorities supposed to protect it.&lt;/p&gt;

&lt;p&gt;This forces us to think in new directions, to consider how we might enable a decentralized autonomous organization (DAO) environment. DAOs, built on blockchain technology, can provide the level of security, autonomy, and respect that our digital identities deserve.&lt;/p&gt;

&lt;p&gt;As we march towards an increasingly digital future, it's important to remember that our digital selves are not mere extensions of us; they are us. We must not shy away from striving to protect and nurture them in the same way we would our physical selves.&lt;/p&gt;

&lt;p&gt;We're in an era of a new type of revolution: an identity revolution. By embracing blockchain technology and DAOs, we have a real opportunity to redefine and reclaim our digital identities, paving the way for a more secure, autonomous, and equitable digital future.&lt;/p&gt;

</description>
      <category>domains</category>
      <category>icann</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>WhiteHat report: Cloudflare Email worker</title>
      <dc:creator>Rastislav ₡ORE</dc:creator>
      <pubDate>Tue, 16 May 2023 13:37:49 +0000</pubDate>
      <link>https://dev.to/rastislavcore/whitehat-report-cloudflare-email-worker-lpp</link>
      <guid>https://dev.to/rastislavcore/whitehat-report-cloudflare-email-worker-lpp</guid>
      <description>&lt;p&gt;Email worker and email redirection are dropping the valid emails.&lt;/p&gt;

&lt;p&gt;Email routes and workers exclude addresses with a "plus" addressing field. This made the service unsuccessful in processing the data. No error nor notification is provided.&lt;/p&gt;

&lt;h2&gt;
  
  
  Steps to reproduce
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create an email redirection processed by the worker and print using the &lt;code&gt;console.log&lt;/code&gt; (for example) &lt;code&gt;event.to&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Enable email worker on email in the dashboard. e.g.: &lt;code&gt;user@sld.email&lt;/code&gt; to process emails in the worker&lt;/li&gt;
&lt;li&gt;Execute the worker with an email with a 'plus' addressing field. e.g.: &lt;code&gt;user+info@sld.email&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Email is not captured at all. And the worker didn't run.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Impact
&lt;/h2&gt;

&lt;p&gt;The impact is high because you miss emails, even if they are addressed correctly.&lt;br&gt;
All cases with &lt;code&gt;event.to&lt;/code&gt; have been affected so far. There may be more cases.&lt;br&gt;
The impact is to lose even valid emails in the Cloudflare system.&lt;br&gt;
With the configuration: catch-all: none or drop; the valid emails are lost.&lt;/p&gt;

&lt;h2&gt;
  
  
  Environment
&lt;/h2&gt;

&lt;p&gt;Please, set the catch-all to drop. And create a custom address &lt;code&gt;recipient@cloudflare.com&lt;/code&gt; or &lt;code&gt;test@cloudflare.com&lt;/code&gt;. Then those addresses should run the worker. On my end, I am facing issues with "plus" addresses, such as &lt;code&gt;recipient+123@cloudflare.com&lt;/code&gt;; &lt;code&gt;test+123@cloudflare.com&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rationale
&lt;/h2&gt;

&lt;p&gt;Certain important communications may be inadvertently excluded due to filtering processes, which can harm Cloudflare's operational efficiency. The perpetrator may attribute this to a spam filter, thereby influencing Cloudflare's business logic. By employing a catch-all address, the system may be vulnerable to DoS attacks or result in the loss of client funds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Classification
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cwe.mitre.org/data/definitions/840.html" rel="noopener noreferrer"&gt;CWE840&lt;/a&gt;: Business Logic Errors&lt;/p&gt;

&lt;h2&gt;
  
  
  Referrence
&lt;/h2&gt;

&lt;p&gt;Originally posted in HackerOne #1988088&lt;/p&gt;

&lt;h2&gt;
  
  
  Result
&lt;/h2&gt;

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

</description>
      <category>cloudflare</category>
      <category>worker</category>
      <category>bug</category>
      <category>whitehat</category>
    </item>
  </channel>
</rss>
