{"id":13746554,"url":"https://github.com/SmartTokenLabs/attestation","last_synced_at":"2025-05-09T07:30:50.698Z","repository":{"id":37351304,"uuid":"140074726","full_name":"SmartTokenLabs/attestation","owner":"SmartTokenLabs","description":"Paper and implementation of blockchain attestations","archived":false,"fork":false,"pushed_at":"2023-10-30T01:58:27.000Z","size":12305,"stargazers_count":49,"open_issues_count":54,"forks_count":9,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-03T11:38:51.068Z","etag":null,"topics":["blockchain-attestations","cryptography","ethereum","identity-attestations","web3"],"latest_commit_sha":null,"homepage":"","language":"Java","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/SmartTokenLabs.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,"governance":null}},"created_at":"2018-07-07T10:28:35.000Z","updated_at":"2025-01-14T00:18:24.000Z","dependencies_parsed_at":"2023-10-30T02:40:35.152Z","dependency_job_id":null,"html_url":"https://github.com/SmartTokenLabs/attestation","commit_stats":{"total_commits":634,"total_committers":22,"mean_commits":"28.818181818181817","dds":0.6545741324921135,"last_synced_commit":"d3f64d7190493a63f01501cabe8817827ae93a56"},"previous_names":["smarttokenlabs/attestation","tokenscript/attestation"],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartTokenLabs%2Fattestation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartTokenLabs%2Fattestation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartTokenLabs%2Fattestation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmartTokenLabs%2Fattestation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SmartTokenLabs","download_url":"https://codeload.github.com/SmartTokenLabs/attestation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253209272,"owners_count":21871622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-attestations","cryptography","ethereum","identity-attestations","web3"],"created_at":"2024-08-03T06:00:55.448Z","updated_at":"2025-05-09T07:30:47.544Z","avatar_url":"https://github.com/SmartTokenLabs.png","language":"Java","funding_links":[],"categories":["AlphaWallet"],"sub_categories":["Product/Document"],"readme":"# TokenScript - Attestation\n\nThis repository host the attestation libraries as part of TokenScript. Discussion goes to the forum https://community.tokenscript.org/\n\nYou can always use this project in your own code through Maven central, by adding the following dependency in your POM:\n ```dtd\n \u003cdependency\u003e\n   \u003cgroupId\u003eorg.tokenscript\u003c/groupId\u003e\n   \u003cartifactId\u003eattestation\u003c/artifactId\u003e\n   \u003cversion\u003e0.4.1\u003c/version\u003e\n \u003c/dependency\u003e\n```\n\nThis repository's library serves 3 use-cases of attestations.\n\n| Use-case               | Description                                                  | Protocol                                                     | Cmd Demo                         |\n| ---------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------------- |\n| Identifier attestation | Identifies a person by their Internet identifier such as Twitter Handle and email address. | See below                                                    |                                  |\n| Cheque                 | Cheque: a signed message allows the beneficiary to perform an action, such as withdrawing Ether. | [Send-token-by-identifier](http://tokenscript.org/Cheque/send_token_by_identifier.html) | [demo](cli-attestation-demo.md). |\n| Attestation as token   | An attestation that can be used as a non-fungible token.     |                                                              |                                  |\n\n\n\n## How is the code organised?\n\nThe code is not compartmentalised by use-cases, since they share common components. We provide the common components as library, then, for each use-case, a commandline utility.\n\nSince in most cases these attestations are used on the web, Web-developers should be more interested in attestations being implemented as part of token-neogotiation instead of the basic commandline form. Therefore, **this repository should be more of interest by the protocol developers**. Our JavaScript based token negotiation implementation is at the [token-negotiator repo](https://github.com/TokenScript/token-negotiator).\n\nTogether with repos that uses the library code, in total we maintain 4 repos. The relationship between these 4 repos are demonstrated here. This one is the first (the upper-left one).\n\n![various repos for components](docs/code-layout.svg)\n\n## Build\n\nYou need the following installed:\n\n- JDK (version 11 or higher)\n- Gradle (version 7.1.1 is used by our devs)\n- node.js (version 15 is used by our devs)\n\nOnce you have them installed, run:\n\n    $ gradle build\n\nThe build script will run a few tests, resulting a few pem files created in `build/test-results/` directory.\n\n## Try it yourself\n\nTo create a jar file for running the demo, run:\n\n    $ gradle shadowJar\n\nWhich will create a jar file that you can run in the commandline\n\n    build/libs/attestation-all.jar\n\nThere is a walk-through to use the functionalities provided by this library through commandline: [commandline cheque demonstration](cli-attestation-demo.md) and the  [commandline EIP712 attestation demonstration](cli-cheque-demo.md)\n\n## Organisation of this repo\n\nThis repository has the following content:\n\ndata-modules\n:the data modules definitions used in this project\n\nsrc\n:the implementation of the attestation and protocols. We use a Java-Solidity model for quick prototyping - testing.\n\nethereum/lib\n: lib for smart contracts which uses attestations\n\nethereum/issuers\n: example smart contracts used by issuers, for example, revocation list management.\n\nethereum/trustlist\n: members of trustlists to be adopted by smart contracts\n\nethereum/experiments\n: work not in the published specifications\n\nethereum/example-james-squire\n: an example to be used in your projects which requires attestations\n\npaper\n: the paper behind the design of this project. The current version there is dated (2018) and doesn't reflect the new work in the last a few years. The current focus is the [cheque/attestation protocol](http://tokenscript.org/Cheque/send_token_by_identifier.html)\n\n\n# ERC publications\n\nERC's related to this stream of work are:\n\n[ERC1386](https://github.com/ethereum/EIPs/issues/1386), [ERC1387](https://github.com/ethereum/EIPs/issues/1387) \u0026 [ERC1388](https://github.com/ethereum/EIPs/issues/1388)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmartTokenLabs%2Fattestation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSmartTokenLabs%2Fattestation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmartTokenLabs%2Fattestation/lists"}