ACE Project – Blockchain Development Task Guide
Project Overview
In this MVP, blockchain is used only to create an audit trail for credit decisions made by the
backend scoring engine. Banks and lenders process borrower data in the backend system. The full
decision record remains in the database. A cryptographic hash (fingerprint) of the decision is written
to the blockchain so that the decision cannot be secretly altered later.
System Flow
• Bank/Lender uploads borrower data
• Backend scoring engine processes the data
• Risk score and decision generated
• Decision stored in backend database
• Backend generates decision hash
• Decision hash stored on blockchain
• Blockchain transaction reference stored for audit verification
Developer 1 – Smart Contract Implementation
Primary responsibility: build and deploy the smart contract that stores decision hashes on the
blockchain.
Core Functions
• storeDecisionHash(bytes32 decisionHash) – Records the decision hash on blockchain.
• checkDecisionHash(bytes32 decisionHash) – Verifies if a hash already exists on-chain.
• getDecisionTimestamp(bytes32 decisionHash) – Returns the block timestamp when the hash
was recorded.
Implementation Logic
• Create a Solidity smart contract.
• Define a mapping structure to store decision hashes.
• Prevent duplicate hash entries.
• Emit an event when a new decision hash is stored.
• Deploy contract to the chosen blockchain test network.
• Share contract address and ABI with backend integration developer.
Developer 2 – Backend Blockchain Integration
Primary responsibility: connect the [Link] backend to the deployed smart contract and submit
decision hashes generated by the scoring engine.
Core Functions
• initializeBlockchain() – Connect to blockchain RPC provider and prepare contract instance.
• submitDecisionHash(decision_hash) – Send decision hash to the smart contract.
• getTransactionStatus(tx_hash) – Check transaction confirmation status.
• verifyDecisionHash(decision_hash) – Confirm whether the hash exists on-chain.
Implementation Logic
• Import blockchain library (e.g., [Link]).
• Connect to blockchain RPC provider.
• Load deployed smart contract using address and ABI.
• Create wallet signer using private key.
• Send decision hash transaction to smart contract.
• Wait for transaction confirmation.
• Return transaction hash to backend system.
Expected Output to Backend
• Transaction hash
• Block number
• Transaction confirmation status