Backend middleware for caching grant state and validating signed writes.
GET /healthGET /grantsGET /grants/:idPOST /milestone_proof
The server verifies Ed25519 signatures against the Stellar public key in submittedBy.
Message format:
stellargrant:milestone_proof:v1|{grantId}|{milestoneIdx}|{proofCid}|{submittedBy}|{nonce}|{timestamp}
Signature must be base64-encoded raw signature bytes.
cd api
npm install
npm run devcd api
npm run test:e2e