Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion EIPS/eip-7015.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ Creator attribution is given through a signature verification that MUST be verif
- `structHash`: hashed information for deploying the NFT contract (e.g. name, symbol, admins etc)
- `domainName`: the domain name of the contract verifying the singature (for EIP-712 signature validation)
- `version`: the version of the contract verifying the signature (for EIP-712 signature validation)
- `creator`: the creator's account
- `signature`: the creator’s signature

The event is defined as follows:
Expand All @@ -55,13 +56,14 @@ event CreatorAttribution(
bytes32 structHash,
string domainName,
string version,
address creator,
bytes signature
);
```

Note that although the `chainId` parameters is necessary for [EIP-712](./eip-712.md) signatures, we omit the parameter from the event as it can be inferred through the transaction data. Similarly, the `verifyingContract` parameter for signature verification is omitted since it MUST be the same as the `emitter` field in the transaction. `emitter` MUST be the token.

A platform can verify the validity of the creator attribution by reconstructing the signature digest with the parameters emitted and recovering the signer from the `signature` parameter. The recovered signer MUST be the `creator` of the token. If `CreatorAttribution` event is present creator attribution MUST be given to the `creator` instead of the account that submitted the transaction.
A platform can verify the validity of the creator attribution by reconstructing the signature digest with the parameters emitted and recovering the signer from the `signature` parameter. The recovered signer MUST match the `creator` emitted in the event. If `CreatorAttribution` event is present creator and the signature is validated correctly, attribution MUST be given to the `creator` instead of the account that submitted the transaction.

### Reference Implementation

Expand All @@ -81,6 +83,7 @@ abstract contract ERC7015 is EIP712 {
bytes32 structHash,
string domainName,
string version,
address creator,
bytes signature
);

Expand Down Expand Up @@ -109,6 +112,7 @@ abstract contract ERC7015 is EIP712 {
structHash,
"ERC7015",
"1",
creator,
signature
);
}
Expand Down