Skip to content

Proxy Contract ERC

eip: <to be assigned>
title: ERC: Identity Proxy Contract
author: David Ammouial (@davux) <dammouia@everis.com>
status: Draft
type: Standards Track
category: ERC
created: 2019-06-04

Simple Summary

Identity contract

Abstract

This ERC describes the interface used for identity management: creation of an identifier, update of information related to an identifier, and action on behalf of an identifier.

Motivation

There is a need to standardize the interface for contract-based digital identifiers to be used, so as to allow for interoperability between implementations.

Definitions

Owner

The owner of an identifier (i.e. Proxy contract) is an Ethereum address recognized by the Proxy contract to originate transactions that the Proxy contract will forward. While the address of a Proxy contract is permanent, owners may be added and removed as needed.

Specification

This EIP defines an interface called Proxy, which provides the following functions:

constructor

The constructor is used to instantiate a new identifier (i.e. Proxy contract). It takes a firstOwner address of that proxy.

constructor(firstOwner) public

forward

Used to instruct the smart contract to execute a given function (in the form of its bytecode data) and/or transfer a certain value of ethers to a given destination smart contract.

function forward(address destination, uint value, bytes data) public;

isOwner

Returns whether a given address is allowed to execute forward on the smart contract.

function isOwner(address) public returns (bool);

addOwner

function addOwner(address newOwner) public;

Used to add a newOwner address as an owner of the smart contract.

renounce

Used to give up ownership of the smart contract.

function renounce() public;

In addition, this EIP defines the following events:

OwnerAdded

This event is emitted everytime a newOwner address is added to the contract.

OwnerAdded(address indexed newOwner)

OwnerRemoved

This event is emitted everytime a formerOwner address is removed from the contract.

OwnerRemoved(address indexed formerOwner)

Rationale

For digital identity to be self-sovereign, it needs to be able to rely on a trusted, decentralized backbone. Ethereum blockchain is a satisfying component for that requisite.

Backwards Compatibility

This EIP doesn't introduce any known backwards compatibility issues. However, it does a similar job as other ERCs such as ERC-725 and others, and there are plans to integrate the most recent developments into this EIP.

Implementation

KayTrust Provider web application and KayTrust Wallet mobile application provide an implementation of the Proxy contract.

Copyright and related rights waived via CC0.