{"id":24676447,"url":"https://github.com/masa-finance/masa-express","last_synced_at":"2026-04-13T11:01:20.218Z","repository":{"id":158038180,"uuid":"627963462","full_name":"masa-finance/masa-express","owner":"masa-finance","description":"Masa Express","archived":false,"fork":false,"pushed_at":"2024-11-20T16:46:32.000Z","size":1271,"stargazers_count":1,"open_issues_count":8,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-29T05:54:59.616Z","etag":null,"topics":["cryptography","express","library","session"],"latest_commit_sha":null,"homepage":"https://masa.finance","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/masa-finance.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-14T15:32:08.000Z","updated_at":"2024-10-24T21:57:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"a7803f7f-463a-47cb-8571-c35e8327f78e","html_url":"https://github.com/masa-finance/masa-express","commit_stats":null,"previous_names":[],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/masa-finance/masa-express","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masa-finance%2Fmasa-express","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masa-finance%2Fmasa-express/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masa-finance%2Fmasa-express/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masa-finance%2Fmasa-express/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/masa-finance","download_url":"https://codeload.github.com/masa-finance/masa-express/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/masa-finance%2Fmasa-express/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31749763,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T09:16:15.125Z","status":"ssl_error","status_checked_at":"2026-04-13T09:16:05.023Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cryptography","express","library","session"],"created_at":"2025-01-26T12:15:05.150Z","updated_at":"2026-04-13T11:01:20.186Z","avatar_url":"https://github.com/masa-finance.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- TOC --\u003e\n  * [Installation](#installation)\n  * [Usage](#usage)\n\u003c!-- TOC --\u003e\n\n## Installation\n\nyarn  \n`yarn add @masa-finance/masa-express --save`\n\nnpm  \n`npm i @masa-finance/masa-express --save`\n\n## Usage\n\nA full example can be found in the [Masa Express Boilerplate](https://github.com/masa-finance/masa-express-boilerplate) repo.\n\n```typescript\nimport express, {\n  Express,\n  RequestHandler,\n  Router,\n} from \"express\";\nimport {\n  MasaSessionMiddleware,\n  MasaSessionRouter,\n  sessionCheckHandler,\n} from \"@masa-finance/masa-express\";\nimport {\n  CreateSoulNameResult,\n  SoulNameErrorCodes,\n} from \"@masa-finance/masa-sdk\";\nimport cors\n  from \"cors\";\n\nconst app: Express = express();\n\napp.use(express.json());\n\n// your session name\nconst sessionName = \"my_fancy_session_name\";\n// never give this to someone!\nconst secret = \"top_secret_1337\";\n// 30 days session expiration time\nconst ttl = 30 * 24 * 60 * 60;\n// production, dev or undefined (will fall back to dev then)\nconst environment = \"dev\";\n// the domain your session should be valid on\nconst domain = \".vitalik.org\";\n// custom namespace generated using: https://www.uuidtools.com/generate/v4\nconst sessionNamespace = \"01bbc88d-3cd2-465f-8687-e0ea5e8b1231\";\n\nconst sessionMiddleware: RequestHandler = MasaSessionMiddleware({\n  sessionName,\n  secret,\n  domain,\n  ttl,\n  environment,\n});\n\napp.use(\n  cors({\n    origin: domain,\n    credentials: true,\n  })\n);\n\n// session related\napp.use(\n  \"/session\",\n  MasaSessionRouter({\n    sessionMiddleware,\n    sessionName,\n    sessionNamespace,\n  })\n);\n\nexport const soulNameRouter: Router = express.Router();\n\nsoulNameRouter.use(sessionMiddleware);\nsoulNameRouter.use(sessionCheckHandler as never);\n\nsoulNameRouter.post(\n  \"/soul-name/store\",\n  (request: Request, response: Response) =\u003e {\n    const result: CreateSoulNameResult = {\n      success: false,\n      message: \"Hello world!\",\n      errorCode: SoulNameErrorCodes.UnknownError,\n    };\n    console.log(result);\n    response.json(result);\n  }\n);\n\napp.use(soulNameRouter);\n\nconst port: number = 4000; // use whatever port you need\n\napp.listen(port, () =\u003e {\n  console.log(`Express app listening at 'http://localhost:${port}'`);\n});\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasa-finance%2Fmasa-express","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmasa-finance%2Fmasa-express","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmasa-finance%2Fmasa-express/lists"}