{"id":16058018,"url":"https://github.com/tylim88/crypto-symbol","last_synced_at":"2025-09-02T04:08:22.854Z","repository":{"id":39620536,"uuid":"180126837","full_name":"tylim88/Crypto-Symbol","owner":"tylim88","description":":baby_chick: Provide easy conversion between crypto symbol and name, auto update daily","archived":false,"fork":false,"pushed_at":"2024-11-15T14:10:47.000Z","size":12732,"stargazers_count":16,"open_issues_count":1,"forks_count":9,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-08-24T19:57:03.875Z","etag":null,"topics":["bitcoin","crypto","cryptocurrency","ethereum","name","symbol"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/crypto-symbol","language":"TypeScript","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/tylim88.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2019-04-08T10:36:50.000Z","updated_at":"2025-04-09T10:14:04.000Z","dependencies_parsed_at":"2025-08-24T20:07:26.991Z","dependency_job_id":null,"html_url":"https://github.com/tylim88/Crypto-Symbol","commit_stats":{"total_commits":523,"total_committers":3,"mean_commits":"174.33333333333334","dds":0.03441682600382412,"last_synced_commit":"8ac76b3e0c51b0ebc8d939c2be9b99fefef8d364"},"previous_names":["tylim88/crypto-symbol-name"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/tylim88/Crypto-Symbol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FCrypto-Symbol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FCrypto-Symbol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FCrypto-Symbol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FCrypto-Symbol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tylim88","download_url":"https://codeload.github.com/tylim88/Crypto-Symbol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FCrypto-Symbol/sbom","scorecard":{"id":905102,"data":{"date":"2025-08-11","repo":{"name":"github.com/tylim88/Crypto-Symbol","commit":"212296df02f71e59cd4abaa9cfd54a9bd67b7a75"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.2,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/22 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:16","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:17","Warn: no topLevel permission defined: .github/workflows/all-pull-request.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/main.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 8 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/all-pull-request.yml:7: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/all-pull-request.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/all-pull-request.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/all-pull-request.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/all-pull-request.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/all-pull-request.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:40: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/codeql.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:8: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/main.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/main.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/main.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/tylim88/Crypto-Symbol/main.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/all-pull-request.yml:14","Warn: npmCommand not pinned by hash: .github/workflows/main.yml:16","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   2 third-party GitHubAction dependencies pinned","Info:   0 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-xq7p-g2vc-g82p","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-7hpj-7hhx-2fgx","Warn: Project is vulnerable to: GHSA-mxhp-79qh-mcx6","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q","Warn: Project is vulnerable to: GHSA-m95q-7qp3-xv42"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-24T17:03:58.238Z","repository_id":39620536,"created_at":"2025-08-24T17:03:58.238Z","updated_at":"2025-08-24T17:03:58.238Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273228031,"owners_count":25067707,"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-09-02T02:00:09.530Z","response_time":77,"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":["bitcoin","crypto","cryptocurrency","ethereum","name","symbol"],"created_at":"2024-10-09T03:05:55.849Z","updated_at":"2025-09-02T04:08:22.836Z","avatar_url":"https://github.com/tylim88.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD010 --\u003e\n\u003c!-- markdownlint-disable MD033 --\u003e\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg\u003e\n\t\t\u003cimg src=\"https://raw.githubusercontent.com/tylim88/crypto-symbol/master/img/symbol.png\" width=\"200px\"/\u003e\n\t\t\u003ch1\u003eCrypto Symbol\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\t\u003ca href=\"https://www.npmjs.com/package/crypto-symbol\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/npm/v/crypto-symbol\"\n\t\t\t\t\talt=\"Created by tylim88\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca\n\t\t\t\thref=\"https://github.com/tylim88/crypto-symbol/blob/main/LICENSE\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/github/license/tylim88/crypto-symbol\"\n\t\t\t\t\talt=\"License\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca\n\t\t\t\thref=\"https://www.npmjs.com/package/crypto-symbol?activeTab=dependencies\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/badge/dynamic/json?url=https://api.npmutil.com/package/crypto-symbol\u0026label=dependencies\u0026query=$.dependencies.count\u0026color=brightgreen\"\n\t\t\t\t\talt=\"dependency count\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://github.com/tylim88/crypto-symbol/actions\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://github.com/tylim88/Crypto-Symbol/workflows/Main/badge.svg\"\n\t\t\t\t\talt=\"github action\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://codecov.io/gh/tylim88/Crypto-Symbol\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://codecov.io/gh/tylim88/Crypto-Symbol/branch/master/graph/badge.svg\"\n\t\t\t\t\talt=\"code coverage\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://github.com/tylim88/crypto-symbol/issues\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\talt=\"GitHub issues\"\n\t\t\t\t\tsrc=\"https://img.shields.io/github/issues-raw/tylim88/crypto-symbol\"\n\t\t\t\t\u003e\u003c/img\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://snyk.io/test/github/tylim88/crypto-symbol\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://snyk.io/test/github/tylim88/crypto-symbol/badge.svg\"\n\t\t\t\t\talt=\"code coverage\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\n🐤 Simple fuzzy conversion for crypto symbol and crypto name.\n\n📔 Source: [CoinMarketCap](https://coinmarketcap.com)\n\n🔔 Almost 5000 pairs to search for, with typescript const assertion.\n\n💪 Can add your own custom name-symbol pair.\n\n🌟 Optimized lookup time.\n\n🆙 Check for update daily and publish new version if there is change.\n\n🥰 0 dependencies.\n\n⛲️ Out of box typescript support.\n\n🦺 Development code, built code, and published code are all tested in CI.\n\n## Installation\n\n```bash\nnpm i crypto-symbol\n```\n\n## Usage\n\n**Normally ticker symbol is [unique](https://coinmarketcap.com/alexandria/glossary/ticker-symbol), but for whatever reason on very rare occasional, CMC lists new coin that has the same ticker symbol(case-insensitive). If duplicated names or symbols are found in the CoinMarketCap list, the library keep higher rank(larger market cap) coins. If you need lower rank coins, please can add it yourself. Keep in mind to use unique name and unique symbol for them.**\n\n🎵 Get Pairs Object\n\n```ts\nimport { cryptoSymbol } from 'crypto-symbol'\n\nconst { get } = cryptoSymbol({})\n\n// all the pair objects are properly typed with const assertion\nget().NSPair // {Bitcoin: 'BTC',Ethereum: 'ETH','Binance Coin': 'BNB',......}\nget().SNPair // {BTC: 'Bitcoin',ETH: 'Ethereum','BNB': 'Binance Coin',......}\n```\n\n⚒ Add new pair or modify existing pair\n\n```ts\nimport { cryptoSymbol } from 'crypto-symbol'\n\n// will overwrite existing pair and add new type to pairs object\nconst { get, nameLookup, symbolLookup } = cryptoSymbol({\n\tnewCoin: 'NC123' as const, // add new coin\n\tbitcoin: 'BTC' as const, // modify existing coin\n}) // use const assertion to narrow down the type\n```\n\n🎐 Symbol Lookup\n\n```ts\nimport { cryptoSymbol } from 'crypto-symbol'\n\nconst { symbolLookup } = cryptoSymbol({})\n\n// case insensitive\n// ignore all special character and space\nsymbolLookup('  liT ec @oin  ') // \"LTC\"\nsymbolLookup(' τbITcO in ') // BTC\n\n// case insensitive\n// can allow specific special character\n// to allow multiple special character, simply concat all the character, eg \"#$%)(\"\nsymbolLookup(' τbITcO in ', { allow: 'τ' }) // TBTC\n\n// exact match (case sensitive)\nsymbolLookup('  liT ec @oin  ', { exact: true }) // undefined\nsymbolLookup('litecoin', { exact: true }) // \"undefined\"\nsymbolLookup('Litecoin', { exact: true }) // \"LTC\"\n```\n\n⚡️ Name Lookup\n\n```ts\nimport { cryptoSymbol } from 'crypto-symbol'\n\nconst { nameLookup } = cryptoSymbol({})\n\n// case insensitive\n// ignore all special character and space)\nnameLookup('  @Ltc!   ') // \"Litecoin\"\n\n// can allow specific special character\n// to allow multiple special character, simply concat all the character, eg \"#$%)(\"\n// all symbol are alphanumeric anyway, I don't think you will need it\nnameLookup('  @Ltc!   ', { allow: '@' }) // undefined, because symbol \"@Ltc\" does not exist\n\n// exact match (case sensitive)\nnameLookup('  Ltc   ', { exact: true }) // undefined\nnameLookup('Ltc', { exact: true }) // undefined\nnameLookup('LTC', { exact: true }) // Litecoin\n```\n\n🍀 Sync\n\nSync the coin manually.\n\n1. You can only use this api in server environment due to Coinmarketcap CORS policy.\n2. You need to install [axios](https://www.npmjs.com/package/axios) to use this api, simply installing it is enough.\n\n```bash\nnpm i axios\n```\n\n3. Added pairs and modified pairs have higher priority than sync, sync will not overwrite them.\n\n```ts\nimport { cryptoSymbol } from 'crypto-symbol'\n\nconst { sync } = cryptoSymbol({})\n\n// sync with latest coinmarketcap list\n// this is a promise\nsync('coinmarketcap apiKey')\n```\n\n## Credit\n\nCrypto Symbol logo [source](https://flyclipart.com/cryptocurrency-gold-cryptocurrency-png-678000#)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylim88%2Fcrypto-symbol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftylim88%2Fcrypto-symbol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylim88%2Fcrypto-symbol/lists"}