Skip to content

Linked Addresses

Ngan Pham edited this page Jan 12, 2018 · 1 revision

Buyers and sellers within Ink Protocol are designated by their Ethereum addresses, which is how you uniquely identify and pay a specific user. Over time, users may accumulate multiple addresses that they use on different marketplaces or apps. Ink allows users to link addresses they own to merge their feedback and transaction histories and create a single reputation.

Linked addresses cannot be unlinked.

The concept of linked addresses is only manifested in the reputation aggregation processes since that's the only place where it really matters. Since linking addresses requires 2 mutual links, the reputation system must all keep this in mind when building an account's reputation. For example, Address A has declared a link with Address B, but Address B did not reciprocate. This linking would mean nothing to the eyes of the reputation system.

Linking is merely expressed by the emission of an event (AccountLinked). There is no state change to the contract since the contract does not need any linking data to operate. As mentioned above, the usefulness of linking addresses is only within the realms of computing reputation which is external of the Ink Protocol contract.

event AccountLinked(
  address indexed from,
  address indexed to
);

To declare a link to another address, use one of the following functions:

function linkWith(address _account) external;
function link(address _from, address _to) external;

Use the linkWith function if you are the owner of address. If you are an authorized agent of the address you're linking linking from, you can use the link function.

Clone this wiki locally