{"id":26070333,"url":"https://github.com/dappforce/subid-api","last_synced_at":"2026-04-21T19:34:06.521Z","repository":{"id":178656363,"uuid":"599085869","full_name":"dappforce/subid-api","owner":"dappforce","description":null,"archived":false,"fork":false,"pushed_at":"2024-07-22T21:37:35.000Z","size":23657,"stargazers_count":0,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-08T23:15:54.522Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/dappforce.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"publiccode":null,"codemeta":null}},"created_at":"2023-02-08T12:29:12.000Z","updated_at":"2024-06-26T13:46:51.000Z","dependencies_parsed_at":"2024-02-07T17:48:15.587Z","dependency_job_id":"d66a9684-edb9-494f-942c-e74794dd313c","html_url":"https://github.com/dappforce/subid-api","commit_stats":null,"previous_names":["dappforce/subid-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dappforce/subid-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dappforce%2Fsubid-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dappforce%2Fsubid-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dappforce%2Fsubid-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dappforce%2Fsubid-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dappforce","download_url":"https://codeload.github.com/dappforce/subid-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dappforce%2Fsubid-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32106708,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T11:25:29.218Z","status":"ssl_error","status_checked_at":"2026-04-21T11:25:28.499Z","response_time":128,"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":[],"created_at":"2025-03-08T23:15:59.540Z","updated_at":"2026-04-21T19:34:06.503Z","avatar_url":"https://github.com/dappforce.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Production Deploy](https://github.com/dappforce/subid-api/actions/workflows/manual.yml/badge.svg)\n\n# Subsocial SubId services by [DappForce](https://github.com/dappforce)\n\n## Api\n\n### Main endpoint\n\n```\napi/v1/\n```\n\n### Account info\n\n**Get balances from all network by account:**\n\n```\nGET /:acccount/balances`\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty/balances'\n\nResult:\n{\n    \"subsocial\": {\n        \"accountId\": \"3rGZ2cUTaCHWgG6z3UL8nFsWvUBt1K5CEeoMXTUVFL2GCZ9q\",\n        \"additional\": [],\n        \"lockedBreakdown\": [],\n        \"isVesting\": false,\n        \"accountNonce\": \"0\",\n        \"freeBalance\": \"0\",\n        \"frozenFee\": \"0\",\n        \"frozenMisc\": \"0\",\n        \"reservedBalance\": \"0\",\n        \"votingBalance\": \"0\",\n        \"availableBalance\": \"0\",\n        \"lockedBalance\": \"0\",\n        \"vestingLocked\": \"0\",\n        \"vestedBalance\": \"0\",\n        \"vestedClaimable\": \"0\",\n        \"vestingEndBlock\": \"0\",\n        \"vestingPerBlock\": \"0\",\n        \"vestingTotal\": \"0\"\n    }\n    \"kusama\": { ... }\n    ...\n}\n```\n\n### Chains info\n\n**Get properties from all supported networks**\n\n```\nGET /chains/properties\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/chains/properties'\n\nResult:\n{\n    \"subsocial\": {\n        \"ss58Format\": 28,\n        \"tokenDecimals\": [\n            11\n        ],\n        \"tokenSymbol\": [\n            \"SUB\"\n        ]\n    },\n    \"kusama\": {\n        \"ss58Format\": 2,\n        \"tokenDecimals\": [\n            12\n        ],\n        \"tokenSymbol\": [\n            \"KSM\"\n        ]\n    },\n    \"polkadot\": {\n        \"ss58Format\": 0,\n        \"tokenDecimals\": [\n            10\n        ],\n        \"tokenSymbol\": [\n            \"DOT\"\n        ]\n    }\n}\n```\n\n### On-chain identies\n\n**Get Polkadot/Kusama identity and Subsocial profile**\n```\nGET /:account/identities\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/12hAtDZJGt4of3m2GqZcUCVAjZPALfvPwvtUTFZPQUbdX1Ud/identities'\n\nResult:\n{\n    \"kusama\": {\n        \"isVerify\": true,\n        \"info\": {\n            \"additional\": [],\n            \"pgpFingerprint\": null,\n            \"display\": \"Shawn Tabrizi\",\n            \"legal\": \"Shawn Tabrizi\",\n            \"web\": \"shawntabrizi.com\",\n            \"riot\": \"@shawntabrizi:matrix.parity.io\",\n            \"email\": \"shawntabrizi@gmail.com\",\n            \"twitter\": \"@shawntabrizi\"\n        }\n    },\n    \"polkadot\": {\n        \"isVerify\": true,\n        \"info\": {\n            \"additional\": [],\n            \"pgpFingerprint\": null,\n            \"display\": \"Shawn Tabrizi\",\n            \"legal\": \"Shawn Tabrizi\",\n            \"web\": \"https://shawntabrizi.com\",\n            \"riot\": \"@shawntabrizi:matrix.parity.io\",\n            \"email\": \"shawntabrizi@gmail.com\",\n            \"twitter\": \"@shawntabrizi\"\n        }\n    },\n    \"subsocial\": {\n        \"id\": \"3pje7zib32ZA2h61dkCH3Rw4q9PPsoYyEGQ9gPZpNRFHQFnq\",\n        \"struct\": {\n            \"id\": \"3pje7zib32ZA2h61dkCH3Rw4q9PPsoYyEGQ9gPZpNRFHQFnq\",\n            \"followersCount\": 6,\n            \"followingAccountsCount\": 0,\n            \"followingSpacesCount\": 13,\n            \"reputation\": 1,\n            \"hasProfile\": true,\n            \"createdByAccount\": \"3pje7zib32ZA2h61dkCH3Rw4q9PPsoYyEGQ9gPZpNRFHQFnq\",\n            \"createdAtBlock\": 1174851,\n            \"createdAtTime\": 1603970334000,\n            \"isUpdated\": false,\n            \"contentId\": \"bafyreihkuf7fh54qxcoqk33bfrwup5frq44qdolkvckmxk7stk3znjagrm\"\n        },\n        \"content\": {\n            \"about\": \"I am a developer at Parity Technologies working on Substrate!\",\n            \"avatar\": \"QmUBw1ZyV8P4jkbnhBMU734Cks7bXnRo8gQzwzyvDMbNBz\",\n            \"name\": \"Shawn Tabrizi\",\n            \"summary\": \"I am a developer at Parity Technologies working on Substrate!\",\n            \"isShowMore\": false\n        }\n    }\n}\n```\n\n### Crowdloans by relay chain (polkadot or kusama)\n\n```\nGET /crowdloans/:relayChain\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'https://app.subsocial.network/subid/api/v1/crowdloans/kusama'\n\nResult:\n[\n    {\n        \"depositor\": \"DQd4dJJs3hiEMAguTQQ9YGCH8Z6Pq8kxpTRMGHMGbWPcMRi\",\n        \"verifier\": null,\n        \"deposit\": 9999999900000,\n        \"raised\": \"0x00000000000000000015d476ef8dbe91\",\n        \"end\": 10224000,\n        \"cap\": \"0x0000000000000000016345da277d6800\",\n        \"lastContribution\": {\n            \"preEnding\": 52\n        },\n        \"firstPeriod\": 17,\n        \"lastPeriod\": 24,\n        \"trieIndex\": 47,\n        \"isCapped\": false,\n        \"isEnded\": false,\n        \"isWinner\": false,\n        \"paraId\": 2100\n    }\n]\n```\n\n### Crowdloan contributions\n\n```\nGET /:account/crowdloans/contributions\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/12hAtDZJGt4of3m2GqZcUCVAjZPALfvPwvtUTFZPQUbdX1Ud/crowdloan/contributions'\n\nResult:\n{\n    \"bifrost\": \"2000000000000\",\n    \"karura\": \"200000000000000\",\n    \"khala\": \"200000000000000\",\n    \"moonriver\": \"200000000000000\",\n    \"shiden\": \"200000000000000\"\n}\n```\n\n### Supported Statemine assets\n\n```\nGET /statemine/assets\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/statemine/assetss'\n\nResult:\n[\n    {\n        \"assetId\": 8,\n        \"name\": \"RMRK.app\",\n        \"symbol\": \"RMRK\",\n        \"icon\": \"rmrk.png\",\n        \"deposit\": 1000000000000,\n        \"decimals\": 10,\n        \"isFrozen\": true,\n        \"owner\": \"HKKT5DjFaUE339m7ZWS2yutjecbUpBcDQZHw2EF7SFqSFJH\",\n        \"issuer\": \"CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp\",\n        \"admin\": \"CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp\",\n        \"freezer\": \"CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp\",\n        \"supply\": \"0x0000000000000000016345785d8a0000\",\n        \"minBalance\": 100000,\n        \"isSufficient\": false,\n        \"accounts\": 1711,\n        \"sufficients\": 0,\n        \"approvals\": 0\n    },\n    ...\n]\n```\n\n### Get balances from Statemine assets by account\n\n```\nGET /statemine/assets/:account\n```\n\nExample:\n\n```sh\ncurl --location --request GET 'http://localhost:3001/api/v1/statemine/assetss/CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp'\n\nResult:\n{\n    \"8\": {\n        \"balance\": 336569579288025,\n        \"isFrozen\": false,\n        \"isSufficient\": false\n    },\n    ...\n}\n```\n\n## Development\n\n```sh\n# Install Node.js dependencies\nyarn\n\n# Compile TypeScript\nyarn build\n\n# Run\nyarn start\n```\n\n## Available scripts\n\n+ `clean` - remove coverage data, Jest cache and transpiled files,\n+ `build` - transpile TypeScript to ES6,\n+ `start` - run server,\n\n### Build your own docker image\n\n```sh\ndocker build . -f docker/Dockerfile -t subsocial-sub-id-servisec:latest\n```\n\n## License\n\nSubsocial is [GPL 3.0](./LICENSE) licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdappforce%2Fsubid-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdappforce%2Fsubid-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdappforce%2Fsubid-api/lists"}