{"id":15065520,"url":"https://github.com/stevenmhunt/eth-signature-mark","last_synced_at":"2026-02-25T18:31:32.159Z","repository":{"id":57230774,"uuid":"444564424","full_name":"stevenmhunt/eth-signature-mark","owner":"stevenmhunt","description":"Generates a visual marker which can be embedded in a PNG image and then later translated into an Ethereum signature.","archived":false,"fork":false,"pushed_at":"2022-01-06T03:49:46.000Z","size":17,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-30T14:43:19.453Z","etag":null,"topics":["blockchain","cryptocurrency","ethereum","signatures","steganography"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stevenmhunt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-04T21:11:07.000Z","updated_at":"2022-02-15T16:16:23.000Z","dependencies_parsed_at":"2022-09-04T17:51:45.533Z","dependency_job_id":null,"html_url":"https://github.com/stevenmhunt/eth-signature-mark","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stevenmhunt/eth-signature-mark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenmhunt%2Feth-signature-mark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenmhunt%2Feth-signature-mark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenmhunt%2Feth-signature-mark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenmhunt%2Feth-signature-mark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stevenmhunt","download_url":"https://codeload.github.com/stevenmhunt/eth-signature-mark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stevenmhunt%2Feth-signature-mark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29834617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T17:57:15.019Z","status":"ssl_error","status_checked_at":"2026-02-25T17:56:11.472Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["blockchain","cryptocurrency","ethereum","signatures","steganography"],"created_at":"2024-09-25T00:39:52.987Z","updated_at":"2026-02-25T18:31:32.140Z","avatar_url":"https://github.com/stevenmhunt.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# eth-signature-mark\nGenerates a visual marker which can be embedded in a PNG image and then later translated into an Ethereum signature. The purpose of this library is to provide a simple way of adding an Ethereum signature to PNG files (for example, NFTs) so that identity information can be encoded directly in an image even if that image were to be downloaded.\n\n## Sample\n\n![Sample Signature Mark](https://raw.githubusercontent.com/stevenmhunt/eth-signature-mark/main/sample.png)\n\nGenerated by the following call: `await drawSignatureMark('./sample.png', '0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c', 0, 0, 100, 100);`\n\n## Installation\n```bash\n# as a command-line tool\nnpm install eth-signature-mark -g\n\n# as a library\nnpm install eth-signature-mark --save\n```\n\n## Usage\n\n### CLI\n```bash\n\n# an Ethereum signature:\nSIG='0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c'\n\n# get version\neth-signature-mark -v\n\n# create a signature mark on a new image (250x250)\neth-signature-mark --create './newImage.png' $SIG 0,0,50,50\n\n# create a signature mark on an existing image (30x30)\neth-signature-mark --create './existingImage.png' $SIG\n\n# extract a signature mark from an image\neth-signature-mark --extract './newImage.png' 0,0,50,50\n\n# extract a signature mark from an image\neth-signature-mark --extract './existingImage.png'\n```\n\n### NodeJS Library\n```javascript\nconst { drawSignatureMark, extractSignatureMark } = require('eth-signature-mark');\n\n// an Ethereum signature:\nconst sig = '0x21fbf0696d5e0aa2ef41a2b4ffb623bcaf070461d61cf7251c74161f82fec3a4370854bc0a34b3ab487c1bc021cd318c734c51ae29374f2beb0e6f2dd49b4bf41c';\n\n// write a new PNG file (new file will be 500x500 in size):\nawait drawSignatureMark('newImage.png' sig, 0, 0, 100, 100);)\n\n// write a signature mark on an existing file:\n// defaults to 6px by 6px cells starting at position (6, 6)\nawait drawSignatureMark('existingImage.png', sig);\n\n// extract signature data from an existing image (also accepts x, y, width, height parameters).\nconst checkSig = await extractSignatureMark('existingImage.png');\n\nassert.ok(sig === checkSig);\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenmhunt%2Feth-signature-mark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstevenmhunt%2Feth-signature-mark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstevenmhunt%2Feth-signature-mark/lists"}