Arweave ZNS Storage

Zelf Name Service (ZNS) facilitates data (mnemonic keys, etc) encryption in a ZelfProof, its indexation in the Arweave protocol, and self-custody by the end user.

Overview

The provided JSON response represents a transaction on Arweave containing a zelfProof linked to the zelfName (myzelfname.zelf). This serves as a backup system, ensuring critical cryptographic and wallet-related information is securely stored and retrievable.


Key Components of the Response

1. Transaction Node

Each transaction is represented as a node containing the following key fields:

  • id: The unique transaction ID. This can be used to fetch the transaction data directly from Arweave using the URL format: https://arweave.net/{id}. Example: https://arweave.net/pgjhRRZ8tz6BGajDbk9CQY1eJlHuFZ9pisPphDcint4

  • owner.address: The wallet address of the transaction creator. This is the address that uploaded the data to Arweave.

  • data.size: The size of the stored data (in bytes). In this case, it’s 18369 bytes.


2. Tags

Tags are metadata associated with the transaction. In this case, they provide critical information about the zelfProof and its linked data:

  1. Content-Type: Indicates the MIME type of the stored data. Here, it’s image/png.

  2. zelfProof: A cryptographic proof linked to the zelfName. This proof is essential for identity verification, encryption, and secure wallet interactions. It’s stored in an encrypted format, ensuring privacy and security.

  3. ethAddress, solanaAddress, and btcAddress: Wallet addresses for Ethereum, Solana, and Bitcoin, respectively, associated with this zelfName. These addresses allow users to interact with various blockchain ecosystems.

  4. evm: A list of Ethereum Virtual Machine (EVM)-compatible networks supported by this zelfProof. For example: ETH, BNB, MATIC, AVAX.

  5. zelfName: The unique identifier for the user (johan1234789.zelf). This links the zelfProof to the user’s account and serves as a lookup key.


Use Case: Backup System for ZelfProofs

This system allows users to securely store their zelfProofs in a tamper-proof, permanent, and decentralized manner. Each zelfProof is linked to its corresponding zelfName, enabling users to access their encrypted proofs and wallet details anytime.

Benefits:

  • Decentralized Storage: Unlike centralized servers, Arweave ensures that data remains accessible and permanent, eliminating the risk of server failure or account loss.

  • Tamper Resistance: Once uploaded, data on Arweave cannot be modified, ensuring the integrity of the zelfProof.

  • Cross-Blockchain Support: Wallet addresses and network compatibility (e.g., Ethereum, Solana, Bitcoin) are stored alongside the zelfProof.


Accessing Data

To access the backup data for a specific zelfName:

  1. Query Arweave’s GraphQL API:

    • Filter by the zelfName tag to locate the transaction.

    • Example query:

      {
        transactions(
          tags: [{ name: "zelfName", values: ["your_zelf_name_here.zelf"] }]
        ) {
          edges {
            node {
              id
              owner {
                address
              }
              data {
                size
              }
              tags {
                name
                value
              }
            }
          }
        }
      }
  2. Use the returned id to access the transaction:


Conclusion

This implementation establishes Arweave as the backbone of Zelf’s decentralized backup system, enabling users to securely store and retrieve their zelfProofs,and access to their wallets. This approach ensures a robust, reliable, and permanent solution giving users seamless access to their cryptographic assets and identities.

Test it for yourself here

Last updated