{"id":30367166,"url":"https://github.com/trustdecision/trustdevice-js","last_synced_at":"2025-08-19T23:13:50.771Z","repository":{"id":64828417,"uuid":"577570449","full_name":"trustdecision/trustdevice-js","owner":"trustdecision","description":"Leading open source version of browser device fingerprint, accurate deviceID and risk identification.","archived":false,"fork":false,"pushed_at":"2025-03-07T03:09:10.000Z","size":244,"stargazers_count":267,"open_issues_count":0,"forks_count":20,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-08-08T23:29:33.077Z","etag":null,"topics":["bot","browser","browser-fingerprint","canvas","deviceid","fingerprint","fingerprintjs","fraud","javascript","trustdecision","user-agent"],"latest_commit_sha":null,"homepage":"https://trustdecision.com/solutions/trustdevice","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/trustdecision.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}},"created_at":"2022-12-13T02:58:01.000Z","updated_at":"2025-08-07T08:42:10.000Z","dependencies_parsed_at":"2023-12-15T07:43:52.934Z","dependency_job_id":null,"html_url":"https://github.com/trustdecision/trustdevice-js","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":0.08333333333333337,"last_synced_commit":"b552ce35471389f9fac2b8b9d14b4dd3bf6ac030"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/trustdecision/trustdevice-js","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-js","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-js/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-js/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-js/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trustdecision","download_url":"https://codeload.github.com/trustdecision/trustdevice-js/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trustdecision%2Ftrustdevice-js/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271236299,"owners_count":24723982,"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-08-19T02:00:09.176Z","response_time":63,"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":["bot","browser","browser-fingerprint","canvas","deviceid","fingerprint","fingerprintjs","fraud","javascript","trustdecision","user-agent"],"created_at":"2025-08-19T23:13:50.180Z","updated_at":"2025-08-19T23:13:50.758Z","avatar_url":"https://github.com/trustdecision.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.trustdecision.com/deviceFingerprint\" \u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"static/image/logo_dark.png\" /\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"static/image/logo_light.png\" /\u003e\n      \u003cimg src=\"static/image/logo_dark.png\" alt=\"trustdevice logo\" width=\"729px\" height=\"67px\"/\u003e\n      \u003c/picture\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## TrustDevice-JS\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@trustdevicejs/trustdevice-js\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/v/@trustdevicejs/trustdevice-js.svg\" alt=\"Current NPM version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@trustdevicejs/trustdevice-js\"\u003e\n    \u003cimg src=\"https://img.shields.io/npm/dm/@trustdevicejs/trustdevice-js.svg\" alt=\"Monthly downloads from NPM\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.jsdelivr.com/package/npm/@trustdevicejs/trustdevice-js\"\u003e\n    \u003cimg src=\"https://img.shields.io/jsdelivr/npm/hm/@trustdevicejs/trustdevice-js.svg\" alt=\"Monthly downloads from jsDelivr\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA lightweight library for determining device uniqueness and risk identification.\n\nCreate a device identifier based on basic device information.\n\nWill remain the same after uninstalling and reinstalling or clearing browser data.\n\n🪧Attention🪧：The functions of the basic version of github are relatively limited. \n\nYou can visit [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-5fkjqqnkoajcs?sr=0-1\u0026ref_=beagle\u0026applicationId=AWSMPContessa) or [TrustDecision](https://trustdecision.com/solutions/device-fingerprint)  to learn about our professional version.\n\n[Open Source Demo](https://statictest.tongdun.net/trustdevice/index.html)\n\n### Browser support\n\n- Internet Explorer 9+\n- Edge 12+\n- Chrome 33+\n- Firefox 29+\n- Desktop Safari 7.1+\n- Mobile Safari 8+\n- Android Browser 4.4+\n\n## Integration Description\n\n```html\n\u003cscript\u003e\n    (function () {\n      window._fmOpt = {\n        success: function (result) {\n          console.log('deviceId: ', result.deviceId)\n        }\n      }\n      var fm = document.createElement('script');\n      fm.type = 'text/javascript';\n      fm.async = true;\n      fm.src =\n      './dist/fm.js?t='\n      + (new Date().getTime()/3600000).toFixed(0);\n      var s = document.getElementsByTagName('script')[0];\n      s.parentNode.insertBefore(fm, s);\n    })();\n  \u003c/script\u003e\n```\n## Open Source Features\n\n+ Basic device ID, consistent when uninstalling applications and reinstalling.\n+ Basic equipment information, which can be used for simple data analysis.\n+ Basic risk identification ability\n\n| RiskLabel      |       Risk Description |\n| --------- | --------------------------- |\n| disabledCookie   |    Cookies are set to disable.      |\n| debugger   |  The attacker or developer opens the browser developer tool for debugging.         |\n\n## Open Source VS Pro\n| Ability | Open Source |  Pro  |\n| :-------: | :-------: | :-------------------------: |\n| 100%open source | yes | no |\n| Device ID | Basic | Extremely stable |\n| Device Risk Label | Basic | Extremely rich |\n| Device Details | Basic  | Extremely rich |\n| IP Location | -  | ✓ |\n| Device Risk Score | -  | ✓ |\n| Environment Risk Evaluation | -  | ✓ |\n| Fraud Tools Detection | -  | ✓|\n| Behavioral Activity Capturing | -  | ✓ |\n\n## Pro Introduction\n\nTrustDecision TrustDevice has the leading device fingerprint technology, which has been integrated by more than 10000 global leading brands, protecting the entire customer journey.\n\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://www.trustdecision.com/solutions/trustdevice\"\u003e\n    \u003cimg src=\"static/image/trustdevice_card.png\" alt=\"trustdevice card\"  /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n**There are 6 leading core features about TrustDevice Pro:**\n\n### 1. Wide Coverage\nComprehensive coverage of Android, iOS, Web, H5, applets and other device types.\n\n### 2. Stable and Reliable\nTrustDevice served more than 10,000 clients, 200 million+ daily active users , and 6 billion+ devices , with excellent product functions and stability.\nThe fingerprint accuracy of different terminal devices exceeded 99.9%, and the output of risk labels exceeded 70 items.\n\n### 3. Unparalleled Safety\nTrustDevice's code virtualization \u0026 obfuscation technology make the malware fraudsters suffer from painful cost and imprecision when performing reverse-engineering.\n\n### 4. Core Intellectual Property\nFully independent intellectual property rights, with a number of patented technology.\n\n### 5. Security Compliance\nTrustDevice is committed to the highest standards in security and compliance to keep your data safe.\nGDPR/CCA/PCI DSS/ISO 27701/ISO 9001 Compliant.\n\n### 6. Easy to Deploy\nSaaS（Software as a Service）deployment supported, reducing massively your integration cost and enabling rapid access to device fingerprint service.\n\n\n\n# Where to get support\nWe are happy to provide technical support for our open-source trustdevice-js library. We recommend using GitHub Issues to submit bugs or Discussions to ask questions. Using [issues](https://github.com/trustdecision/trustdevice-js/issues) and [discussions](https://github.com/trustdecision/trustdevice-js/discussions) publicly will help the open-source community and other users with similar issues.\n\nIn addition, any idea or interest in using TrustDevice Pro can be found on the official website（ [https://www.trustdecision.com/solutions/trustdevice](https://www.trustdecision.com/solutions/trustdevice) ）, registered account, free trial; Or via email（ TrustDevice@TrustDecision.com ）, contact us directly and quickly open the service.\n\n## TrustDevice Pro VS Others\n\u003ctable\u003e\n  \u003ctr align=\"center\"\u003e\n      \u003cth\u003eType\u003c/th\u003e\u003cth\u003eScene\u003c/th\u003e\u003cth\u003eResult\u003c/th\u003e\u003cth\u003eTrusDevice Pro\u003c/th\u003e\u003cth\u003eFingerprint\u003c/th\u003e\u003cth\u003eSeon\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n      \u003ctd\u003eDevice Fingerprint Compatibility\u003c/td\u003e\u003ctd\u003eIE9 and above\u003c/td\u003e\u003ctd\u003eAble to collect device info and generate device ID\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌ (not supported by IE)\u003c/td\u003e\u003ctd\u003e❌ (IE10 and below are not supported)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n      \u003ctd rowspan=\"2\"\u003eDevice fingerprint uniqueness\u003c/td\u003e\u003ctd\u003eAccess web application twice using browser on the same device\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID matches \u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eAccess web application using browser on two different devices\u003c/td\u003e\u003ctd\u003eDevice fingerprint/ID should not match. Each device to have its own unique device fingeprint/ID\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n      \u003ctd rowspan=\"4\"\u003eDevice Fingerprint Stability\u003c/td\u003e\u003ctd\u003eClears the browser cache and cookies\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID still matches before and after clearing\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eIncognito and non-incognito mode on the same device browser\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID match\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eThe same device browser before and after User-Agent modification\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID match\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eBefore and after browser upgrade on the same device\u003c/td\u003e\u003ctd\u003eDevice fingerprints/ID match\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n     \u003ctd rowspan=\"9\"\u003eDevice Fingerprint Risk Identification\u003c/td\u003e\u003ctd\u003eWeb crawlers (bot attacks)\u003c/td\u003e\u003ctd\u003eAbility to identify web crawlers (bot attacks)\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eIncognito mode\u003c/td\u003e\u003ctd\u003eAbility to recognize that the browser is in incognito mode/private browsing\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eHeadless browser (Chrome Headless、phantomJS、selenium、puppeteer)\u003c/td\u003e\u003ctd\u003eAble to identify the risk of use of headless browser\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eAbnormal user-agent\u003c/td\u003e\u003ctd\u003eAbility to identify UA anomalies\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eJS is debugged\u003c/td\u003e\u003ctd\u003eCan identify debugging behavior on JS\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eJS is tampered with\u003c/td\u003e\u003ctd\u003eCan identify tampering\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eDo not use cookies\u003c/td\u003e\u003ctd\u003eAbility to recognize the prohibition of the use of cookies\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eBrowser parameters have been tampered with\u003c/td\u003e\u003ctd\u003eCan identify browser environment tampering\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n    \u003ctd\u003eCommon browser cheating plug-ins\u003c/td\u003e\u003ctd\u003eCan identify common cheating plug-in risks\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr align=\"center\"\u003e\n        \u003ctd rowspan=\"3\"\u003eSecurity and Stability\u003c/td\u003e\u003ctd\u003eCode Protection\u003c/td\u003e\u003ctd\u003eThe device fingerprint SDK and JS have code protection mechanisms (such as VMP), which effectively resist black hat cracking attempts to manipulate code logic and falsify data\u003c/td\u003e\u003ctd\u003e✅ (VMP)\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eDowngrade\u003c/td\u003e\u003ctd\u003eIntercepting and sending collection requests in the Web environment can still generate device fingerprints normally\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003ctd\u003eAnti packet capture\u003c/td\u003e\u003ctd\u003eWeb (including iOS and android web) have the ability to prevent packet capture\u003c/td\u003e\u003ctd\u003e✅\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\u003ctd\u003e❌\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## License\n\nThis library is MIT licensed. Copyright trustdecision, Inc. 2022.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrustdecision%2Ftrustdevice-js","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrustdecision%2Ftrustdevice-js","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrustdecision%2Ftrustdevice-js/lists"}