# ImaniPay Blockchain Service
## Description
The ImaniPay Blockchain Service is a Python-based API built using FastAPI, designed to facilitate secure and efficient interactions with the Algorand blockchain. This service is a crucial component of the ImaniPay platform, focusing on handling blockchain-related operations such as wallet management, balance inquiries, and transaction processing. It is designed to be consumed by a separate backend API, which manages the core application logic and user data.
## Features
* **Wallet Balance:** Retrieves the ALGO and ASA (Algorand Standard Asset) balances for a given wallet address.
* **Transaction Handling:** Supports sending payments (ALGO and ASAs) between Algorand wallets.
* **Escrow Management:** Implements escrow functionality using Algorand smart contracts, allowing for secure and conditional transactions.
* **Wallet Validation:** Validates the format and existence of an Algorand wallet address on the blockchain.
* **Wallet Creation:** Creates a new Algorand wallet address (for development purposes only).
## Architecture
The service follows a modular architecture, organized as follows:
imanipay-blockchain-service├── app│ ├── api # FastAPI route endpoints│ │ ├── wallets.py│ │ ├── transactions.py│ │ └── escrow.py│ ├── core # Core config and startup│ │ ├── config.py│ │ └── startup.py│ ├── contracts # Smart contract logic and helpers│ │ ├── escrow.py│ │ └── helpers.py│ ├── services # Business logic for blockchain interactions│ │ ├── wallets.py│ │ ├── transactions.py│ │ └── escrow.py│ ├── schemas # Pydantic schemas for request and response data│ │ ├── init.py│ │ ├── ...│ └── utils # Utility functions (if needed)├── main.py # FastAPI application entry point├── Dockerfile # (Optional) Docker configuration├── requirements.txt # Project dependencies└── .env # Environme …