<?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: TBD</title>
    <description>The latest articles on DEV Community by TBD (@tbdevs).</description>
    <link>https://dev.to/tbdevs</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%2Forganization%2Fprofile_image%2F7397%2F38c72009-129e-4132-a574-9ac9480fc34f.png</url>
      <title>DEV Community: TBD</title>
      <link>https://dev.to/tbdevs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tbdevs"/>
    <language>en</language>
    <item>
      <title>What is Web5?</title>
      <dc:creator>Angie Jones</dc:creator>
      <pubDate>Thu, 14 Nov 2024 21:13:57 +0000</pubDate>
      <link>https://dev.to/tbdevs/what-is-web5-233o</link>
      <guid>https://dev.to/tbdevs/what-is-web5-233o</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/KgZYtsj9-V0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Web 5 is a decentralized platform that provides a new identity layer for the web to enable decentralized apps and protocols.&lt;/p&gt;

&lt;p&gt;In the current web model, users do not own their data or identity. They are given accounts by companies and their data is held captive in app silos. To create a new class of decentralized apps and protocols that put individuals at the center, we must empower them with self-owned identity and restore control over their data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Components of Web 5
&lt;/h2&gt;

&lt;p&gt;There are three main pillars of the decentralized web platform, all of which are based on open standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o23aim9vcy6p5ljnegk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o23aim9vcy6p5ljnegk.png" alt="The pillars of Web5 are Decentralized Identifiers (self-owned identifiers that enable decentralized identity authentication and routing), Verifiable Credentials (data formats and models for cryptographic presentation and verification of claims), and Decentralized Web Nodes (data storage and message relay nodes that serve as the foundation for decentralized apps and protocols)." width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Decentralized Identifiers
&lt;/h2&gt;

&lt;p&gt;The identifiers we know and use today are owned by the government, a company, an organization, or some other intermediary. For example, our email addresses and social media handles are identifiers associated with us but are owned and controlled by the service providers. These companies have the right to ban, disable, or delete these identifiers and we have little to no control over this.&lt;/p&gt;

&lt;p&gt;So before we can realize truly decentralized applications, we need decentralized identifiers that users own and control. This removes the dependency on centralized entities to authenticate and represent us.&lt;/p&gt;

&lt;p&gt;​​&lt;a href="https://www.w3.org/TR/did-core/" rel="noopener noreferrer"&gt;Decentralized Identifiers&lt;/a&gt; (DIDs) are a W3C standard. They have a standardized structure that essentially links to you and your information.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem04i5oym7ov53uqh8ju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fem04i5oym7ov53uqh8ju.png" alt="A DID is comprised of three parts: Scheme, DID Method, and DID Method Specific String" width="800" height="171"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They are a long string of text that consists of three parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the URI scheme identifier, which is did&lt;/li&gt;
&lt;li&gt;the identifier for a &lt;a href="https://www.w3.org/TR/did-core/#dfn-did-methods" rel="noopener noreferrer"&gt;DID method&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;the DID method-specific identifier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;DIDs are the only component of Web5 that touch a blockchain&lt;/strong&gt;, which is generally limited to anchoring the keys/endpoints linked to the ID.&lt;/p&gt;

&lt;p&gt;That being said, anchoring DIDs on Bitcoin (or any blockchain) is not a requirement. In fact, what's great about having the standardized formatting for DIDs is that they can be anchored anywhere or not anchored at all and this still works, although with varying levels of decentralization.&lt;/p&gt;

&lt;p&gt;Here are examples of DIDs on the Bitcoin blockchain, the Ethereum blockchain, and the web. Notice they all use the same format: scheme, DID method, and DID method-specific identifier.&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="err"&gt;did:btcr:xyv&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="err"&gt;-xzpq-q&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="err"&gt;wa-p&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="err"&gt;t&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;did:ens:some.eth&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="err"&gt;did:web:example.com&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Because personal data is not stored on the blockchain, the DID essentially acts as a URI that associates the subject of the DID (the person, company, or object being identified) with a DID document that lives off-chain.&lt;/p&gt;

&lt;p&gt;DID Documents are JSON files stored in decentralized storage systems such as IPFS, and describe how to interact with the DID subject. The DID Document contains things like the DID subject's public keys, authentication and verification methods, and service endpoints that reference the locations of the subject’s data.&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;"@context"&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://www.w3.org/ns/did/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:ion:EiClkZMDxPKqC9c-umQfTkR8"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verificationMethod"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:ion:EiClkZMDxPKqC9c-umQfTkR8"&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;"Secp256k1VerificationKey2018"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"controller"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:ion:EiClkZMDxPKqC9c-umQfTkR8"&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;"authentication"&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="s2"&gt;"did:ion:EiClkZMDxPKqC9c-umQfTkR8"&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;h2&gt;
  
  
  Verifiable Credentials
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.w3.org/TR/vc-data-model/" rel="noopener noreferrer"&gt;Verifiable Credentials&lt;/a&gt; are a fully ratified W3C standard that work hand in hand with Decentralized Identifiers to enable trustless interactions - meaning two parties do not need to trust one another to engage, but claims made about a DID subject can be verified.&lt;/p&gt;

&lt;p&gt;For example, Alice needs to prove she has a bank account at Acme Bank. Acme Bank issues a cryptographically signed Verifiable Credential which would be stored in Alice's identity wallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefm890yotoj5io28ol95.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefm890yotoj5io28ol95.png" alt="Illustration of Acme Bank issuing a verifiable credential to Alice’s wallet, and the wallet presenting the credential as proof of a bank account to a PFI Verifier." width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The credential contains the issuer as Acme and the subject as Alice, as well as the claims, which are Alice's account number and full name.&lt;/p&gt;

&lt;p&gt;Upon request for proof of banking, Alice presents the Verifiable Credential that's cryptographically signed by both Alice as well as her bank.&lt;/p&gt;

&lt;p&gt;This is an easy, machine-readable way to share credentials across the web. The Verifier does not know or trust Alice, but they do consider Acme trustworthy, and they have essentially vouched for Alice therefore distributing trust.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decentralized Web Nodes
&lt;/h2&gt;

&lt;p&gt;Today, centralized entities act as our data stores. Applications hold all of our content and preferences on their servers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://identity.foundation/decentralized-web-node/spec/" rel="noopener noreferrer"&gt;Decentralized Web Nodes&lt;/a&gt; (DWNs) change this by allowing us to decouple our data from the applications that we use, and instead host our data ourselves in our own personal data stores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bsky.social/about/" rel="noopener noreferrer"&gt;BlueSky&lt;/a&gt; is a good example; it's a decentralized social media app. With BlueSky, your tweets and your connections aren't stored with the application. They are stored with you. So you can present your content on any decentralized social media app you want, not just BlueSky.&lt;/p&gt;

&lt;p&gt;Your DWNs can hold both public and encrypted data. For example, in the case of a decentralized social media app, you'd want data like your posts and your connections to be public but things like your DMs to be private.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your decentralized web nodes do not live on the blockchain&lt;/strong&gt;. You can host your web nodes anywhere (your phone, computer, etc) and can replicate them across your devices and clouds and all data will be synced.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfafo8u2dosqqjdddlbp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfafo8u2dosqqjdddlbp.png" alt="Decentralized Web Nodes is an emerging standard for data storage and relay that enables entities of any type (people, organizations, etc) to send and store encrypted or public messages and data, enabling a wide variety of decentralized apps and protocols to be built on top. Features of Decentralized Web Nodes include: universally addressable, replicated, secure, semantic discovery, async message threads, supports any identity type." width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While self-hosting your DWNs provides a means for decentralizing your data, we recognize some users will be more comfortable with others hosting their web nodes for convenience sake. We envision there will be vendors offering to host your web nodes for you. The good part about that is you can encrypt any private data so unlike today where cloud hosts can scan everything that you host there, you can still maintain some privacy even if you have your web nodes hosted by intermediaries.&lt;/p&gt;

&lt;p&gt;Your DWNs are associated with your Decentralized Identifiers and are listed in a DID document.&lt;/p&gt;

&lt;p&gt;Notice the &lt;code&gt;serviceEndpoint&lt;/code&gt; section of the DID doc specifies service endpoints and provides URIs to the decentralized web nodes.&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;"@context"&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://www.w3.org/ns/did/v1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:web:example.com:u:alice"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"service"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#dwn"&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;"DecentralizedWebNode"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"serviceEndpoint"&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;"nodes"&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="s2"&gt;"https://dwn.example.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"00:11:22:33:FF:EE"&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="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"verificationMethod"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:web:example.com:u:alice"&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;"Secp256k1VerificationKey2018"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"controller"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:web:example.com:u:alice"&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;"authentication"&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="s2"&gt;"did:web:example.com:u:alice"&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;Given an application has the address to your DWN, they can send you a request for data.&lt;/p&gt;

&lt;p&gt;This represents a request from an application to obtain all objects within a DWN that follow the &lt;code&gt;SocialMediaPosting&lt;/code&gt; schema:&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="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;POST&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;https://dwn.example.com/&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;BODY&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;"requestId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"c5784162-84af-4aab-aff5-f1f8438dfc3d"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:example:123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"messages"&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;"descriptor"&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;"method"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CollectionsQuery"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"schema"&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://schema.org/SocialMediaPosting"&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="p"&gt;{&lt;/span&gt;&lt;span class="err"&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="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;The data within DWNs are JSON objects that follow a universal standard, thus making it possible for any application to discover and process the data given its semantic type.&lt;/p&gt;

&lt;p&gt;If this data is public, those objects will be automatically returned to the application, and if the data is private, the node owner would need to grant the application access to that data.&lt;/p&gt;

&lt;h2&gt;
  
  
  Identity Wallets
&lt;/h2&gt;

&lt;p&gt;Obviously all of this is pretty complicated, especially for non-technical users. So we need a simplistic, easy to use interface that will allow people to access and manage their identity.&lt;/p&gt;

&lt;p&gt;A well designed identity wallet would provide ways to manage the data stored in decentralized web nodes, the decentralized IDs and the context in which they should be used, verifiable credentials, and authorizations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8gqpts8kuhjh6d8ldza.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8gqpts8kuhjh6d8ldza.png" alt="Identity wallets are mobile apps that provide UI and functionality to manage credentials and app data stored in Decentralized Web Nodes; sign, verify, discover, and present credentials to verifying parties; perform authentication and manage authorizations; support create, update, and recovery of DIDs across all supported DID Methods; maintain and enforce which DIDs are used with different people, apps, and services." width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Decentralized Web Apps
&lt;/h2&gt;

&lt;p&gt;Web 5 enables developers to build decentralized web applications (DWAs) on top of it and it’s all open source! You're free to use it as your foundation and focus your attention on what you really care about, your app. Web5 brings to DWAs what cloud and application servers bring to enterprise apps. It does the hard part. It brings decentralization. By building your apps on top of Web 5, you get decentralization and identity and data management as part of the platform.&lt;/p&gt;

&lt;p&gt;This is definitely a fundamental change in how we exchange data, but it's not a total overhaul of the web we already know. This works like Progressive Web Apps, but you'd add the decentralized web node SDK and then applications are free to really go serverless because the data isn't stored with them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yv3um97u6y5zz37g2dx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1yv3um97u6y5zz37g2dx.png" alt="Illustration of PWAs compared to DWAs. PWAs comprise of a web app that uses a service worker to pull from local cache and a centralized app server; whereas DWAs comprise of a DWN SDK and a service worker that pull from local cache and Decentralized Web Nodes." width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The sky's the limit to what you can build on top of this platform, but here are some cool basic examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Music Applications
&lt;/h2&gt;

&lt;p&gt;No one likes recreating their music playlists over and over again for different apps. With Web 5, you wouldn't have to do that.&lt;/p&gt;

&lt;p&gt;In this example, Groove has access to write to Alice's decentralized web node and adds a new entry.&lt;/p&gt;

&lt;p&gt;Tidal has access to read from Alice's DWN, so can read the new entry that was added by Groove, and now Alice has her playlist readily available on both apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gnd47k4yr70be8e055w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8gnd47k4yr70be8e055w.png" alt="Illustration of Groove writing a new schema.org/MusicPlaylist object to Alice’s remote DWN and Tidal, who has read ability, reading the MusicPlaylist entry that Groove added." width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the continuous utilization of the data across apps, not only do Groove and Tidal get access to Alice's data, but they use it to improve her user experience, thus creating a stronger experience than Alice could have ever gotten had she not used this tech.&lt;/p&gt;

&lt;h2&gt;
  
  
  Travel Applications
&lt;/h2&gt;

&lt;p&gt;Your travel preferences, tickets, and reservations are scattered across so many different hotels, airlines, rental car agencies and travel apps, making it really difficult to coordinate. Heaven forbid there's any hiccup in the system such as a delayed flight. You end up trying to get in touch with the car rental place to let them know you'll be late for your reservation, and if it's really late, you'd want to call the hotel to ask them not to give away your room. All while you're hustling and bustling at the airport.&lt;/p&gt;

&lt;p&gt;Web 5 can help unify these various app experiences.&lt;/p&gt;

&lt;p&gt;If Alice gives the hotel, the airline, and the rental car agency access to the &lt;code&gt;Reservation&lt;/code&gt; and &lt;code&gt;Trip&lt;/code&gt; objects in her DWN, they can react and adjust accordingly to any changes made.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2ktpx7xrv3iupmbud5q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2ktpx7xrv3iupmbud5q.png" alt="Illustration: Alice grants her hotel, airline, and rental car provider the ability to add schema.org/Reservation objects to her collection of trip-related data and also grants any app she chooses access to reservations and tickets stored in her schema.org/Trip data to help her visualize her itinerary." width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These are just a few applications that can be realized by building on top of Web 5. There's so many more possibilities once the web is truly decentralized the way it was always intended to be.&lt;/p&gt;

</description>
      <category>web5</category>
    </item>
    <item>
      <title>California DMV Hackathon Win: Privacy-Preserving Age Verification</title>
      <dc:creator>Angie Jones</dc:creator>
      <pubDate>Thu, 14 Nov 2024 19:07:33 +0000</pubDate>
      <link>https://dev.to/tbdevs/california-dmv-hackathon-win-privacy-preserving-age-verification-h5h</link>
      <guid>https://dev.to/tbdevs/california-dmv-hackathon-win-privacy-preserving-age-verification-h5h</guid>
      <description>&lt;p&gt;At the recent &lt;a href="https://www.dmv.ca.gov/portal/news-and-media/news-releases/dmv-recognizes-companies-for-outstanding-mdl-use-cases-at-first-community-hackathon/" rel="noopener noreferrer"&gt;California DMV Hackathon&lt;/a&gt;, the Block team, represented by members from Square and TBD, won the &lt;strong&gt;Best Privacy &amp;amp; Security Design&lt;/strong&gt; award for building a prototype of an instant age verification system. This solution utilizes mobile drivers’ licenses (mDLs) to provide secure, privacy-centric transactions for age-restricted purchases with Square’s Point of Sale (POS) system.&lt;/p&gt;

&lt;p&gt;In this post, we’ll explore the core technical components behind our solution, which centered on using TruAge technology to enable seamless, secure age verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  How TruAge QR Code Verification Works
&lt;/h2&gt;

&lt;p&gt;At the heart of our prototype is the ability to scan and verify a &lt;a href="https://www.dmv.ca.gov/portal/ca-dmv-wallet/truage/" rel="noopener noreferrer"&gt;TruAge Age Token QR code&lt;/a&gt;. These QR codes contain a verifiable credential (VC) that confirms a person’s legal age without exposing unnecessary personal information. Here’s a breakdown of how we approached verifying these credentials in our solution.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Decoding the QR Code Payload&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;The first step in the verification process was reading the QR code provided by the customer. TruAge QR codes follow a standard format which encodes the verifiable presentation (VP) in a compact &lt;a href="https://cbor.io/" rel="noopener noreferrer"&gt;CBOR&lt;/a&gt; format.&lt;/p&gt;

&lt;p&gt;Our team implemented a scanner using our open source web5-swift SDK that reads the QR code and decodes the CBOR-encoded payload. This CBOR format is efficient, allowing the verifiable presentation to be transmitted and processed quickly, minimizing any delays at the point of sale.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Converting CBOR to JSON&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Once we decoded the CBOR data, the next step was to parse it into a JSON-based verifiable presentation using the &lt;a href="https://www.w3.org/TR/vc-data-model/" rel="noopener noreferrer"&gt;W3C Verifiable Credentials (VC) Data Model v1.1&lt;/a&gt;. This model is critical to ensuring interoperability across different platforms and services, as it standardizes how credentials are represented and exchanged in a decentralized manner.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Validating the Issuer’s DID&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;After converting the data into a verifiable format, we needed to validate the digital signature on the credential. We retrieved the issuer’s Decentralized Identifier (DID) from the TruAge server, which provided us access to a sandbox environment containing their list of authorized DIDs.&lt;/p&gt;

&lt;p&gt;Using DIDs, we were able to validate the cryptographic signature to ensure that the credential was issued by a trusted TruAge provider. This validation step is critical for ensuring that the credential has not been tampered with and is issued by a legitimate authority.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Credential Content Verification&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Once the issuer’s signature was validated, the next step was to check the contents of the verifiable credential itself. In this case, we looked for proof that the individual was over 21 and verified that the credential had not expired.&lt;/p&gt;

&lt;p&gt;This lightweight verification process ensures that businesses can quickly and easily confirm a customer’s legal age, while protecting their privacy by not exposing sensitive information like birthdates or addresses.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Building the Integration: Web5 and TruAge Libraries
&lt;/h2&gt;

&lt;p&gt;To bring this solution to life, we used a few key technologies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;iOS&lt;/strong&gt;: Our team developed the iOS implementation using the web5-swift library, which allowed us to efficiently handle the scanning, decoding, and parsing of the TruAge QR codes on Apple devices. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Android&lt;/strong&gt;: For Android, we modified the TruAge library provided by Digital Bazaar to make it compatible with our solution. This involved adapting the library for seamless integration with our QR code parsing and validation logic. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Privacy and Security at the Forefront
&lt;/h2&gt;

&lt;p&gt;Our approach ensures that personal information is protected at every stage of the transaction. By focusing solely on verifying the specific data point needed (in this case, whether someone is over 21), we avoid collecting or storing any unnecessary information. This is a win for both businesses and consumers, as it minimizes risk while maintaining a smooth user experience.&lt;/p&gt;

&lt;p&gt;By integrating this technology into &lt;a href="https://squareup.com/us/en/point-of-sale/retail" rel="noopener noreferrer"&gt;Square’s Retail POS system&lt;/a&gt;, we not only enhanced security but also brought innovative, privacy-preserving solutions to small businesses that need to comply with age verification laws. This prototype has the potential to extend to many other use cases, from secure employee onboarding to identity verification for suppliers and customers.&lt;/p&gt;

</description>
      <category>mdl</category>
      <category>web5</category>
    </item>
    <item>
      <title>How Decentralized Apps Can Make Everyday Tasks Easy</title>
      <dc:creator>Tania Chakraborty</dc:creator>
      <pubDate>Wed, 30 Oct 2024 13:15:00 +0000</pubDate>
      <link>https://dev.to/tbdevs/how-decentralized-apps-can-make-everyday-tasks-easy-o51</link>
      <guid>https://dev.to/tbdevs/how-decentralized-apps-can-make-everyday-tasks-easy-o51</guid>
      <description>&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
   





&lt;p&gt;Whenever I explore technology that's new to me, whether it be learning how decentralized apps work or what an open source tool does, it's seeing the technology in action that helps me understand whether or not it can impact me and my every day life. This is why every month at TBD, what better way to learn about our technology in action than from innovators using TBD's technologies today.&lt;/p&gt;

&lt;p&gt;As our open source projects continue to develop, our community members contribute to the global effort of decentralizing the web with their independent projects. Here are the latest contributions from them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ariton
&lt;/h2&gt;

&lt;p&gt;Developed by Sondre Bjellås (&lt;a href="https://github.com/sondreb" rel="noopener noreferrer"&gt;@sondreb&lt;/a&gt;), Ariton is a Web5 community SuperApp. It acts as a decentralized platform for building and managing communities! Ariton runs on any device with the ability to add any Mini Apps (or features) you want, like chat, groups, events, notes and more. Built on free and open standards, your identity and data is always in your full control. Currently in prototype stage, you can learn more and &lt;a href="https://ariton.app/#learn" rel="noopener noreferrer"&gt;try it out here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kin AI
&lt;/h2&gt;

&lt;p&gt;Kin AI is a personalized Web5 AI companion that offers guidance, coaching, and emotional support! Kin helps you piece together your problems and how to solve them in a way that seamlessly fits how you want it to. All your data stays on your device, and no one can access it without your specific permission. Live in beta, you can &lt;a href="https://mykin.ai/#your-life-with-kin" rel="noopener noreferrer"&gt;get early access on the App or Play store&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  BlockCore Wallet
&lt;/h2&gt;

&lt;p&gt;Also developed by Sondre (&lt;a href="https://github.com/sondreb" rel="noopener noreferrer"&gt;mentioned above&lt;/a&gt;), BlockCore Wallet is a non-custodial Web5 wallet in your browser that supports DIDs (decentralized identifiers), tokens, crypto currencies and more! You can add different accounts, send/receive payments, and even use an address book to quickly send multiple payments to one contact. You can learn more and try it out yourself in the &lt;a href="https://www.blockcore.net/wallet/guide" rel="noopener noreferrer"&gt;BlockCore Wallet Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Share Your Open Source Project
&lt;/h2&gt;

&lt;p&gt;Amazing projects, right? Really helps visualize how decentralized apps can bring ownership and value to your everyday life in ways you may not have imagined. &lt;/p&gt;

&lt;p&gt;Have a cool open source project that incorporates TBD's decentralized technologies? We'd love to hear about it! Head over and share your work with us in Discord in our &lt;a href="https://discord.com/channels/937858703112155166/1098207585661878402" rel="noopener noreferrer"&gt;#share-what-you-do channel&lt;/a&gt; for a chance to have your project &lt;a href="https://developer.tbd.website/community" rel="noopener noreferrer"&gt;featured on our dev site&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>web5</category>
      <category>decentralization</category>
      <category>community</category>
    </item>
    <item>
      <title>Why Broken Links Are Costing You Brand Deals (And How to Fix It)</title>
      <dc:creator>Ebony Louis</dc:creator>
      <pubDate>Tue, 29 Oct 2024 19:56:45 +0000</pubDate>
      <link>https://dev.to/tbdevs/why-broken-links-are-costing-you-brand-deals-and-how-to-fix-it-205o</link>
      <guid>https://dev.to/tbdevs/why-broken-links-are-costing-you-brand-deals-and-how-to-fix-it-205o</guid>
      <description>&lt;p&gt;Have you ever watched a creator’s video and thought, "Where did she get that top?" or "I need that protein powder"? You scroll through the comments, only to see the infamous "link in my bio" comment. You rush to click the link, and you're hit with-page not found 😒. I remember once being so desperate that I took a screenshot of the item and reverse-searched it on Google Images. I found something similar but not what I wanted. SO frustrating. Eventually, I gave up and kept on scrolling.&lt;/p&gt;

&lt;p&gt;Now, imagine how many potential sales that creator lost because a third-party platform’s server was down. Their metrics won't even reflect those missed opportunities, making it harder to secure brand deals. Who actually has time for that? That’s when I realized I could use &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/what-are-dids" rel="noopener noreferrer"&gt;Decentralized Identifiers (DIDs)&lt;/a&gt; to create my own decentralized link hub utilizing service endpoints. With this setup, all my links and contact info are stored in one place—owned and controlled by me. Even if a service that houses all my links goes down, my links will always be accessible because they’re not reliant on any external platforms to display them. I’m sharing this in hopes that fellow creators won’t miss out on potential brand deals, and I won't have to cry over a top I never got to buy.&lt;/p&gt;

&lt;p&gt;Before I show you exactly how you can create your own decentralized link hub, lets answer some of the questions you're probably asking yourself. &lt;/p&gt;

&lt;h2&gt;
  
  
  What are Decentralized Identifiers (DIDs)?
&lt;/h2&gt;

&lt;p&gt;So, what exactly is a Decentralized Identifier, or DID? Think of it as your username—the one source of truth for everything you do online—except this one is owned and controlled entirely by you. It’s a unique "address", thats verifiable and doesn’t rely on any central authority like Facebook, Google, or any other service. Instead, DIDs give you the freedom to manage your own identity online, without needing to trust a single platform to store or validate your information.&lt;/p&gt;

&lt;p&gt;In the context of a decentralized link hub, your DID becomes the hub for all your important links. It’s not tied to any third-party service, which means you never have to worry about followers scrolling simply because your link page isn't working. When you update your links, you only need to do it once, as they're tied to your DID—so they stay consistent across all your social platforms, giving you full control. When you update your links, they stay up-to-date across the web because again they’re tied to your DID—giving you full control.&lt;/p&gt;

&lt;h2&gt;
  
  
  How are Service Endpoints going to help me?
&lt;/h2&gt;

&lt;p&gt;Now, let’s cover what service endpoints are. These might sound technical, but they’re actually pretty simple—think of them like your digital address/phone book. Remember those huge yellow books you used to sit on at the hair salon? They were filled with phone numbers and addresses, making it easy to find and contact people. Well, service endpoints are kind of like that, except they’re the digital "addresses" for different parts of your online identity. These could be links to your Instagram profile, website, direct messages, or even your affiliate links.&lt;/p&gt;

&lt;p&gt;These endpoints live in your &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/did_documents#what-is-a-did-document" rel="noopener noreferrer"&gt;DID document&lt;/a&gt;. So instead of relying on centralized services like Linktree, your DID acts as the home for all your important links. So when someone &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/how-to-resolve-a-did" rel="noopener noreferrer"&gt;resolves your DID&lt;/a&gt;, they can access the service endpoints that you’ve decided to share.&lt;/p&gt;

&lt;p&gt;You can also easily update and delete these links anytime you need to again without relying on any third-party platform to keep those connections working.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fix: let's create a decentralized Link Hub
&lt;/h2&gt;

&lt;p&gt;If you’re more of a visual learner, check out my &lt;a href="https://youtube.com/shorts/knYteCFYuno" rel="noopener noreferrer"&gt;YouTube short&lt;/a&gt; where I show you exactly how. For this example we're going to create a DID with two service endpoints. One pointing to my LinkedIn and the other pointing to my X profile. &lt;/p&gt;

&lt;p&gt;Step 1: Import &lt;code&gt;web5/dids&lt;/code&gt; package&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import {DidDht} from '@web5/dids'
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2: Create DID with service endpoints&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;myBearerDid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;DidDht&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;
        &lt;span class="na"&gt;publish&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;services&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;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;LinkedIn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;professional&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://www.linkedin.com/in/ebonylouis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;X&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;personal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://x.com/EbonyJLouis&lt;/span&gt;&lt;span class="dl"&gt;'&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;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now that we've created your DID with service endpoints leading to your LinkedIn and X profiles.&lt;/p&gt;

&lt;p&gt;Step 3: Lets print our entire DID also know as a &lt;a href="https://developer.tbd.website/docs/glossary/#bearer-did" rel="noopener noreferrer"&gt;BearerDid&lt;/a&gt; to see our DID document where these service endpoints can be found:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;myBearerDid&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It is important to never share your full BearerDID, it contains private keys that only you should have access to. The holder of these keys can perform private key operations, like signing data. Check out this &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/key-management" rel="noopener noreferrer"&gt;Key Management Guide&lt;/a&gt; to learn how to properly manage your DID keys. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;my&lt;/span&gt; &lt;span class="nx"&gt;bearerDid&lt;/span&gt; &lt;span class="nx"&gt;BearerDid&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;uri&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;verificationMethod&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;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;authentication&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey#0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;assertionMethod&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey#0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;capabilityDelegation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey#0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;capabilityInvocation&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:auontpd44i6rrzrmwry7hsbq8p5seqo7xyz8tnr7fdygsmhykoey#0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="nx"&gt;service&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;span class="nb"&gt;Object&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;Object&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;span class="nx"&gt;metadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;published&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;versionId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;1729705713&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="nx"&gt;keyManager&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;LocalKeyManager&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;_algorithmInstances&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nc"&gt;Map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&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;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;EdDsaAlgorithm&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;CryptoAlgorithm&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;EdDsaAlgorithm&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nx"&gt;_keyStore&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;MemoryStore&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;store&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;Map&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;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This output contains your DID string(uri) thats your "username" along with the services array and some authentication and verification methods. To learn more refer to this &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/did_documents" rel="noopener noreferrer"&gt;DID Document&lt;/a&gt; Guide. &lt;/p&gt;

&lt;p&gt;Step 4: Now lets look closely at just our &lt;code&gt;serviceEndpoint&lt;/code&gt; array:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;personal link hub&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;myBearerDid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;service&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;No Services Found&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;decentralized&lt;/span&gt; &lt;span class="nx"&gt;link&lt;/span&gt; &lt;span class="nx"&gt;hub&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:xihb478dd7w9cyj33b6g5cjriuw6drwaxrx9ppf3bwn839pmhi6y#LinkedIn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;professional&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://www.linkedin.com/in/ebonylouis&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:xihb478dd7w9cyj33b6g5cjriuw6drwaxrx9ppf3bwn839pmhi6y#X&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;personal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://x.com/EbonyJLouis&lt;/span&gt;&lt;span class="dl"&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;h2&gt;
  
  
  How do I share these links?
&lt;/h2&gt;

&lt;p&gt;Now that your DID is in your bio, how do your followers access your links? It's simple- they just need to &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/how-to-resolve-a-did" rel="noopener noreferrer"&gt;resolve your DID&lt;/a&gt; to see a full list of your shared links: &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The resolving of your DID will differ depending on the &lt;a href="https://developer.tbd.website/docs/glossary#did-method" rel="noopener noreferrer"&gt;DID method&lt;/a&gt; used to create the DID. In this example we are using the &lt;code&gt;DHT&lt;/code&gt; DID method:&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// DID in your bio&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;didDhtUri&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:xihb478dd7w9cyj33b6g5cjriuw6drwaxrx9ppf3bwn839pmhi6y&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;// resolve the DID&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;resolvedDhtDid&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;DidDht&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;didDhtUri&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// access the DID Document's service links&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;dhtDidDocument&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;resolvedDhtDid&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;didDocument&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;service&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;dhtDidDocument&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:xihb478dd7w9cyj33b6g5cjriuw6drwaxrx9ppf3bwn839pmhi6y#LinkedIn#LinkedIn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;professional&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://www.linkedin.com/in/ebonylouis&lt;/span&gt;&lt;span class="dl"&gt;'&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;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;did:dht:xihb478dd7w9cyj33b6g5cjriuw6drwaxrx9ppf3bwn839pmhi6y#LinkedIn#X&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;personal&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;serviceEndpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://x.com/EbonyJLouis&lt;/span&gt;&lt;span class="dl"&gt;'&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;As you can see, we’ve succesfully set up our service endpoints to point to both my LinkedIn and X accounts. Now it’s your turn to secure the bag, create your own decentralized Link hub! And if you tweet about it, don’t forget to tag me.&lt;/p&gt;

&lt;p&gt;To learn more about Decentralized Identity check out TBD's &lt;a href="https://developer.tbd.website/docs/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;. &lt;/p&gt;

</description>
      <category>web5</category>
      <category>javascript</category>
      <category>decentralized</category>
      <category>identity</category>
    </item>
    <item>
      <title>How Verifiable Credentials Can Help Combat Fake Online Reviews</title>
      <dc:creator>Angie Jones</dc:creator>
      <pubDate>Tue, 22 Oct 2024 20:30:08 +0000</pubDate>
      <link>https://dev.to/tbdevs/how-verifiable-credentials-can-help-combat-fake-online-reviews-3418</link>
      <guid>https://dev.to/tbdevs/how-verifiable-credentials-can-help-combat-fake-online-reviews-3418</guid>
      <description>&lt;p&gt;The &lt;a href="https://abcnews.go.com/US/wireStory/ftcs-rule-banning-fake-online-reviews-effect-115009298" rel="noopener noreferrer"&gt;Federal Trade Commission’s (FTC) has introduced a new rule banning fake online reviews&lt;/a&gt;. This rule, which penalizes businesses and individuals involved in the sale or purchase of fake reviews, represents a much needed step in promoting trust online. But while enforcement is crucial, there's still a challenge of identifying which reviews are legitimate. This is where &lt;a href="https://developer.tbd.website/docs/web5/verifiable-credentials/what-are-vcs" rel="noopener noreferrer"&gt;Verifiable Credentials (VCs)&lt;/a&gt; can provide a solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Fake Reviews
&lt;/h2&gt;

&lt;p&gt;Fake reviews have been an issue for years, distorting consumer choices. As FTC Chair Lina Khan pointed out, these reviews “pollute the marketplace and divert business away from honest competitors.” &lt;/p&gt;

&lt;p&gt;Let's face it, with pretty much every social networking site turning into an online shopping mall, many purchasing decisions are influenced by online reviews. I, personally, do most of my shopping online and I rely very heavily on reviews. I often question which ones are actually real, and if I'm not sure, I often shy away from making the purchase at all - which isn't good for me or the business.&lt;/p&gt;

&lt;p&gt;The new FTC rule aims to crack down on this problem by prohibiting reviews from people who don’t exist, those who have no real experience with the product, or those misrepresenting their experience. It also bans businesses from creating or selling fake reviews. While these measures are great, enforcing them effectively presents challenges, especially with AI-generated content.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Can Verifiable Credentials Help
&lt;/h2&gt;

&lt;p&gt;Verifiable Credentials are digital certificates that prove specific facts about an individual or entity. These credentials are cryptographically signed, making them tamper-proof, and they can be independently verified without relying on a central authority. In the context of online reviews, VCs can establish authenticity.&lt;/p&gt;

&lt;p&gt;Here’s how it could work:&lt;/p&gt;

&lt;p&gt;When a customer purchases a product or uses a service, the business can issue a VC to confirm their legitimate experience. This can even be attached to their receipt. This credential could serve as proof that the individual has transacted with the business, preventing fake reviews from people with no real experience.&lt;/p&gt;

&lt;p&gt;A review platform could require users to attach a VC that verifies they have purchased or used the product before submitting a review. This would eliminate fake reviews from non-customers and ensure that only those with firsthand experience can provide feedback.&lt;/p&gt;

&lt;p&gt;Since VCs are cryptographically signed, they cannot be altered or faked. This ensures the integrity of the review content and prevents businesses from modifying or fabricating reviews to boost their reputations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits for Businesses and Consumers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Consumers would no longer have to second guess the authenticity of reviews. They can trust that every review is tied to a verified, real customer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By adopting VCs, businesses can ensure they remain compliant with the new FTC rule. They would have a verifiable record that shows they only accept reviews from legitimate customers, protecting themselves from potential penalties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Early adopters of VCs in their review systems could set themselves apart from competitors. Businesses that champion transparency and fairness by using VCs can build stronger relationships with their customers, enhancing brand loyalty.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using VCs can automate the verification process, reducing the need for manual review moderation. As AI continues to be used in generating content, including reviews, this automation is key to keeping platforms efficient while maintaining high standards of trust.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Trust But Verify
&lt;/h2&gt;

&lt;p&gt;The FTC’s new rule is a step in the right direction, but to truly tackle the problem of fake reviews, the marketplace needs more than just enforcement. It needs technology that ensures transparency and trust. Verifiable Credentials can provide that assurance, giving businesses and consumers the tools they need to foster a fair, competitive, and honest marketplace. As online commerce continues to grow, adopting VCs could be the key to making reviews a trustworthy resource once again.&lt;/p&gt;

&lt;p&gt;If you'd like to get started with Verifiable Credentials, check out our &lt;a href="https://developer.tbd.website/projects/web5#sdk" rel="noopener noreferrer"&gt;free, open source SDKs&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>verifiablecredentials</category>
      <category>web5</category>
    </item>
    <item>
      <title>Known Customer Credential Hackathon</title>
      <dc:creator>Angie Jones</dc:creator>
      <pubDate>Fri, 11 Oct 2024 17:34:05 +0000</pubDate>
      <link>https://dev.to/tbdevs/known-customer-credential-hackathon-4obj</link>
      <guid>https://dev.to/tbdevs/known-customer-credential-hackathon-4obj</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wl6mcuwJjhw"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.tbd.website/docs/tbdex/" rel="noopener noreferrer"&gt;tbDEX&lt;/a&gt; is an open messaging protocol that enables liquidity seekers to connect with liquidity providers. This means that as a liquidity provider, your business can be the backend supplier in several payment applications.&lt;/p&gt;

&lt;p&gt;Performing KYC on repeat customers every time they attempt to transact with you from a different payment app would be a pain. To avoid this, you will use the &lt;a href="https://developer.tbd.website/projects/web5/" rel="noopener noreferrer"&gt;Web5 SDK&lt;/a&gt; to issue a &lt;a href="https://github.com/TBD54566975/known-customer-credential" rel="noopener noreferrer"&gt;Known Customer Credential&lt;/a&gt; (KCC) to a customer, Alice, who you have already completed KYC on. You will store the JWT representing the KCC in Alice’s &lt;a href="https://developer.tbd.website/docs/web5/decentralized-web-nodes/what-are-dwns/" rel="noopener noreferrer"&gt;Decentralized Web Node&lt;/a&gt; so that she can present it to your business from any payment app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Challenge
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Create a Decentralized Identifier (DID) and DWN to use as the Issuer.

&lt;ul&gt;
&lt;li&gt;Bonus: Use the DIF community DWN instance hosted by Google Cloud.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Issue Alice a KCC that includes evidence. Note that for this challenge, you do not need to implement an actual identity verification flow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install the &lt;a href="https://vc-to-dwn.tbddev.org/vc-protocol" rel="noopener noreferrer"&gt;VC Protocol&lt;/a&gt; onto your DWN so that you can communicate with Alice’s DWN.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Obtain permission to write to Alice’s DWN by sending a GET request to:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  https://vc-to-dwn.tbddev.org/authorize?issuerDid=${issuerDidUri}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Store the VC JWT of the KCC as a private record in Alice’s DWN.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Submit
&lt;/h2&gt;

&lt;p&gt;To &lt;a href="https://difhackathon2024.devpost.com/" rel="noopener noreferrer"&gt;enter a submission&lt;/a&gt; for this hackathon, provide the DWN Record ID of the KCC.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Alice’s DID: &lt;code&gt;did:dht:rr1w5z9hdjtt76e6zmqmyyxc5cfnwjype6prz45m6z1qsbm8yjao&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/@web5/credentials" rel="noopener noreferrer"&gt;web5/credentials SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/@web5/api" rel="noopener noreferrer"&gt;web5/api SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/decentralized-web-nodes/web5-connect" rel="noopener noreferrer"&gt;How to create a DID and DWN with Web5.connect()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/quickstart#2-access-bearer-did" rel="noopener noreferrer"&gt;Obtain Bearer DID - required to sign KCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vc.schemas.host/kcc.schema.json" rel="noopener noreferrer"&gt;Known Customer Credential Schema&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/verifiable-credentials/vc-issuance" rel="noopener noreferrer"&gt;How to issue a VC with Web5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TBD54566975/tbd-examples/tree/main/javascript/kcc-issuance-snippet#readme" rel="noopener noreferrer"&gt;Example of issuing a KCC with Web5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/TBD54566975/tbd-examples/tree/main/javascript/kcc-issuance-snippet#output-vc-json" rel="noopener noreferrer"&gt;Example of issued KCC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/decentralized-web-nodes/what-are-protocols#installing-a-protocol" rel="noopener noreferrer"&gt;How to install a DWN Protocol&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/verifiable-credentials/vcs-in-dwn" rel="noopener noreferrer"&gt;How to store a VC in a DWN&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Contact Us
&lt;/h2&gt;

&lt;p&gt;If you have any questions or need any help, please reach out to us in our &lt;a href="https://discord.com/channels/937858703112155166/1272378659730100245" rel="noopener noreferrer"&gt;#kcc-hackathon&lt;/a&gt; channel on Discord.&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>kyc</category>
      <category>fintech</category>
      <category>decentralization</category>
    </item>
    <item>
      <title>TBD x Hacktoberfest</title>
      <dc:creator>Tania Chakraborty</dc:creator>
      <pubDate>Tue, 08 Oct 2024 20:50:39 +0000</pubDate>
      <link>https://dev.to/tbdevs/tbd-x-hacktoberfest-34c0</link>
      <guid>https://dev.to/tbdevs/tbd-x-hacktoberfest-34c0</guid>
      <description>&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
   





&lt;p&gt;With October blazing through, we're greeted by pumpkin spices, the aroma of fall leaves drifting in the rain, and of course, the much-anticipated &lt;strong&gt;Hacktoberfest&lt;/strong&gt;. Whether you're a seasoned contributor or new to open source, there's something for everyone. &lt;/p&gt;

&lt;h2&gt;
  
  
  🎉 We're Participating in Hacktoberfest 2024!
&lt;/h2&gt;

&lt;p&gt;We have &lt;a href="https://dev.to/blog/hacktoberfest-2024#-dive-into-2024s-participating-projects"&gt;several projects&lt;/a&gt; with a variety of issues that we'd love your contributions for! For each issue that's merged, you'll earn points towards the &lt;a href="https://github.com/TBD54566975/developer.tbd.website/issues/1680" rel="noopener noreferrer"&gt;TBD Hacktoberfest Leaderboard&lt;/a&gt;. Winners will receive exclusive TBD Hacktoberfest 2024 swag!  &lt;/p&gt;

&lt;p&gt;We're kicking off Hacktoberfest with more events:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;October 10: Twitter Space - Hacktoberfest Rust Projects&lt;/li&gt;
&lt;li&gt;October 10: Exploring an AI-Powered GitHub Action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Be sure to &lt;a href="https://cal.et/c/t7jszrie" rel="noopener noreferrer"&gt;add them to your calendar&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  📌 What is Hacktoberfest?
&lt;/h2&gt;

&lt;p&gt;Hacktoberfest is a month-long (October) celebration of open source software. It's sponsored by DigitalOcean, GitHub, and other partners. Check out Hacktoberfest's &lt;a href="https://hacktoberfest.com/participation/" rel="noopener noreferrer"&gt;official site&lt;/a&gt; for more details and to register. Registration is from September 23 - October 31.&lt;/p&gt;

&lt;h2&gt;
  
  
  📂 Dive into TBD's Participating Projects
&lt;/h2&gt;

&lt;p&gt;We included a wide variety of projects and issues for Hacktoberfest 2024. Each of our participating repos has a &lt;strong&gt;Hacktoberfest Project Hub&lt;/strong&gt;, which contains all issues you can pick up with the &lt;code&gt;hacktoberfest&lt;/code&gt; label. For easy reference, repos with multiple projects will have multiple project hubs.&lt;/p&gt;

&lt;p&gt;Explore our participating repos below and see where you can make an impact:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;developer.tbd.website&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Languages:&lt;/strong&gt; &lt;code&gt;MDX&lt;/code&gt;, &lt;code&gt;JavaScript&lt;/code&gt;, &lt;code&gt;CSS&lt;/code&gt;, &lt;code&gt;Markdown&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project Description:&lt;/strong&gt; Docusaurus instance powering the TBD Developer Website (this site).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/developer.tbd.website/issues/1552" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/developer.tbd.website/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;web5-js&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;TypeScript&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; The monorepo for the Web5 JS TypeScript implementation. It features libraries for building applications with decentralized identifiers (DIDs), verifiable credentials (VCs), and presentation exchange (PEX).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/tbd-examples/issues/97" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub: Protocol Explorer&lt;/a&gt; |  &lt;a href="https://github.com/TBD54566975/web5-js/issues/908" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub: General&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/web5-js/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;web5-rs&lt;/em&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;Rust&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; This monorepo houses the core components of the Web5 platform containing the core Rust code with Kotlin bindings. It features libraries for building applications with decentralized identifiers (DIDs), verifiable credentials (VCs), and presentation exchange (PEX).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/web5-rs/issues/322" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/web5-rs/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;dwn-sdk-js&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;TypeScript&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Decentralized Web Node (DWN) Reference implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/dwn-sdk-js/issues/806" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/dwn-sdk-js/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;DWA Starter&lt;/em&gt;&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;JavaScript&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Decentralized Web App (DWA) starter collection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/tbd-examples/issues/81" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub: VanillaJS&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/tbd-examples/issues/63" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub: Vue&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/tbd-examples/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;DIDPay&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Languages:&lt;/strong&gt; &lt;code&gt;Dart&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Mobile app that provides a way for individuals to interact with PFIs via tbDEX.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/didpay/issues/298" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/didpay/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;DID DHT&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;Go&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; The did:dht method and server implementation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/did-dht/issues/292" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/did-dht/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;DCX&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Languages:&lt;/strong&gt; &lt;code&gt;TypeScript&lt;/code&gt;, &lt;code&gt;JavaScript&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; A Web5 Protocol for Decentralized Credential Exchange.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/TBD54566975/incubation-dcx/issues/142" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/TBD54566975/incubation-dcx/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Goose Plugins&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language:&lt;/strong&gt; &lt;code&gt;Python&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; Plugins for Goose, an AI developer agent that operates from your command line.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/block-open-source/goose-plugins/issues/3" rel="noopener noreferrer"&gt;Hacktoberfest Project Hub&lt;/a&gt; | &lt;a href="https://github.com/block-open-source/goose-plugins/blob/main/README.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fllw, Aliased&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Languages:&lt;/strong&gt; &lt;code&gt;TypeScript&lt;/code&gt;, &lt;code&gt;JavaScript&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Description:&lt;/strong&gt; A reference app for building Decentralized Web Apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Links:&lt;/strong&gt; &lt;a href="https://github.com/csuwildcat/fllw/issues/7" rel="noopener noreferrer"&gt;Hacktoberfest Task: Fllw&lt;/a&gt; | &lt;a href="https://github.com/csuwildcat/aliased/issues/4" rel="noopener noreferrer"&gt;Hacktoberfest Task: Aliased&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Hot Tip&lt;br&gt;
Not a coder? No worries! &lt;a href="https://github.com/TBD54566975/developer.tbd.website/issues/1552" rel="noopener noreferrer"&gt;developer.tbd.website&lt;/a&gt; has tons of non-code related issues up for grabs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  📝 Guide to TBD x Hacktoberfest 2024
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;✅ Topic Check&lt;/strong&gt;: Contribute to projects that have the &lt;code&gt;hacktoberfest&lt;/code&gt; label. This ensures your PR counts towards the official Hacktoberfest prizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🏷️ Label Insights&lt;/strong&gt;:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Start with an issue labeled &lt;code&gt;hacktoberfest&lt;/code&gt; and comment ".take" to assign yourself the issue.&lt;/li&gt;
&lt;li&gt;After submitting a PR and having it approved, the PR will be labeled &lt;code&gt;hacktoberfest-accepted&lt;/code&gt; and you'll receive points on our &lt;a href="https://github.com/TBD54566975/developer.tbd.website/issues/1680" rel="noopener noreferrer"&gt;leaderboard&lt;/a&gt; and credit towards the global Hacktoberfest 🎉&lt;/li&gt;
&lt;li&gt;If your PR is marked with a &lt;code&gt;spam&lt;/code&gt; or &lt;code&gt;invalid&lt;/code&gt; label,  re-evaluate your contribution to make it count.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🥇 Code and Conduct&lt;/strong&gt;: Adhere to our &lt;a href="https://developer.tbd.website/open-source/code-of-conduct" rel="noopener noreferrer"&gt;code of conduct&lt;/a&gt; and ensure your PR aligns with the repository's goals.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🫶 Community Support&lt;/strong&gt;: Engage with fellow contributors on our &lt;a href="https://discord.com/channels/937858703112155166/1288493373354938429" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; for tips for success from participants!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;🆘 Seek Help&lt;/strong&gt;: If in doubt, don't stress! Connect with the maintainers by commenting on the issue or chat with them directly in the &lt;code&gt;#🎃┃hacktoberfest&lt;/code&gt; channel on &lt;a href="https://discord.com/channels/937858703112155166/1288493373354938429" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🎁 &lt;strong&gt;Leaderboard, Prizes and Excitement&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Be among the top 10 with the most points to snag custom swag with this year's exclusive TBD x Hacktoberfest 2024 design! To earn your place in the leaderboard, we have created a points system that is explained below. As you have issues merged, you will automatically be granted points.&lt;/p&gt;

&lt;h3&gt;
  
  
  💯 Point System
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Weight&lt;/th&gt;
&lt;th&gt;Points Awarded&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🐭 &lt;strong&gt;Small&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;5 points&lt;/td&gt;
&lt;td&gt;For smaller issues that take limited time to complete and/or don't require any product knowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐰 &lt;strong&gt;Medium&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;10 points&lt;/td&gt;
&lt;td&gt;For average issues that take additional time to complete and/or require some product knowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🐂 &lt;strong&gt;Large&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;15 points&lt;/td&gt;
&lt;td&gt;For meaty issues that take a significant amount of time to complete and/or possibly require deep product knowledge.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  🏆 Prizes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;top 10 contributors&lt;/strong&gt; with the most points will be awarded TBD x Hacktoberfest 2024 swag from our &lt;a href="https://www.tbd.shop/" rel="noopener noreferrer"&gt;TBD shop&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The &lt;strong&gt;top 3 contributors&lt;/strong&gt; in our top 10 will be awarded very limited customized TBD x Hacktoberfest 2024 swag with your github username on it. Stay tuned to our &lt;a href="https://discord.com/channels/937858703112155166/1288493373354938429" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; for the reveal!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep an eye on your progress via our &lt;a href="https://github.com/TBD54566975/developer.tbd.website/issues/1680" rel="noopener noreferrer"&gt;Leaderboard&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎙️ Livestreams &amp;amp; Office Hours
&lt;/h2&gt;

&lt;p&gt;Dive into our jam-packed Hacktoberfest schedule! Whether you're just here for fun or are focused on learning everything you can, we've got you covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Every Tuesday, &lt;strong&gt;Community Office Hours&lt;/strong&gt; - Join us every Tuesday at 1pm ET for the month of October, where we will go over PR reviews, live Q&amp;amp;A, and more. This event occurs on &lt;a href="https://discord.com/channels/937858703112155166/1008794207462359170" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Twitter Space: Hacktoberfest Rust Projects&lt;/strong&gt; - Join Staff Developer Advocate &lt;a class="mentioned-user" href="https://dev.to/blackgirlbytes"&gt;@blackgirlbytes&lt;/a&gt; &amp;amp; Software Engineer &lt;a class="mentioned-user" href="https://dev.to/kendallweihe"&gt;@kendallweihe&lt;/a&gt; this Thursday at 12pm ET, where you can learn about our core Rust SDK with Kotlin bindings and contributions we're seeking for &lt;a href="https://github.com/TBD54566975/web5-rs/issues/322" rel="noopener noreferrer"&gt;this project&lt;/a&gt;. This event will be &lt;a href="https://twitter.com/TBDevs" rel="noopener noreferrer"&gt;live on our Twitter&lt;/a&gt;. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exploring an AI-powered GitHub Action&lt;/strong&gt; - Join Head of Engineering Michael Neale &amp;amp; Staff Developer Advocate &lt;a class="mentioned-user" href="https://dev.to/blackgirlbytes"&gt;@blackgirlbytes&lt;/a&gt; this Thursday at 5pm ET, to learn more about an AI-powered action made by Goose, an AI developer agent that operates from your command line.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Live Events Calendar&lt;/strong&gt; - Keep tabs on our &lt;a href="https://discord.com/channels/937858703112155166/1288493373354938429" rel="noopener noreferrer"&gt;Discord&lt;/a&gt; or &lt;a href="https://developer.tbd.website/community" rel="noopener noreferrer"&gt;developer.tbd.website&lt;/a&gt; for our future events &amp;amp; sneak peeks - we're always cooking up something new! &lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Resources for First-Time Contributors
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;📖 &lt;a href="https://www.dataschool.io/how-to-contribute-on-github/" rel="noopener noreferrer"&gt;How to Contribute on GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🛠 &lt;a href="https://education.github.com/git-cheat-sheet-education.pdf" rel="noopener noreferrer"&gt;Git Cheatsheet&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔍 &lt;a href="https://github.com/search?q=hacktoberfest&amp;amp;type=repositories&amp;amp;s=&amp;amp;o=desc" rel="noopener noreferrer"&gt;Projects Participating in Hacktoberfest&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Happy hacking and cheers to Hacktoberfest 2024! 🎉&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
    </item>
    <item>
      <title>How Web5 and Bluesky are Building the Next Layer of the Web - A Comparative Analysis</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Tue, 27 Aug 2024 15:54:12 +0000</pubDate>
      <link>https://dev.to/tbdevs/how-web5-and-bluesky-are-building-the-next-layer-of-the-web-a-comparative-analysis-49d</link>
      <guid>https://dev.to/tbdevs/how-web5-and-bluesky-are-building-the-next-layer-of-the-web-a-comparative-analysis-49d</guid>
      <description>&lt;p&gt;As companies increasingly commodify our personal data and privacy breaches make headlines, many technologists are creating user-centered frameworks that empower individuals to control their digital identities and personal information. This concept, known as Self-Sovereign Identity (SSI), enables users to decide what data they share and with whom. While blockchain technology is a popular choice for implementing SSI, companies like &lt;a href="https://developer.tbd.website/" rel="noopener noreferrer"&gt;TBD&lt;/a&gt; are exploring (and even creating) alternative technologies to achieve these goals.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Perspective on the State of SSI
&lt;/h2&gt;

&lt;p&gt;Our efforts at TBD are part of a larger movement. In fact, there’s a consortium of tech giants and startups working together through the &lt;a href="https://identity.foundation/" rel="noopener noreferrer"&gt;Decentralized Identity Foundation&lt;/a&gt; to establish open standards and best practices for SSI, focusing on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digital Identity&lt;/li&gt;
&lt;li&gt;Interoperability&lt;/li&gt;
&lt;li&gt;Data Ownership&lt;/li&gt;
&lt;li&gt;Reliable digital verification methods&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The SSI industry is making tangible progress, especially in government sectors, as our technological solutions support the advent of Mobile Driver's Licenses.&lt;/p&gt;

&lt;p&gt;However, one of my concerns with our industry is every company is implementing varied proprietary methods. Despite aiming to solve similar problems, companies are developing their own unique DID methods, wallets, and tooling. This fragmentation raises questions for me: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can we achieve widespread adoption with disparate systems? &lt;/li&gt;
&lt;li&gt;Will the multitude of competing mechanisms overwhelm both users and developers? &lt;/li&gt;
&lt;li&gt;Will our various systems eventually work in tandem?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In November 2023, I began investigating the answers to these questions through a livestream series where I interviewed SSI experts from different companies. After conducting approximately 30 interviews, these questions remain unanswered. However, I’ve gained more in-depth knowledge about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key players in the SSI space&lt;/li&gt;
&lt;li&gt;Various technical approaches to implementing SSI&lt;/li&gt;
&lt;li&gt;Real-world applications of SSI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interviewing Bluesky
&lt;/h2&gt;

&lt;p&gt;I most recently interviewed &lt;a href="https://x.com/dan_abramov2" rel="noopener noreferrer"&gt;Dan Abramov&lt;/a&gt;, creator of &lt;a href="https://redux.js.org/" rel="noopener noreferrer"&gt;Redux&lt;/a&gt; and &lt;a href="https://react.dev/community/team" rel="noopener noreferrer"&gt;React core team member&lt;/a&gt;, about his work at &lt;a href="https://bsky.app/" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; and the development of Bluesky's underlying technology – &lt;a href="https://atproto.com/" rel="noopener noreferrer"&gt;Authenticated Transfer Protocol&lt;/a&gt;, or AT Proto for short. I learned that while TBD’s &lt;a href="https://developer.tbd.website/blog/what-is-web5/" rel="noopener noreferrer"&gt;Web5&lt;/a&gt; and Bluesky’s AT Proto share the vision of a decentralized and user-centric web, their approaches and underlying technologies offer a fascinating contrast.  I'll examine these parallel approaches in hopes that TBD, Bluesky, and the broader community can gain valuable insights into building infrastructure for the decentralized web.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Next Layer of the Web
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;The web as we know it today consists of physical, network, transport, application, and data layers. Instead of replacing the existing architecture altogether, AT Proto and Web5 aim to add a new layer enabling data to exist beyond individual applications. Both provide tools for developers to build apps within their respective ecosystems.&lt;/p&gt;

&lt;p&gt;Bluesky actually serves as a reference implementation to inspire developers and showcase AT Proto's potential.&lt;/p&gt;

&lt;h3&gt;
  
  
  Differences
&lt;/h3&gt;

&lt;p&gt;AT Proto focuses on decentralized social media, while Web5 enables developers to build any type of application, from financial tools to social media to health management. For example, I developed a fertility tracking app during a hackathon to demonstrate personal health data ownership. Additionally, at TBD, we use components of the Web5 SDK to build the tbDEX SDK, an open financial protocol that can move value anywhere around the world more efficiently and cost-effectively than traditional financial systems. &lt;/p&gt;

&lt;h2&gt;
  
  
  Data Portability
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;A common frustration with traditional web applications is that users often lose access to their data when a platform shuts down. Even if a user can export their data—say as a CSV file—it becomes static, no longer live or interactive.This data is essentially lost for most users, especially non-technical ones, as it's difficult to rebuild the ecosystem that once surrounded it. For example, moving from one social media app to another means users lose their followers, viral posts, and reputation and have to start from scratch. &lt;/p&gt;

&lt;p&gt;Web5 and AT Proto enable users to take their data from one application to another. For example, if a user leaves Bluesky, which operates on AT Proto, they can migrate their data to another AT Proto-compatible app without losing their social connections or posts. Similarly, if an app built with Web5 were to shut down, a user could bring their data to another Web5 app. &lt;/p&gt;

&lt;h3&gt;
  
  
  Differences
&lt;/h3&gt;

&lt;p&gt;Data portability on these platforms varies due to different data management approaches. AT Proto uses a federated model where each app operates a Personal Data Server (PDS). The PDS, typically managed by the app provider, stores all user data in a repository tied to the user’s identity. Users can move their repository—containing posts, social graphs, and more—between apps within the AT Proto ecosystem by connecting it to another PDS.&lt;/p&gt;

&lt;p&gt;In contrast, Web5 depends on&lt;a href="https://developer.tbd.website/docs/web5/decentralized-web-nodes/what-are-dwns" rel="noopener noreferrer"&gt; Decentralized Web Nodes (DWNs)&lt;/a&gt;, which are personal data stores fully controlled by the user. To switch apps, users point the new application to their DWN and specify the types of data users of the app can access.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use of W3C Standards for Authentication
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;Both AT Proto and Web5 leverage the W3C standard called &lt;a href="https://developer.tbd.website/docs/web5/decentralized-identifiers/what-are-dids" rel="noopener noreferrer"&gt;Decentralized Identifiers (DIDs)&lt;/a&gt;, which are globally unique alphanumeric identifiers that can move with you across different applications. This enables users to maintain their identities consistently across platforms. &lt;/p&gt;

&lt;p&gt;While DIDs are often associated with blockchain technology, both Web5 and AT Proto implement a blockchain-less approach. For instance, Bluesky uses a custom DID method called &lt;code&gt;did:plc&lt;/code&gt; (DID Placeholder), while Web5 employs &lt;code&gt;did:dht&lt;/code&gt; (DID Distributed Hash Table), which anchors DIDs on BitTorrent instead of a blockchain. Learn more about TBD’s DID method &lt;a href="https://developer.tbd.website/blog/did-dht" rel="noopener noreferrer"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;h3&gt;
  
  
  Differences
&lt;/h3&gt;

&lt;p&gt;Many developers have told me that the way AT Proto handles authentication is what attracted them to the Bluesky, but many of them don’t even realize that they’re using DIDs under the hood. On Bluesky, users can use one of their existing domain names as their username. Bluesky verifies ownership by performing a DNS lookup to make sure the domain belongs to the user. Once verified, the domain is linked to a DID, and the user is marked as verified on their account.&lt;/p&gt;

&lt;p&gt;Web5 also uses &lt;a href="https://developer.tbd.website/blog/did-authentication" rel="noopener noreferrer"&gt;DIDs for authentication&lt;/a&gt; but in a different way. DIDs eliminate the need for usernames and passwords. Instead, you can log in directly with your DID. This is possible because, in the Web5 ecosystem, every DID has cryptographic keys that securely prove ownership.&lt;/p&gt;

&lt;h2&gt;
  
  
  Permission Management
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;Both AT Proto and Web5 offer permission management systems, but there are key differences in who can manage these permissions. &lt;/p&gt;

&lt;h3&gt;
  
  
  Differences
&lt;/h3&gt;

&lt;p&gt;AT Proto takes an application-centric approach to permission management. Permissions are defined by applications using schemas called lexicons, which dictate the rules that the PDS follows. As a result, the extent of control users have over their data depends on the permissions set by the application.&lt;/p&gt;

&lt;p&gt;Permission management is where Web5 shines. Users define access controls through JSON schemas called &lt;a href="https://developer.tbd.website/docs/web5/decentralized-web-nodes/what-are-protocols" rel="noopener noreferrer"&gt;Protocols&lt;/a&gt;, specifying who can access specific data stored in their DWN. This is why building a fertility tracking app with Web5 was ideal for me: I could explicitly deny social media apps, marketing platforms, and retailers access to my personal health data, while allowing only my healthcare provider and partner to access it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Special URLs for Data Access
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Similarities
&lt;/h3&gt;

&lt;p&gt;Most web users are familiar with URLs, which serve as web addresses to retrieve data online. Similarly, AT Proto and Web5 use their specialized URLs to access data within their ecosystems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Differences
&lt;/h3&gt;

&lt;p&gt;In AT Proto, special URLs start with the prefix &lt;code&gt;at://&lt;/code&gt; and point to data in a user's PDS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; &lt;code&gt;at://alice.com/app.bsky.feed.post/1234&lt;/code&gt; might reference a specific post in a user's social media feed.&lt;/p&gt;

&lt;p&gt;In Web5, Decentralized Resource Locators (DRLs) start with the prefix &lt;code&gt;https://dweb&lt;/code&gt; and link to data stored in a DWN.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example&lt;/strong&gt;: &lt;code&gt;https://dweb/${did}/read/records/${recordId}&lt;/code&gt; allows a user to fetch a specific record from a DWN.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;While I've described some core differences between Web5 and AT Proto, there are more interesting features to explore, including how Bluesky implements algorithmic choice, how Web5 uses W3C's Verifiable Credentials to prove digital identity, and how both platforms refer to individual data pieces as "records." These topics deserve their own deep dives. For now, I encourage you to continue exploring via:&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;Watch&lt;/strong&gt;: My &lt;a href="https://www.youtube.com/watch?v=D5WVK7KfTAk" rel="noopener noreferrer"&gt;interview&lt;/a&gt; with Dan Abramov explaining Bluesky’s implementation&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/D5WVK7KfTAk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Learn&lt;/strong&gt;: Check out my SSI expert interview series called &lt;a href="https://www.youtube.com/watch?v=D5WVK7KfTAk&amp;amp;list=PLVDXxkJvk9Op3zuWksUfd19SPO2hH2Aen" rel="noopener noreferrer"&gt;tbdTV&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🤝 Join: Build with us and join our discussions on &lt;a href="https://discord.gg/tbd" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>web5</category>
      <category>atprotocol</category>
      <category>bluesky</category>
    </item>
    <item>
      <title>Simplifying Cross-Platform Payments with DAPs</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 31 Jul 2024 16:47:53 +0000</pubDate>
      <link>https://dev.to/tbdevs/simplifying-cross-platform-payments-with-daps-2210</link>
      <guid>https://dev.to/tbdevs/simplifying-cross-platform-payments-with-daps-2210</guid>
      <description>&lt;p&gt;"Dap me up!" is a colloquial term followed by a gesture used in Western cultures to greet people or express solidarity. At TBD, we're adding a new meaning to this phrase with Decentralized Agnostic Paytags (DAPs), an open source approach designed to simplify peer-to-peer payments across various applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solving an Awkward Issue
&lt;/h2&gt;

&lt;p&gt;Peer-to-peer (P2P) payment applications have existed since the late '90s, starting with tools like PayPal. With the rise of smartphones, innovative mobile apps like Venmo, Zelle, and Block's very own Cash App have made it easier to exchange funds directly from our phones. &lt;/p&gt;

&lt;p&gt;However, a persistent issue remains: the sender and recipient must use the same app to complete a transaction. People have personal and valid reasons for choosing their preferred payment apps.&lt;/p&gt;

&lt;p&gt;This situation creates an uncomfortable, unspoken battle when you need to pay a friend after dinner or a contractor for a service, only to discover that you use CashApp while they use Venmo. Now, you both face the dilemma of deciding who will download a new app, set up a new account, and link it to their bank account.&lt;/p&gt;

&lt;p&gt;Instead, P2P payment apps can use DAPs—agnostic unique identifiers stored in a registry—to identify and route payments to the correct destination across different platforms. This allows you and the recipient to financially "dap each other up" regardless of which apps you prefer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Decentralized Agnostic Paytags (DAPs)
&lt;/h2&gt;

&lt;p&gt;A DAP is a user-friendly handle for payments, structured as &lt;code&gt;@local-handle/domain&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;Here's an example: I love the handle blackgirlbytes. If I registered that handle on Cash App's DAP registry, my DAP would be &lt;code&gt;@blackgirlbytes/cash.app&lt;/code&gt;. Similarly, if I registered that handle on DIDPay's DAP registry, my handle would be &lt;code&gt;@blackgirlbytes/didpay.me&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Each DAP links to a &lt;a href="https://developer.tbd.website/docs/web5/learn/decentralized-identifiers" rel="noopener noreferrer"&gt;Decentralized Identifier (DID)&lt;/a&gt; to help identify who you are, regardless of the platform. While your DID includes cryptographic keys for identity protection, it also contains your money address—a unique identifier that directs different payment systems where to send your funds.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get Started with DAPs
&lt;/h2&gt;

&lt;p&gt;The DAP ecosystem has two key actors: the payment platform that offers DAPs and the users who own the DAPs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For Organizations:&lt;/strong&gt; Any organization can enable users to create a DAP on their platform by setting up a DAP registry associated with their domain. This registry serves two main functions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It allows users to sign up for DAPs.&lt;/li&gt;
&lt;li&gt;It maps users' DAPs with their DID and money address.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For Users:&lt;/strong&gt; Once a DAP registry is available on your preferred platform, you can sign up for a DAP using your chosen handle.&lt;/p&gt;

&lt;p&gt;If you're eager to experiment with DAPs but your preferred payment platform hasn't implemented a DAPs registry yet, you can obtain a DAP via our &lt;a href="https://github.com/TBD54566975/dap-registry-static" rel="noopener noreferrer"&gt;static DAP registry&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keep Up to Date
&lt;/h2&gt;

&lt;p&gt;DAPs debuted during a company-wide Hackathon at Block, where TBD, Cash App, and Square teams collaborated to bring this vision to life. As the DAP implementation continues to evolve, here are a few ways you can stay involved:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Join the &lt;a href="http://discord.gg/tbd" rel="noopener noreferrer"&gt;TBD Discord&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Read the DAP &lt;a href="https://github.com/TBD54566975/dap" rel="noopener noreferrer"&gt;specification&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Contribute to the open source SDKs:

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/tbd54566975/dap-js" rel="noopener noreferrer"&gt;dap-js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tbd54566975/dap-go" rel="noopener noreferrer"&gt;dap-go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tbd54566975/dap-kt" rel="noopener noreferrer"&gt;dap-kt&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tbd54566975/dap-dart" rel="noopener noreferrer"&gt;dap-dart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Create a DAP in our &lt;a href="https://github.com/TBD54566975/dap-registry-static" rel="noopener noreferrer"&gt;static DAP registry&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Watch the video below to learn more&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/raFmsGNQtb8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>fintech</category>
      <category>productivity</category>
      <category>identity</category>
    </item>
    <item>
      <title>7 Unexpected Ways Verifiable Credentials are Used Today</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Wed, 24 Jul 2024 20:57:43 +0000</pubDate>
      <link>https://dev.to/tbdevs/7-unexpected-ways-verifiable-credentials-are-used-today-438</link>
      <guid>https://dev.to/tbdevs/7-unexpected-ways-verifiable-credentials-are-used-today-438</guid>
      <description>&lt;p&gt;"Verifiable Credentials seem niche. Only a small group of technologists would be interested in this," a conference attendee declared after I enthusiastically described my company's work in the Global Payments and Self-Sovereign Identity (SSI) ecosystem.&lt;/p&gt;

&lt;p&gt;This comment gave me pause. Less than a year ago, I first encountered &lt;a href="https://developer.tbd.website/docs/web5/learn/verifiable-credentials" rel="noopener noreferrer"&gt;Verifiable Credentials (VCs)&lt;/a&gt; - a W3C standard for digital credentials that state specific facts about individuals, organizations, or entities. My initial reaction was similar to the conference attendee’s response. However, after interviewing SSI builders on a weekly livestream, my perspective changed dramatically.&lt;/p&gt;

&lt;p&gt;While VCs are relatively new and primarily explored by SSI enthusiasts, their benefits extend far beyond this group. Many of the services and products you use today already rely on them – even if you don't realize it.&lt;/p&gt;

&lt;p&gt;From healthcare to content creation, finance to travel, VCs are changing how we share and verify information. Here's a look at seven real-world applications of VCs that may surprise you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile Driver’s Licenses&lt;/li&gt;
&lt;li&gt;The Pharmaceutical Supply Chain&lt;/li&gt;
&lt;li&gt;Content Creation and Generative AI&lt;/li&gt;
&lt;li&gt;Music Copyright&lt;/li&gt;
&lt;li&gt;Loan Applications&lt;/li&gt;
&lt;li&gt;Online Marketplaces and Catfishing&lt;/li&gt;
&lt;li&gt;Native Tribes&lt;/li&gt;
&lt;li&gt;Learn More&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. Mobile Driver’s Licenses
&lt;/h2&gt;

&lt;p&gt;If you often misplace your wallet like me, there's good news — your state may support the use of Mobile Driver's Licenses (mDLs). Louisiana was the &lt;a href="https://envoc.com/case-study/the-nations-first-digital-drivers-license/#:~:text=July%202018%3A%20LA%20Wallet%20is,as%20fishing%20and%20hunting%20licenses." rel="noopener noreferrer"&gt;first state to implement mDLs&lt;/a&gt; in 2018. Since then, mDLs have been &lt;a href="https://www.aamva.org/jurisdiction-data-maps#anchorformdlmap" rel="noopener noreferrer"&gt;gaining traction&lt;/a&gt; across the United States.  With mDLs, residents of participating states can store a digital version of their driver's license on their smartphones. This allows users to leave their physical ID at home and use their phones for identification in various situations, including travel, age-restricted services, voting, and law enforcement interactions.&lt;/p&gt;

&lt;p&gt;VCs are the technology behind mDLs because they offer features like revocation, authentication, expiration, and tamper evidence. If you use an mDL, you're using VCs!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpr2jpmtbgg4a8axwtvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwpr2jpmtbgg4a8axwtvr.png" alt="Louisiane mDL Wallet" width="800" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source: &lt;a href="https://lawallet.com/" rel="noopener noreferrer"&gt;https://lawallet.com/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  2. The Pharmaceutical Supply Chain
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/dr-carsten-st%C3%B6cker-1145871/" rel="noopener noreferrer"&gt;Dr. Carsten Stöcker&lt;/a&gt;, CEO of &lt;a href="https://www.spherity.com/" rel="noopener noreferrer"&gt;Spherity&lt;/a&gt;, introduced me to a fascinating application of VCs in the pharmaceutical industry. Pharmacies often trade medicines with each other to maintain their stock, but this exchange requires complex verification processes. They must verify the legitimacy of three key elements: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the medicine,&lt;/li&gt;
&lt;li&gt;the organization they're trading with,&lt;/li&gt;
&lt;li&gt;the provider making the trade&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="http://Caro.vc" rel="noopener noreferrer"&gt;Caro.vc&lt;/a&gt;, a Spherity company, employs VCs to simplify this process and reduce errors. Their solution allows pharmacies to quickly and securely verify all these elements, ensuring the integrity of the pharmaceutical supply chain.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To learn more about this use case, check out this discussion between Dr. Carsten Stocker and the Developer Relations Team at TBD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/5_2wCT9Tlb0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Content Creation and Generative AI
&lt;/h2&gt;

&lt;p&gt;Content creation has played a considerable role in our online lives for the past few years. For some, it has become a career, launching individuals into fame. However, whether you're an artist, seamstress, or photographer, people often steal and claim work that you made.&lt;/p&gt;

&lt;p&gt;Additionally, a new form of content creation has hit the scene: generative AI. While many use it for productivity, others exploit it to spread misinformation or generate false images and videos in the likeness of others.&lt;/p&gt;

&lt;p&gt;Organizations like Adobe, BBC, Microsoft, Sony, and Nikon formed the &lt;a href="https://contentauthenticity.org/" rel="noopener noreferrer"&gt;Content Authenticity Initiative&lt;/a&gt; and the &lt;a href="https://c2pa.org/" rel="noopener noreferrer"&gt;Coalition for Content Provenance and Authenticity&lt;/a&gt; to address these issues. These groups developed Content Credentials, which use VCs to tackle the challenges of content theft and misuse of AI-generated content, aiming to protect creators’ rights.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Focxbqej9t5ri349kla0t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Focxbqej9t5ri349kla0t.png" alt="Wrapt image with content credential" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source: &lt;a href="https://contentauthenticity.org/blog/community-story-wrapt" rel="noopener noreferrer"&gt;https://contentauthenticity.org/blog/community-story-wrapt&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Click this &lt;a href="https://contentauthenticity.org/blog/community-story-wrapt" rel="noopener noreferrer"&gt;link&lt;/a&gt; to read the case study, view the above image, view the above image, and view the image's content credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Music Copyright
&lt;/h2&gt;

&lt;p&gt;Musical artists typically don't own their masters, meaning they lack full control over their recordings when signing a record deal. Today, more musical artists are opting to own their masters to regain control over the distribution of their work. &lt;a href="https://www.linkedin.com/in/colesdavis/" rel="noopener noreferrer"&gt;Cole Davis&lt;/a&gt; describes the publishing and distribution of music as a "music supply chain" and observed a disjointed process involving agreements through text messages, scattered emails between lawyers, and inconsistent procedures.&lt;/p&gt;

&lt;p&gt;To address these issues, Davis built &lt;a href="https://www.switchchord.com/" rel="noopener noreferrer"&gt;Switchcord&lt;/a&gt;, using VCs to provide cryptographic proof of who was involved in creating a song, when it happened, and what contracts were signed. This ensures all participants receive proper credit and compensation, preventing false claims.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To learn more about this use case, check out this discussion between Cole Davis and the Developer Relations Team at TBD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NBvryBhD9YY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Loan Applications
&lt;/h2&gt;

&lt;p&gt;The U.S. credit system requires residents to accumulate debt as a prerequisite for obtaining loans, leading to more debt. Recent&lt;a href="https://www.newyorkfed.org/microeconomics/sce/credit-access#/experiences-credit-demand1" rel="noopener noreferrer"&gt; data from the Federal Reserve Bank of New York&lt;/a&gt;&lt;span&gt; &lt;/span&gt;underscores this systemic issue, revealing that 1 in 5 applicants for mortgages, car loans, or other loans were rejected — the highest rate in five years.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://formfree.com/" rel="noopener noreferrer"&gt;FormFree&lt;/a&gt; is addressing this problem using the&lt;a href="https://developer.tbd.website/docs/web5/" rel="noopener noreferrer"&gt; Web5 SDK&lt;/a&gt; to provide VCs for loan borrowers through their &lt;a href="https://www.formfree.com/passport/" rel="noopener noreferrer"&gt;Passport&lt;/a&gt; product. Their approach involves creating an anonymized, tamper-proof credit profile as a VCs for lenders to review and make offers, aiming to put power back in the hands of the borrower.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To learn more about this use case, check out this discussion between the FormFree team and the Developer Relations Team at TBD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/vXYyT8rLaR4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Online Marketplaces and Catfishing
&lt;/h2&gt;

&lt;p&gt;Unfortunately, online marketplace scams are common. From purchasing a car to renting a home or adopting a pet, you can buy and sell almost anything online. However, there's no foolproof mechanism to ensure the seller is trustworthy.&lt;/p&gt;

&lt;p&gt;With the rise of social media, catfishing — where a person pretends to be someone they're not while online dating — has also increased dramatically. While many believe they're not susceptible,&lt;a href="https://wifitalents.com/statistic/social-media-catfish/" rel="noopener noreferrer"&gt; 23%&lt;/a&gt; of online dating participants reported being catfished, and&lt;a href="https://wifitalents.com/statistic/social-media-catfish/" rel="noopener noreferrer"&gt; 41%&lt;/a&gt; of catfish victims are between the ages of 18 and 34. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jeffrey-alan-schwartz" rel="noopener noreferrer"&gt;Jeffrey Schwartz&lt;/a&gt; created &lt;a href="https://www.dentity.com/" rel="noopener noreferrer"&gt;Dentity&lt;/a&gt; to reduce the frequency of scams and catfishing incidents. Dentity uses VCs to verify individuals on any platform, from dating apps to online marketplaces. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To learn more about this use case, check out this discussion between Jeffrey and the Developer Relations Team at TBD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hnNZcqfbBFE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Native Tribes
&lt;/h2&gt;

&lt;p&gt;Special Economic Zones (SEZs) are designated areas within a country that operate under different business and trade laws than the rest of the nation. These zones typically offer incentives like tax breaks and simplified regulations. &lt;a href="https://www.catawba.com/" rel="noopener noreferrer"&gt;The Catawba Indian Nation&lt;/a&gt; established their own SEZ called the &lt;a href="https://catawbadigital.zone/" rel="noopener noreferrer"&gt;Catawba Digital Economic Zone&lt;/a&gt;, with the goal of driving economic development, attracting businesses, and creating opportunities for tribal members.&lt;/p&gt;

&lt;p&gt;The Catawba Digital Economic Zone is using the &lt;a href="https://developer.tbd.website/docs/web5/" rel="noopener noreferrer"&gt;Web5 SDK&lt;/a&gt; to grant VCs to members. These VCs allow users to prove their identity and achieve regulatory compliance within the zone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To learn more about this use case, check out this discussion between the Catawba Digital Economic Zone Team and the Developer Relations Team at TBD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hshymp4NfYY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More
&lt;/h2&gt;

&lt;p&gt;Verifiable Credentials are making a tangible difference by solving real problems for real people - simplifying loan applications, protecting artists' rights, ensuring pharmaceutical safety, and supporting tribal sovereignty.&lt;/p&gt;

&lt;p&gt;If you have ideas for building apps with VCs, check out these resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/web5/build/verifiable-credentials/vc-issuance" rel="noopener noreferrer"&gt;Build your own Verifiable Credentials with the Web5 SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.tbd.website/docs/tbdex/" rel="noopener noreferrer"&gt;How TBD is using VCs in the tbDEX SDK&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.youtube.com/@tbd.videos/?sub_confirmation=1" rel="noopener noreferrer"&gt;TBD’s YouTube Channel&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>identity</category>
      <category>web5</category>
      <category>verifiablecredentials</category>
    </item>
    <item>
      <title>Hundreds of developers across Africa learn to speak tbDEX</title>
      <dc:creator>Adewale Abati</dc:creator>
      <pubDate>Mon, 01 Jul 2024 10:28:00 +0000</pubDate>
      <link>https://dev.to/tbdevs/hundreds-of-developers-across-africa-learn-to-speak-tbdex-559</link>
      <guid>https://dev.to/tbdevs/hundreds-of-developers-across-africa-learn-to-speak-tbdex-559</guid>
      <description>&lt;p&gt;Following the successful &lt;a href="https://dev.to/blog/tbdex-v1"&gt;launch of tbDEX 1.0&lt;/a&gt; in Rio de Janeiro, TBD embarked on a roadshow across Africa, visiting Accra, Nairobi, and Cape Town. &lt;br&gt;
Our mission was to engage with local developers and share tbDEX, an open source protocol for global payments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fog3h35wwlt2ujivjee1k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fog3h35wwlt2ujivjee1k.jpg" alt="TBD Team" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Recognizing that many African countries face significant barriers to participating in the global economy, we aimed to support the vibrant and growing developer communities in these regions. &lt;br&gt;
These communities are already tackling these challenges head-on, and we wanted to contribute by providing open source tools to build robust payment applications.&lt;/p&gt;

&lt;p&gt;The roadshow featured full-day, hands-on workshops in Accra and Nairobi, where hundreds of developers gathered to learn how to utilize tbDEX. &lt;br&gt;
The excitement was palpable as participants built wallet applications using the tbDEX SDK. &lt;br&gt;
The enthusiasm and curiosity among the developers were evident, and the success of these workshops was widely shared across &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7199777112713486337/?updateEntityUrn=urn%3Ali%3Afs_feedUpdate%3A%28V2%2Curn%3Ali%3Aactivity%3A7199777112713486337%29" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; and &lt;a href="https://x.com/yellowcard_app/status/1795385010117386749" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1794038435218387164-439" src="https://platform.twitter.com/embed/Tweet.html?id=1794038435218387164"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1794038435218387164-439');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1794038435218387164&amp;amp;theme=dark"
  }



&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-1794018057012072690-593" src="https://platform.twitter.com/embed/Tweet.html?id=1794018057012072690"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1794018057012072690-593');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1794018057012072690&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Angie Jones, Head of Developer Relations, and Adewale Abati, Staff Developer Advocate, led the workshops, demonstrating the capabilities of developers eager to integrate advanced payment solutions. &lt;br&gt;
Co-sponsored by Yellow Card and Circle, these sessions saw developers integrating wallet applications with tbDEX in just one day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bx7k6mw4ecilmwkd40o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bx7k6mw4ecilmwkd40o.jpg" alt="Angie teaching" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvf4wd9naezn02uyqntg0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvf4wd9naezn02uyqntg0.jpg" alt="Ace teaching" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylhu6s9l4eexjevurzj0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fylhu6s9l4eexjevurzj0.jpg" alt="Roadshow attendees" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7w5ost0ub7e4d4ko9cx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn7w5ost0ub7e4d4ko9cx.jpg" alt="Roadshow attendees" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition to the workshops, TBD actively participated in notable conferences across Africa. &lt;br&gt;
At the 3iAfrica conference in Accra, Mike Brock, CEO of TBD, delivered an insightful session titled "Trust Reimagined in the Digital Assets World," discussing the economic principles behind digital assets and their impact on trust and value exchange in business. &lt;br&gt;
Angie Jones hosted a roundtable discussion on tbDEX as an open protocol for global money movement."&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66uuedw6je82cg0ssndh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F66uuedw6je82cg0ssndh.jpg" alt="Mike on stage" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzwqprg2nk40z026fza4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvzwqprg2nk40z026fza4.jpg" alt="Roadshow roundtable" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The team also made a stop at Joy 99.7 FM radio station in Ghana, where Mike and Angie discussed how digital identity can enhance payment systems.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpajcbin2gl4784xtm6o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgpajcbin2gl4784xtm6o.jpg" alt="Mike Brock and Angie Jones at Joy 99.7 FM" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The journey continued to the ID4Africa conference in Cape Town, where TBD engaged with local stakeholders to gain deeper insights into the challenges surrounding digital identity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjk1ht7p6gu7u5fa7la0v.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjk1ht7p6gu7u5fa7la0v.jpg" alt="Id4Afrika Roadshow" width="800" height="943"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Overall, the roadshow was a significant step in connecting with developer communities across Africa. &lt;br&gt;
We were inspired by the talent and determination we encountered and look forward to seeing the innovative solutions that will emerge from these collaborations.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Get Started with tbDEX&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With tbDEX, anyone can dive into building innovative payment solutions without needing permission. &lt;br&gt;
This open source tool empowers developers to start building immediately. &lt;br&gt;
We welcome your &lt;a href="https://github.com/TBD54566975/tbdex" rel="noopener noreferrer"&gt;feedback and contributions&lt;/a&gt; to make tbDEX even more robust and versatile. &lt;br&gt;
Join us in breaking down barriers and building the future of global payments today.&lt;/p&gt;

</description>
      <category>tbdex</category>
    </item>
    <item>
      <title>9 Things You Didn't Know About Decentralized Identifiers</title>
      <dc:creator>Rizèl Scarlett</dc:creator>
      <pubDate>Fri, 19 Apr 2024 12:46:51 +0000</pubDate>
      <link>https://dev.to/tbdevs/9-things-you-didnt-know-about-decentralized-identifiers-2eh9</link>
      <guid>https://dev.to/tbdevs/9-things-you-didnt-know-about-decentralized-identifiers-2eh9</guid>
      <description>&lt;p&gt;Remember your first username? If you were anything like me in the early 2000s—too young to surf the web but excited about the possibilities of connecting with the rest of the world—your username probably makes you cringe today.&lt;/p&gt;

&lt;p&gt;Self-expression is the main driver for my internet usage. Over the years, I've created various usernames representing different parts of me at distinct periods of my life. From &lt;a href="https://tvtropes.org/pmwiki/pmwiki.php/Website/Millsberry" rel="noopener noreferrer"&gt;Millsberry&lt;/a&gt; to &lt;a href="https://myspace.com/" rel="noopener noreferrer"&gt;Myspace&lt;/a&gt;, each new website meant a new profile, leading to a fragmented experience. The most annoying part is that there's no connection between my profiles or "identities", so I have to remember all my passwords or rely on a password manager. Unfortunately, password managers are susceptible to &lt;a href="https://www.darkreading.com/vulnerabilities-threats/how-password-managers-can-get-hacked" rel="noopener noreferrer"&gt;security breaches&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvit81zx4jvzyt2ok4n2y.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvit81zx4jvzyt2ok4n2y.jpeg" alt="Millsberry" width="420" height="332"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mxikreznf49nurc7625.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9mxikreznf49nurc7625.png" alt="Myspace profile" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This fragmentation of identity on the web poses a significant challenge: &lt;strong&gt;&lt;em&gt;How do we manage these scattered identities efficiently and securely?&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Many organizations are working hard to answer this question. Some are going passwordless via passkeys. Others, like the &lt;a href="https://orcid.org/" rel="noopener noreferrer"&gt;Open Researcher and Contributor ID&lt;/a&gt; (ORCID), implemented digital identifiers to associate publications, research, and open source contributions with a particular researcher.&lt;/p&gt;

&lt;p&gt;Companies focused on advancing identity tech and self-sovereign identity are embracing &lt;a href="https://developer.tbd.website/docs/web5/learn/decentralized-identifiers" rel="noopener noreferrer"&gt;Decentralized Identifiers (DIDs)&lt;/a&gt; as a solution. DIDs are globally unique, alphanumeric, immutable strings representing who you are across the decentralized web. &lt;/p&gt;

&lt;p&gt;Speaking of DIDs -- &lt;strong&gt;&lt;em&gt;did&lt;/em&gt;&lt;/strong&gt; you know that Decentralized Identifiers are one of the pillars of Web5? &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqoglht3482ia3bdijg8b.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqoglht3482ia3bdijg8b.jpeg" alt="badumtss" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this post, we'll explore nine more things you may not have known about Decentralized Identifiers.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. DIDs are a W3C Standard
&lt;/h2&gt;

&lt;p&gt;In 1994, Tim Berners Lee, the creator of the World Wide Web, founded the World Wide Web Consortium (W3C). The W3C is made up of groups of people focused on setting the best practices and standards for building the web. For example, the W3C develops and maintains standards for HTML, CSS, Web Accessibility, and Web Security. In July 2022, The W3C officially &lt;a href="https://www.w3.org/TR/did-core/" rel="noopener noreferrer"&gt;published standards for Decentralized Identifiers&lt;/a&gt;. This way, technologists would have blueprint for building and managing digital identities as we make the shift towards controlling your own identity on the internet.   &lt;/p&gt;

&lt;h2&gt;
  
  
  2. DIDs can represent more than just humans
&lt;/h2&gt;

&lt;p&gt;While DIDs represent people across the web, they can also represent organizations such as manufacturers, businesses, or government agencies. Technologists are exploring using &lt;a href="https://www.arcadian-iot.eu/iot-decentralized-identity-arcadian/" rel="noopener noreferrer"&gt;DIDs to represent IoT devices&lt;/a&gt; like smart hubs, smart thermostats, or autonomous cars, allowing you to maintain control over your data usage! Here's a taboo but realistic use case that might make you blush— DIDs can even represent sex tech devices! 😳&lt;/p&gt;

&lt;h2&gt;
  
  
  3. It's nearly impossible for someone to steal your DID
&lt;/h2&gt;

&lt;p&gt;A common question people often ask me is, "Can someone steal my DID?" DIDs are alphanumeric strings, so they may give people the impression that DIDs are top-secret passwords or API keys. But that's not the case; you can share your DID with anyone without compromising your safety. It's nearly impossible for someone to steal your DID and pretend to be you because DIDs are all cryptographically signed. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does 'cryptographically signed' mean?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cryptographically signed means that each DID has a unique digital fingerprint generated by a fancy, complicated algorithm. Two keys—a public key and a private key—make up the digital fingerprint. Your public key shows other people that the DID legitimately belongs to you, but the private key &lt;strong&gt;&lt;em&gt;needs&lt;/em&gt;&lt;/strong&gt; to remain private. The private key is like your master key. Someone can only steal your DID, tamper with your DID, or impersonate you if they have access to your private key. Fortunately, it's not easy to access your private key because it is protected by encryption and multiple layers of security. Some DID methods even support key rotation meaning you can update your cryptographic keys to reduce the risk of compromise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Store your DID in an authenticated digital wallet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In addition to all these security algorithms that protect your DID from being stolen, users typically store their DIDs in an authenticated digital wallet (similar to how your Apple Wallet or Google Wallet stores your debit card information). Storing your DID in a digital wallet provides an additional layer of security because you often have to use a form of authentication like Face ID or a passcode to access items stored in the wallet. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoh03yerdgasf4yhcmpm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnoh03yerdgasf4yhcmpm.png" alt="digital wallet with did" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Your DID is more than a string
&lt;/h2&gt;

&lt;p&gt;While your DID &lt;em&gt;is&lt;/em&gt; a string, it's part of a larger JSON object called a DID document. In addition to the DID string, the DID document includes metadata like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cryptographic keys to prove ownership &lt;/li&gt;
&lt;li&gt;Rules about how your DID can be used, managed, or modified &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Below is an example of a DID document:&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;"@context"&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;"https://www.w3.org/ns/did/v1"&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://w3id.org/security/suites/ed25519-2020/v1"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:example:123456789abcdefghi"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="nl"&gt;"verificationMethod"&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;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:example:123456789abcdefghi#key-1"&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;"Ed25519VerificationKey2020"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; 

    &lt;/span&gt;&lt;span class="nl"&gt;"controller"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"did:example:123456789abcdefghi"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="nl"&gt;"publicKeyMultibase"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"&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="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="nl"&gt;"authentication"&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;"#key-1"&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;em&gt;Source: &lt;a href="https://www.w3.org/TR/did-core/#example-an-example-of-a-relative-did-url" rel="noopener noreferrer"&gt;https://www.w3.org/TR/did-core/#example-an-example-of-a-relative-did-url&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Learn more about DID documents &lt;a href="https://developer.tbd.website/docs/web5/learn/did_document" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Every DID has a DID method
&lt;/h2&gt;

&lt;p&gt;Let's examine the anatomy of a DID method. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flau53rvwygytxvyoj9wy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flau53rvwygytxvyoj9wy.png" alt="anatomy of a DID" width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every DID:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Starts with the schema &lt;code&gt;did:&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Followed by a word or acronym representing the did method &lt;/li&gt;
&lt;li&gt;Then, ends with a did method-specific identifier in the form of an alphanumeric string&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A schema and a DID method together may look like &lt;code&gt;did:web&lt;/code&gt; or &lt;code&gt;did:jwk&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are DID methods?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DID methods define the rules for creating, managing, and deactivating DIDs. &lt;/p&gt;

&lt;h2&gt;
  
  
  6. There are over 100 DID methods
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Anyone&lt;/strong&gt; can create a DID method. Companies, individuals, or communities may create a custom DID method to fit a specific use case or live on a specific type of ledger. However, to ensure the DID method is recognized, interoperable, and meets the correct standards, it's strongly recommended to include the DID method on the &lt;a href="https://github.com/w3c/did-spec-registries" rel="noopener noreferrer"&gt;W3C DID Spec Registry&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. TBD created its own DID method
&lt;/h2&gt;

&lt;p&gt;We (TBD) created our own DID method called DID:DHT. DHT stands for &lt;strong&gt;Distributed Hash Table&lt;/strong&gt; indicating the use of Mainline DHT. You can learn more about DID:DHT via the &lt;a href="https://did-dht.com/" rel="noopener noreferrer"&gt;spec&lt;/a&gt; and this &lt;a href="https://developer.tbd.website/blog/did-dht" rel="noopener noreferrer"&gt;blog post&lt;/a&gt; written by TBD’s Director of Open Standards, &lt;a href="https://www.linkedin.com/in/cohengabe" rel="noopener noreferrer"&gt;Gabe Cohen&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;At TBD, we colloquially call DID:DHT, DID THAT.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExdTc0dWhhdTE5ZHNiZGRkeWZjcmE3MzFieHgzYzNrcnN5cmwyYWV5ciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3oD3YF49jXQaqcpsGI/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/v1.Y2lkPTc5MGI3NjExdTc0dWhhdTE5ZHNiZGRkeWZjcmE3MzFieHgzYzNrcnN5cmwyYWV5ciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3oD3YF49jXQaqcpsGI/giphy.gif" alt="tamar braxton saying she did that" width="320" height="180"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  8. You don't have to use blockchain; we use BitTorrent
&lt;/h2&gt;

&lt;p&gt;When I hear the words, "decentralized" or "immutable", I immediately think of blockchain and cryptocurrency. I don't think that train of thought is in the minority.&lt;/p&gt;

&lt;p&gt;For instance, to ensure DIDs have no central authority and that individual users can own them, folks typically anchor DIDs on an immutable ledger.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What does anchoring a DID mean?&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Anchoring a DID means recording DID transactions on a distributed ledger. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DID:DHT uses BitTorrent; not blockchain&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;At TBD, we &lt;em&gt;&lt;strong&gt;actually&lt;/strong&gt;&lt;/em&gt; took a blockchain-less approach. We anchored DID:DHT to BitTorrent. As mentioned above, DID:DHT uses a Mainline DHT, which is a distributed hash table used by the &lt;a href="https://github.com/bittorrent/bittorrent.org" rel="noopener noreferrer"&gt;BitTorrent protocol&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  9. You can create a DID with the Web5 SDK
&lt;/h2&gt;

&lt;p&gt;You can use the Web5 SDK to &lt;a href="https://developer.tbd.website/docs/web5/build/decentralized-identifiers/how-to-create-did" rel="noopener noreferrer"&gt;create a DID&lt;/a&gt;!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;&lt;code&gt;Web5.connect()&lt;/code&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You can generate a DID using the Web5.connect() method with the following steps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install the web5/api package&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;npm install @web5/api&lt;/code&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Import the package&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;import { Web5 } from '@web5/api';&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Call Web5.connect()&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;const { web5, did: myDid } = await Web5.connect();&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;console.log(myDid)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;More ways to create a DID&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Check out the &lt;a href="https://developer.tbd.website/docs/web5/build/decentralized-identifiers/how-to-create-did" rel="noopener noreferrer"&gt;documentation&lt;/a&gt; to learn more ways to create a DID in various languages including JavaScript, Kotlin, and Swift.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn more about Decentralized Identifiers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Have a question? Ask it in our &lt;a href="https://dischord.com/invite/tbd" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;; we're happy to help!&lt;/li&gt;
&lt;li&gt;Eager to start building? Follow the guides in our &lt;a href="https://developer.tbd.website/docs/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Curious about the entire ecosystem? Watch our &lt;a href="https://www.youtube.com/@TBD54566975" rel="noopener noreferrer"&gt;YouTube videos&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>web5</category>
      <category>identity</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
