Language
Docs

Documentation

Contributors: Dylan Shade
Last Updated:

ANS-109: Vouch-For (Assertion of Identity)open in new window

Status: Draft (Version 0.1)

Authors: Abhav Kedia (abhav@arweave.org), Sam Williams (sam@arweave.org), Tom Wilson (tom@hyper.io)

Abstract

This document specifies a transaction format that allows addresses to vouch for the identity of other addresses on the permaweb.

Motivation

Sybil resistance is a necessary component of most applications on the permaweb. A transaction format that allows addresses to vouch for the identity of other addresses enables human and programmatic Verifiers to confirm the humanity of addresses. All other applications can then utilize this information as a primitive for identity verification, with various safeguards that can be built on top.

One example of abstractions and safeguards built on top of such a system could be a "VouchDAO" - a community that specifies which human "Verifiers" or "Verification Services" they deem to be trustworthy at a given point in time.

Specfication

Transaction Format

A Verifier can assert the identity of an address using the Vouch-For standard by sending a transaction with the following tags.

Tag NameOptional?Tag Value
App-NameFalseVouch
Vouch-ForFalseArweave address that is being vouched for in this transaction
App-VersionTrue0.1
Verification-MethodTrueMethod of verification of identity for the person. Example - Twitter/In-Person/Gmail/Facebook
User-IdentifierTrueAn identifier for the user based on the Verification Method. Example - abhav@arweave.org

Usage

Users of this standard can run a graphql query on the arweave network with transactions of the Vouch-For standard that vouch for a particular address to be verified. For example,

query {
  transactions(
    tags:{name:"Vouch-For", values:["0L_z90sYv36VDoDhrRBffo9KrADWpCaaGQz7hJhhP9g"]}
  ) {
    edges {
      node {
        id
        tags {
          name 
          value 
        }
      }
    }
  }
}

This query returns all vouches for the address 0L_z90sYv36VDoDhrRBffo9KrADWpCaaGQz7hJhhP9g. Additional filters (such as those by an implementation of "VouchDAO" as outlined above) can be applied by filtering for specific owners that have been designated as Verifiers.