{"id":24204574,"url":"https://github.com/boostryjp/ibet-prime","last_synced_at":"2026-03-11T09:05:37.556Z","repository":{"id":37104346,"uuid":"317115828","full_name":"BoostryJP/ibet-Prime","owner":"BoostryJP","description":"Advanced API Toolkit for Digital Securities Issuance and Management on the ibet/Ethereum Network 🚀","archived":false,"fork":false,"pushed_at":"2025-09-16T07:04:31.000Z","size":8569,"stargazers_count":11,"open_issues_count":10,"forks_count":1,"subscribers_count":6,"default_branch":"dev-25.9","last_synced_at":"2025-09-16T09:17:55.697Z","etag":null,"topics":["fastapi","ibet","pydantic","python","web3py"],"latest_commit_sha":null,"homepage":"https://ibet.jp/ibet-for-fin","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BoostryJP.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2020-11-30T05:02:23.000Z","updated_at":"2025-09-16T07:04:31.000Z","dependencies_parsed_at":"2023-10-04T14:57:26.375Z","dependency_job_id":"d40162c6-696a-4053-ab3e-9d5c2c8339d4","html_url":"https://github.com/BoostryJP/ibet-Prime","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/BoostryJP/ibet-Prime","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoostryJP%2Fibet-Prime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoostryJP%2Fibet-Prime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoostryJP%2Fibet-Prime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoostryJP%2Fibet-Prime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BoostryJP","download_url":"https://codeload.github.com/BoostryJP/ibet-Prime/tar.gz/refs/heads/dev-25.9","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BoostryJP%2Fibet-Prime/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276341180,"owners_count":25625430,"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-22T02:00:08.972Z","response_time":79,"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":["fastapi","ibet","pydantic","python","web3py"],"created_at":"2025-01-13T23:17:26.649Z","updated_at":"2025-09-22T03:30:46.319Z","avatar_url":"https://github.com/BoostryJP.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"33%\" src=\"https://user-images.githubusercontent.com/963333/71672471-6383c080-2db9-11ea-85b6-8815519652ec.png\"/\u003e\n\u003c/p\u003e\n\n# ibet-Prime\n\n\u003cp\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-25.9-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003cimg alt=\"License: Apache--2.0\" src=\"https://img.shields.io/badge/License-Apache--2.0-yellow.svg\" /\u003e\n\u003c/p\u003e\n\nEnglish | [日本語](./README_JA.md)\n\n**The ibet-Prime security token management system for ibet network.**\n\n## Features\n\n- ibet-Prime is an API service that enables the issuance and management of security tokens on the [ibet network](https://github.com/BoostryJP/ibet-Network).\n- It supports tokens and various smart contracts developed by the [ibet-SmartContract](https://github.com/BoostryJP/ibet-SmartContract) project.\n- As a security token ledger management system, ibet-Prime provides a variety of functions required under Japanese regulations.\n- By integrating the ibet-Prime API into your front-end application, you can easily build a security token management service.\n\n## Dependencies\n\n- [Python3](https://www.python.org/downloads/release/python-3811/) - version 3.12\n- [PostgreSQL](https://www.postgresql.org/) - version 17\n- [GoQuorum](https://github.com/ConsenSys/quorum)\n  - We support the official GoQuorum node of [ibet-Network](https://github.com/BoostryJP/ibet-Network).\n  - We use [hardhat network](https://hardhat.org/hardhat-network/) for local development and unit testing, and we use the latest version.\n\n\n## Supported ibet smart contract version\n\n* ibet-SmartContract: Supports the latest version of contract specifications.\n* See [details](./contracts/contract_version.md).\n\n\n## Setup\n\n### Prerequisites\n\n- A Python runtime environment must be set up.\n- The database must be created on PostgreSQL beforehand.\n  - By default, the following settings are required:\n    - User: issuerapi\n    - Password: issuerapipass\n    - Database: issuerapidb\n    - Test database: issuerapidb_test\n- The TokenList and E2EMessaging contracts from the ibet-SmartContract project must be deployed in advance.\n\n### Install packages\n\nCreate virtual environment with:\n```bash\n$ uv venv\n```\n\nInstall python packages with:\n```bash\n$ uv sync --frozen --no-install-project --no-dev --all-extras\n```\n\n### Install pre-commit hook\n```bash\n$ uv run pre-commit install\n```\n\n### Install hardhat\n```bash\n$ npm install\n```\n\n### Setting environment variables\n\nThe main environment variables are as follows. \n\n\u003ctable style=\"border-collapse: collapse\" id=\"env-table\"\u003e\n    \u003ctr bgcolor=\"#000000\"\u003e\n        \u003cth style=\"width: 25%\"\u003eVariable Name\u003c/th\u003e\n        \u003cth style=\"width: 10%\"\u003eRequired\u003c/th\u003e\n        \u003cth style=\"width: 30%\"\u003eDetails\u003c/th\u003e\n        \u003cth\u003eExample\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDATABASE_URL\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eDatabase URL\u003c/td\u003e\n        \u003ctd\u003epostgresql://issuerapi:issuerapipass@localhost:5432/issuerapidb\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTEST_DATABASE_URL\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eTest database URL\u003c/td\u003e\n        \u003ctd\u003epostgresql://issuerapi:issuerapipass@localhost:5432/issuerapidb\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDATABASE_SCHEMA\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eDatabase schema\u003c/td\u003e\n        \u003ctd\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eWEB3_HTTP_PROVIDER\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWeb3 provider for ibet network\u003c/td\u003e\n        \u003ctd\u003ehttp://localhost:8545\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eCHAIN_ID\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eBlockchain network ID\u003c/td\u003e\n        \u003ctd\u003e1010032\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTOKEN_LIST_CONTRACT_ADDRESS\u003c/td\u003e\n        \u003ctd\u003eTrue\u003c/td\u003e\n        \u003ctd nowrap\u003eTokenList contract address\u003c/td\u003e\n        \u003ctd\u003e0x0000000000000000000000000000000000000000\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eE2E_MESSAGING_CONTRACT_ADDRESS\u003c/td\u003e\n        \u003ctd\u003eTrue\u003c/td\u003e\n        \u003ctd nowrap\u003eE2EMessaging contract address\u003c/td\u003e\n        \u003ctd\u003e0x0000000000000000000000000000000000000000\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eTZ\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eTimezone\u003c/td\u003e\n        \u003ctd\u003eAsia/Tokyo\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eETH_WEB3_HTTP_PROVIDER\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWeb3 provider for Ethereum network\u003c/td\u003e\n        \u003ctd\u003ehttp://localhost:8545\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDEDICATED_OFFCHAIN_TX_MODE\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eBoot mode for off-chain transaction dedicated server\u003c/td\u003e\n        \u003ctd\u003e0(not use) / 1(use)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDEDICATED_DVP_AGENT_MODE\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eBoot mode for DvP agent dedicated server\u003c/td\u003e\n        \u003ctd\u003e0(not use) / 1(use)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eIBET_WST_FEATURE_ENABLED\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWeather to use IbetWST features\u003c/td\u003e\n        \u003ctd\u003e1\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eDVP_AGENT_FEATURE_ENABLED\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWhether to use DVP agent features\u003c/td\u003e\n        \u003ctd\u003e0(not use) / 1(use)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eBC_EXPLORER_ENABLED\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWhether to use the BC Explorer\u003c/td\u003e\n        \u003ctd\u003e0(not use) / 1(use)\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003eFREEZE_LOG_FEATURE_ENABLED\u003c/td\u003e\n        \u003ctd\u003eFalse\u003c/td\u003e\n        \u003ctd nowrap\u003eWhether to use the \"FreezeLog\" features\u003c/td\u003e\n        \u003ctd\u003e0(not use) / 1(use)\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\nOther environment variables that can be set can be found in `config.py`.\n\n### DB migrations\n\nSee [migrations/README.md](migrations/README.md).\n\n\n## Starting the Server\n\nYou can start the API server with:\n```bash\n$ ./run.sh server (Press CTRL+C to quit)\n```\n\nOpen your browser at [http://0.0.0.0:5000](http://0.0.0.0:5000).\n\nYou will see the JSON response as:\n```json\n{\"server\":\"ibet-Prime\"}\n```\n\n### API docs\n\n#### Swagger UI\n\nNow go to [http://0.0.0.0:5000/docs](http://0.0.0.0:5000/docs).\n\nYou will see the automatic interactive API documentation provided by Swagger UI:\n\n![swagger](https://user-images.githubusercontent.com/963333/146362141-da0fc0d2-1518-4041-a274-be2b743966a1.png)\n\n\n#### ReDoc\n\nAnd now, go to [http://0.0.0.0:5000/redoc](http://0.0.0.0:5000/redoc).\n\nYou will see the alternative automatic documentation provided by ReDoc:\n\n![redoc](https://user-images.githubusercontent.com/963333/146362775-c1ec56fa-f0b0-48a4-8926-75c2b7159c90.png)\n\n\n## Branching model\n\nThis repository is version controlled using the following flow.\n\n![branching_model](https://user-images.githubusercontent.com/963333/153910560-2c67f8ad-73ae-4aaa-9e9f-9242643f6098.png)\n\n## License\n\nibet-Prime is licensed under the Apache License, Version 2.0.\n\n## Contact information\n\nWe are committed to open-sourcing our work to support your use cases. \nWe want to know how you use this library and what problems it helps you to solve. \nWe have two communication channels for you to contact us:\n\n* A [public discussion group](https://github.com/BoostryJP/ibet-Prime/discussions)\nwhere we will also share our preliminary roadmap, updates, events, and more.\n\n* A private email alias at\n[dev@boostry.co.jp](mailto:dev@boostry.co.jp)\nwhere you can reach out to us directly about your use cases and what more we can\ndo to help and improve the library.\n  \nPlease refrain from sending any sensitive or confidential information. \nIf you wish to delete a message you've previously sent, please contact us.\n\n## Sponsors\n\n[BOOSTRY Co., Ltd.](https://boostry.co.jp/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostryjp%2Fibet-prime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboostryjp%2Fibet-prime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboostryjp%2Fibet-prime/lists"}