An identity object that is used to uniquely identify a stakeholder in a request. Today, a stakeholder's IIdentity is expressed as an Ethereum address, but it is conceivable that future implementations may include alternative identity formats, perhaps W3C DIDs.
Examples of IIdentity are: payee, payer, signer, creator, and any 3rd party that can view an encrypted request's contents.
{% hint style="warning" %}
The payee identity and payer identity are NOT necessarily the same as the payment recipient (paymentAddress in the PaymentNetworkCreateParameters) or the payment sender (from address in the payment-subgraph). Conceptually, the payee and payer identities are used only for notifications and access control, NOT payment routing.
{% endhint %}
| Name | Type | Required | Description |
|---|---|---|---|
| type | Types.Identity.TYPE | true | Identity type |
| value | string | true | Identity address |
| Name | Value | Description |
|---|---|---|
| ETHEREUM_ADDRESS | 'ethereumAddress' | Externally owned account (EOA) |
| ETHEREUM_SMART_CONTRACT | 'ethereumSmartContract' | Smart contract account. Don't use this. It is not possible to create or update a request using an IIdentity of this type. This type was added to support creating/updating requests using multisig wallets via EIP-1271 but this feature has not yet been implemented. |