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.
Arweave is a decentralized storage solution designed to offer permanent, tamper-resistant data storage, making it an ideal solution for preserving important information like the zelfProof
associated with the ZelfName. By leveraging Arweave's blockchain, Zelf ensures that users can securely store and retrieve their zelfProof
and related public data without relying on a centralized database, providing long-term security and availability.
Why Arweave?
Arweave offers several key advantages:
Permanent Data Storage:
Arweave's core value proposition is permanent data storage. Storing ZelfProofs on Arweave ensures that critical identity data remains tamper-proof and always accessible.
Decentralization and Security:
Arweave operates on a decentralized blockchain-like network, ensuring no central authority controls the data. This aligns with ZNS’s goal of decentralized identity management.
Data Integrity and Immutability:
Arweave guarantees that once uploaded, data cannot be altered or deleted. This immutability secures ZelfProofs from unauthorized modifications.
Cost Efficiency:
Arweave offers a one-time payment for permanent storage, making it a cost-effective solution compared to traditional cloud services that charge recurring fees.
Data Accessibility:
ZelfProofs stored on Arweave are always accessible via standard web protocols, ensuring seamless integration with ZNS services without additional backend infrastructure.
Blockchain Compatibility:
Arweave’s architecture integrates well with other blockchain ecosystems, enabling smooth interoperability for applications extending beyond ZNS.
How Arweave Enhances ZelfProof Security
Every user's zelfName
, generated during the creation of a ZelfProof, is stored on Arweave. This integration allows users to retrieve their zelfName
at any time directly from the blockchain, ensuring they have uninterrupted access to their assets. Even if users lose access to their device or backup, they can retrieve their zelfName
and zelfProof
from Arweave by searching the zelfName they leased.
Retrieval and Backup
The Arweave storage mechanism ensures that users:
Never Lose Access: Since the
zelfName
is stored on a blockchain, users can retrieve it anytime, even if other local or cloud-based storage methods fail.Easily Recover Assets: By fetching their
zelfName
from Arweave, users can restore their ZelfProof and access their assets with confidence, knowing that this data is secure, immutable, and permanently stored.
How It Works with Zelf Name Service
When a user creates a ZelfProof in Zelf Name Service, the generated ZK-Face Proof is uploaded to Arweave.
The upload process generates a unique transaction ID (TX ID), which serves as a permanent reference to the ZelfProof.
Users can retrieve their ZelfProof by querying Arweave using the Zelf Name that is stored inside the tags associated with the QR Code stored inside Arweave.

# 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/pgjhRRZ8tz6BGajDbk9CQY1eJlHuFZ9pisPphDcint4owner.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’s18369
bytes.
# Tags
Tags are metadata associated with the transaction. In this case, they provide critical information about the zelfProof
and its linked data:
Content-Type
: Indicates the MIME type of the stored data. Here, it’simage/png
.zelfProof
: A cryptographic proof linked to thezelfName
. This proof is essential for identity verification, encryption, and secure wallet interactions. It’s stored in an encrypted format, ensuring privacy and security.ethAddress
,solanaAddress
, andbtcAddress
: Wallet addresses for Ethereum, Solana, and Bitcoin, respectively, associated with thiszelfName
. These addresses allow users to interact with various blockchain ecosystems.evm
: A list of Ethereum Virtual Machine (EVM)-compatible networks supported by thiszelfProof
. For example:ETH, BNB, MATIC, AVAX
.zelfName
: The unique identifier for the user (johan1234789.zelf
). This links thezelfProof
to the user’s account and serves as a lookup key.
Accessing Data
To access the backup data for a specific zelfName
:
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"] }] owners: ["vzrsUNMg17WFPmh73xZguPbn_cZzqnef3btvmn6-YDk"] ) { edges { node { id owner { address } data { size } tags { name value } } } } }
Use the returned
id
to access the transaction:URL:
https://arweave.net/{id}
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
Was this helpful?