Skip to content

Proxy Contract ERC

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

Simple Summary

Identity contract


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.


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



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.


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


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

constructor(firstOwner) public


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;


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

function isOwner(address) public returns (bool);


function addOwner(address newOwner) public;

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


Used to give up ownership of the smart contract.

function renounce() public;

In addition, this EIP defines the following events:


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

OwnerAdded(address indexed newOwner)


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

OwnerRemoved(address indexed formerOwner)


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.


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

Copyright and related rights waived via CC0.