{"id":30226933,"url":"https://github.com/icantmakethings/nicetotp","last_synced_at":"2025-10-13T06:37:50.047Z","repository":{"id":303586299,"uuid":"1015675658","full_name":"ICantMakeThings/NiceTOTP","owner":"ICantMakeThings","description":"Full offline (except configuration) TOTP Hardware key, using the nRF52840.","archived":false,"fork":false,"pushed_at":"2025-09-14T21:41:16.000Z","size":618,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-14T23:34:19.478Z","etag":null,"topics":["2fa","2factor","nrf52","nrf52840","offline","security","sha-1","totp"],"latest_commit_sha":null,"homepage":"","language":"C++","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/ICantMakeThings.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,"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":"2025-07-07T21:46:32.000Z","updated_at":"2025-09-14T21:41:19.000Z","dependencies_parsed_at":"2025-09-14T23:24:16.023Z","dependency_job_id":"526b017d-e371-46e7-b429-4ae6976e3144","html_url":"https://github.com/ICantMakeThings/NiceTOTP","commit_stats":null,"previous_names":["icantmakethings/nicetotp"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ICantMakeThings/NiceTOTP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ICantMakeThings%2FNiceTOTP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ICantMakeThings%2FNiceTOTP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ICantMakeThings%2FNiceTOTP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ICantMakeThings%2FNiceTOTP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ICantMakeThings","download_url":"https://codeload.github.com/ICantMakeThings/NiceTOTP/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ICantMakeThings%2FNiceTOTP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013974,"owners_count":26085429,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","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":["2fa","2factor","nrf52","nrf52840","offline","security","sha-1","totp"],"created_at":"2025-08-14T17:10:19.127Z","updated_at":"2025-10-13T06:37:50.037Z","avatar_url":"https://github.com/ICantMakeThings.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# NiceTOTP\n\nVerry niceeee ;\u003e\n\n\u003cimg width=\"200\" height=\"300\" alt=\"ew\" src=\"https://github.com/user-attachments/assets/44ae206d-7d15-4607-9325-636519ae4e47\" /\u003e\n\n\n# What is NiceTOTP?\n\nTime-based one-time password (TOTP). aka: 2FA!\n\nA alternetive to [Authy](https://www.authy.com/) / [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2). \n\nFull offline. And Standalone once all Keys have been added.\n\nSleep mode after 1 minuite. battery life info at the bottom\n\npress a button or plug it in to charge to wake it\n\n[Video here](https://www.youtube.com/watch?v=sLiadPXk7rc)\n\n## But Why?? \n\nThere are a few reasons why I made this device, mainly to lose dependence of my phone. But not just, What if your phone breaks, bricks, or something else? I rather have lots of devices that don't depend on eachother rather than a all in one for that reason, plus most \"universal\" stuff performs worse than a specific device for that single function. As of right now, I'd say it's almost complete (enough to daily drive), possibly a few more hardware security features, maybe UI polishing, fixing any bugs i haven't found yet and should be perfect. The cost is ~£6 excluding 3D printing.\n\n## Hardware is:\n+ Nice!Nano: [AliExpress Link](https://s.click.aliexpress.com/e/_omlmCuu)\n+ DS3231 RTC: [AliExpress Link](https://s.click.aliexpress.com/e/_omVV4ia)\n+ 0.96Inch Display: [AliExpress Link](https://s.click.aliexpress.com/e/_ooXwYgq)\n+ 6*6 Silicone Switch: [AliExpress Link](https://s.click.aliexpress.com/e/_oDcs8Wa)\n+ 3D [model](https://www.thingiverse.com/thing:7087241)\n\n*Note: These are referral links. If you purchase through it, I earn a commission at no extra cost to you.*\n\n![image](https://github.com/user-attachments/assets/e60bd7d0-8f01-4dfb-97a4-499b21477dde)\n\n\n# Usage\nCommands:\n- `setunixtime` example: `setunixtime 1751925355` \n- `add \u003cusername\u003e \u003cbase32secret\u003e` example: `add test JBSWY3DPEHPK3PXP` ([Compare](https://totp.danhersam.com/?secret=JBSWY3DPEHPK3PXP))\n- `list`\n- `del \u003cGetTheIDFromListCommand\u003e` example: `del 1`\n- `factoryreset` (Power cycle after)\nMore.\nOr: NiceTOTP-Configurator! (Firmware update doesnt work rn*)\n\n# Installation\n+ Build and flash the project with platformio (Make sure you add nicenano support [here](https://github.com/ICantMakeThings/Nicenano-NRF52-Supermini-PlatformIO-Support))\n+ Or Drag and drop the .UF2 onto the nicenano drive when doubble clicking reset (short rst pin with usbc sheild tapping twice quickly)\n\n# More Info / 1 Month Review\nUsing it for one month, The battery has been used up ~20% (750mAh supposedly)\n2 month update, it still only has been used up 20%.. so ye\n\nThe RTC drifted a whoping 8 seconds in that month, I mean what?!\n\nIt still shows the right code tho, but that means the last 8 Seconds are invalid. I will need to see whats up with the RTC\n\nOr Find a better one.\n\n###### More info on my [Site](https://icmt.cc/p/nicetotp/)\n\n![certification-mark-PL000020-wide](https://github.com/user-attachments/assets/abe0bc33-e4d6-4658-8217-302497127993)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficantmakethings%2Fnicetotp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficantmakethings%2Fnicetotp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficantmakethings%2Fnicetotp/lists"}