{"id":50972825,"url":"https://github.com/pxlvre/eip712","last_synced_at":"2026-06-19T04:01:52.939Z","repository":{"id":103152857,"uuid":"552627599","full_name":"pxlvre/eip712","owner":"pxlvre","description":"🗝️ EIP-712 is a standard for structuring typed data for Ethereum smart contracts. It is a standard for how to encode typed data according to EIP-191 so that the encoded data may be used to produce a cryptographic hash and a signature.","archived":false,"fork":false,"pushed_at":"2024-04-15T01:18:18.000Z","size":14,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-19T03:44:21.301Z","etag":null,"topics":["cryptography","eip","eip712","ethereum","rust","web3"],"latest_commit_sha":null,"homepage":"https://eips.ethereum.org/EIPS/eip-712","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pxlvre.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-17T01:09:00.000Z","updated_at":"2025-03-18T04:08:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"8ff6c965-cd49-438f-9d01-f4e66a86bebc","html_url":"https://github.com/pxlvre/eip712","commit_stats":null,"previous_names":["pxlvre/eip712"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pxlvre/eip712","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pxlvre%2Feip712","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pxlvre%2Feip712/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pxlvre%2Feip712/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pxlvre%2Feip712/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pxlvre","download_url":"https://codeload.github.com/pxlvre/eip712/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pxlvre%2Feip712/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34516549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","eip","eip712","ethereum","rust","web3"],"created_at":"2026-06-19T04:01:50.588Z","updated_at":"2026-06-19T04:01:52.927Z","avatar_url":"https://github.com/pxlvre.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"🗝️ [EIP-712](https://eips.ethereum.org/EIPS/eip-712): Typed Structured Data Hashing and Signing\n\nEIP-712 is a standard for structuring typed data for Ethereum smart contracts. It is a standard for how to encode typed data according to EIP-191 so that the encoded data may be used to produce a cryptographic hash and a signature.\n\n## Motivation\n\nThere are many use cases where it is useful to allow a smart contract to verify that a message was signed by a known account. This is useful for cases such as signed approvals, price oracles, and authenticated off-chain protocols.\n\nThe Ethereum ABI specification does not provide encoding for structs, making it difficult to encode arbitrary data for signing. This EIP provides a basic specification for encoding typed data.\n\n## Specification\n\nThe key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).\n\n### Definitions\n\n- `domain` is a set of information about the context in which the message is being signed. It is encoded as a struct with the following members:\n  - `name` is a string that describes the domain to which the message is being sent. This string SHOULD be the human-readable name of the domain.\n  - `version` is a string that represents the version of the domain's message signing format. This string SHOULD be a unique identifier for the version of the domain's message signing format.\n  - `chainId` is a 256-bit integer that represents the chain ID of the chain where the message is being sent.\n  - `verifyingContract` is a 160-bit integer that represents the address of the contract that will be used to verify the message.\n  - `salt` is a 256-bit integer that represents a random value used to ensure that signatures are unique to this message.\n- `message` is a struct that contains the information to be signed. It is encoded as a struct.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpxlvre%2Feip712","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpxlvre%2Feip712","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpxlvre%2Feip712/lists"}