{"id":18602438,"url":"https://github.com/softstack/w3-now-soulbound-nft","last_synced_at":"2026-04-24T12:33:27.211Z","repository":{"id":226765897,"uuid":"715728218","full_name":"softstack/w3-now-soulbound-nft","owner":"softstack","description":"Soulbound NFT for W3NOW Study\" is a blockchain project aimed at recognizing and verifying participation in the W3NOW study through a unique, non-transferable NFT (Non-Fungible Token) mechanism.","archived":false,"fork":false,"pushed_at":"2024-03-09T14:15:55.000Z","size":149,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-26T17:47:38.261Z","etag":null,"topics":["hbi","nft","open-source","solidity","solidity-contracts","soulbound","w3now"],"latest_commit_sha":null,"homepage":"https://www.w3now.de/","language":"TypeScript","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/softstack.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}},"created_at":"2023-11-07T18:00:21.000Z","updated_at":"2024-03-09T14:16:25.000Z","dependencies_parsed_at":"2024-03-09T15:28:16.623Z","dependency_job_id":"539e01bb-f1d1-4c1b-8492-990823a602ea","html_url":"https://github.com/softstack/w3-now-soulbound-nft","commit_stats":null,"previous_names":["softstackhq/w3-now-soulbound-nft","softstack/w3-now-soulbound-nft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/softstack/w3-now-soulbound-nft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softstack%2Fw3-now-soulbound-nft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softstack%2Fw3-now-soulbound-nft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softstack%2Fw3-now-soulbound-nft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softstack%2Fw3-now-soulbound-nft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softstack","download_url":"https://codeload.github.com/softstack/w3-now-soulbound-nft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softstack%2Fw3-now-soulbound-nft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["hbi","nft","open-source","solidity","solidity-contracts","soulbound","w3now"],"created_at":"2024-11-07T02:11:23.582Z","updated_at":"2026-04-24T12:33:27.183Z","avatar_url":"https://github.com/softstack.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# W3NOW Soulbound NFT\n\nFür die Studie [W3NOW](https://www.w3now.de/) wurde ein \"Soulbound NFT\" entwickelt, der an alle Teilnehmer der Studie ausgeschüttet werden soll. Der Smart Contract erlaubt es dem Besitzer NFTs zu schürfen und an beliebige Adressen zu senden (minting). Jede Adresse darf maximal einen NFT besitzen und hat die Möglichkeit diesen eigenständig wieder zu zerstören (burnen). Damit ist das Recht auf Löschung nach Artikel 17 DSGVO abgedeckt. Die geschürften NFTs haben alle die selben Metadaten und dienen als Nachweis, an der Studie teilgenommen zu haben. Es gibt keine Möglichkeit die NFTs nach der Erstellung (initiales Senden zum Empfänger) an Dritte weiter zu transferieren. Die Token sind für ihren Lebenzyklus fest an eine Adresse gebunden.\n\nEnglish:\nFor the W3NOW study, a \"Soulbound NFT\" was developed to be distributed to all participants of the study. The smart contract allows the owner to mine NFTs and send them to any address (minting). Each address may own a maximum of one NFT and has the option to destroy it independently (burning). This covers the right to erasure under Article 17 GDPR. The mined NFTs all have the same metadata and serve as proof of participation in the study. There is no possibility to transfer the NFTs to third parties after their creation (initial sending to the recipient). The tokens are permanently bound to an address for their lifecycle.\n\n## Scripts\n\nTo interact with this repository your can take advantage of predefined scripts for setting up, testing, linting, formating or compiling. Feel free to add your own scripts (for example for contract deployment or verification).\n\n### Installing dependencies\n\nTo install all required project dependencies run:\n\n```shell\nnpm install\n```\n\n### Compile smart contracts\n\nTo compile solidity smart contracts of this repository run:\n\n```shell\nnpm run compile\n```\n\n### Run test cases for smart contract\n\nTo execute all test cases located in the _test_ folder run:\n\n```shell\nnpm run test\n```\n\n### Testing code coverage\n\nTo get the current code coverage of all test for all solidity files run:\n\n```shell\nnpm run coverage\n```\n\n### Deploy smart contracts\n\nTo deploy the Soulbound NFT contract follow these steps:\n\n1. Create a .env file with the following variables ([.env.example](.env.example)) and set the values for the target network:\n\n```\nETHERSCAN_API_KEY=ABC123ABC123ABC123ABC123ABC123ABC1\nPOLYGON_URL=\u003cRPC URL FOR POLYGON NETWORK\u003e\nMUMBAI_URL=\u003cRPC URL FOR MUMBAI NETWORK\u003e\nPRIVATE_KEY=0xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc1\n```\n\n2. Adjust the deployment arguments in [deploymentArgs](scripts/deploymentArgs.ts) to set the token parameters as desired:\n\n```\nconst DeploymentArgs = [\n    \"W3NOW-NFT 2023\", // collection name\n    \"W3NOW23\", // collection symbol\n    \"https://ipfs.io/ipfs/QmPLosNSsFw81UZQisFzGm8mQ7HzmKSReQe6Ds2XF8c1cV\", // token URI (metadata)\n    \"0x2Cf143175b21564bc7520FF2d893884104dB8d07\", // owner address\n]\n```\n\n3. Run the script to deploy the NFT contract on the desired network by selecting the proper network name.\n\n```shell\nnpm run deploy \u003cmumbai | polygon\u003e\n```\n\n## Verifying deployed smart contracts\n\nIf you successfully deployed the NFT contract copy the contract address and run the following command to verify the contract.\nRun the following command and replace `DEPLOYED_CONTRACT_ADDRESS` with the copied address of the deployed contract:\n\n```shell\nnpx hardhat verify \u003cmumbai | polygon\u003e DEPLOYED_CONTRACT_ADDRESS\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftstack%2Fw3-now-soulbound-nft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftstack%2Fw3-now-soulbound-nft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftstack%2Fw3-now-soulbound-nft/lists"}