by Deen-Bridge
Islamic-knowledge AI service for DeenBridge — FastAPI + Gemini assistant with verified Qur'an/Hadith citations, scholar-review fallback, and guidance for Stellar/USDC payments.
30 days in the Featured rail · terms & refunds
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Automated security scan — not a certification.
# Add to your Claude Code skills
git clone https://github.com/Deen-Bridge/dnb-aiGuides for using ai agents skills like dnb-ai.
Last scanned: 10/24/2026
{
"issues": [
{
"file": "README.md",
"line": 51,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 108,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"line": 170,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
},
{
"file": "README.md",
"type": "secret-exfiltration",
"message": "…and 1 more similar match in this file",
"severity": "low"
}
],
"status": "PASSED",
"scannedAt": "2026-10-24T08:41:29.750Z",
"npmAuditRan": true,
"pipAuditRan": false,
"promptInjectionRan": true
}See how dnb-ai compares with popular alternatives.
The FastAPI service behind Deen Bridge's Islamic-knowledge AI assistant, powered by Google Gemini.
Live API · Web App · Report a Bug · Contribute
This service powers the AI assistant inside Deen Bridge, a platform for authentic Islamic education built on the Stellar network — courses and books are purchased with USDC, and creators are paid directly to their own Stellar wallets. The assistant wraps Google's Gemini model with an Islamic-knowledge system prompt, content safety filters, and per-session conversation history, exposing a simple chat API consumed by the web app.
Stellar-aware chat supports wallet USDC zakat estimates, factual answers about the signed-in user's Stellar purchases, and exact USDC/stroop and user-specified percentage calculations. Calculations are informational; the AI service never signs or submits a Stellar transaction.
The platform is composed of three services:
| Repository | Role | Live |
|---|---|---|
| dnb-frontend | Next.js web application | dnb-frontend.vercel.app |
| dnb-backend | REST API — auth, content, Stellar payments | dnb-backend-api.onrender.com |
| dnb-ai (this repo) | FastAPI service for the AI assistant | dnb-ai.onrender.com |
remember opt-out per request/docsAll chat endpoints require an X-API-Key header (see Authentication & Rate Limiting).
| Method | Route | Purpose |
|---|---|---|
POST |
/chat |
Start or continue a chat session |
POST |
/chat/stream |
Streaming variant of /chat using Server-Sent Events |
DELETE |
/chat/{chat_id} |
Delete a chat session |
GET |
/memory/{user_id} |
Retrieve a stored user profile (transparency) |
DELETE |
/memory/{user_id} |
Completely erase a stored user profile |
GET |
/ping |
Trivial liveness check (always returns 200) |
GET |
/health |
Structured health check - status, version and dependency checks. Returns 200 if all checks pass, 503 otherwise |
GET |
/stellar/info |
Stellar network and passphrase, USDC issuer, and supported AI features |
POST |
/stellar/usdc/convert |
Convert USDC to stroops or stroops to USDC |
POST |
/stellar/fee-bump/explain |
Decode and explain a fee-bump transaction envelope (offline; never signs or submits) |
POST |
/stellar/contract-events/decode |
Decode Soroban contract event topics and value, and check Stellar Asset Contract events (offline) |
POST |
/stellar/contract-state/check |
Check Soroban getLedgerEntries results for a contract's state for consistency (offline) |
POST |
/stellar/network/check |
Guard against network passphrase mismatches in a wallet, RPC provider, or signed envelope (offline) |
GET |
/cache/stats |
Semantic cache metrics (hits, misses, hit rate, etc.) |
POST |
/tafsir |
Ayah explanation from named tafsir works, with attribution |
POST |
/tafsir/batch |
Concurrent tafsir lookup for multiple references, with partial results |
GET |
/tafsir/sources |
Tafsir works available for retrieval, and their languages |
GET |
/hadith-research/sources |
Hadith collections the research agent can retrieve |
POST |
/hadith-research/lookup |
Resolve a hadith citation: grading, justification, and variant membership |
POST |
/hadith-research/chain |
Isnad analysis: narrator reliability and chain continuity |
POST |
/hadith-research/variants |
Find variant narrations by matn text or by citation |
POST |
/quran-recitation/analyze |
Identify surah/ayah from a recitation transcript, align it word-by-word (with timestamps) to the Mushaf, and report deviations, riwayah, reciter and maqam metadata |
GET |
/quran-recitation/surahs |
Surahs bundled for matching, recognised riwayat and maqamat |
GET |
/confidence/policy |
Active confidence thresholds and review-queue depth |
GET |
/review/pending |
Answers awaiting a scholar's verdict (reviewer token) |
GET |
/review/reviewed |
Answers that already carry a verdict (reviewer token) |
GET |
/review/{id} |
A single review item (reviewer token) |
POST |
/review/{id}/verdict |
Record approve / correct / reject (reviewer token) |
POST |
/feedback |
Rate a specific answer and flag failure categories |
GET |
/feedback/stats |
Aggregate answer-quality metrics (admin token) |
GET |
/feedback/records |
Browse flagged records, filterable (admin token) |
Protected endpoints (including /chat and /chat/stream) require an
X-API-Key request header whose value matches the server's SERVICE_API_KEY.
Requests with a missing or invalid key are rejected with 401. For local
development you can bypass authentication entirely by setting
AUTH_DISABLED=true (never do this in production — SERVICE_API_KEY is
mandatory when ENVIRONMENT=production).
The service enforces three independent limits. All of them are in-process (non-persistent) and therefore reset on restart and are scoped to a single instance — a shared Redis backend would be required for multi-instance deployments.
| Limit | Applies to | Default | Env vars |
|---|---|---|---|
| Request rate (slowapi) | POST /chat, POST /chat/stream |
60 requests / 60 seconds per client | CHAT_RATE_LIMIT_MAX (60), CHAT_RATE_LIMIT_WINDOW_SECONDS (60) |
| Hourly token quota | POST /chat (per turn) |
100 000 tokens / hour per user | CHAT_TOKEN_QUOTA_PER_HOUR (100000) |
| Feedback submissions | POST /feedback |
20 requests / 60 seconds per IP | FEEDBACK_RATE_LIMIT_MAX (20), FEEDBACK_RATE_LIMIT_WINDOW (60) |
How a client is identified for the request-rate limit. The slowapi limiter
keys each caller by, in order of preference: the X-API-Key header (so limits
are enforced per API key when authenticated), otherwise the first address in
X-Forwarded-For (the app runs behind a proxy on Render), otherwise the direct
remote address. The hourly token quota is keyed by the request's user_id when
one is supplied, falling back to the same client key.
X-RateLimit-*Note: This service does not emit
X-RateLimit-Limit,X-RateLimit-Remaining, orX-RateLimit-Resetheaders. The slowapi limiter is created asLimiter(key_func=...)withoutheaders_enabled=True, so those informational headers are never added. Do not build clients that depend on them.
The only rate-limit header you can rely on is Retry-After (an integer
number of seconds), which is set on:
429 responses from /chat and /chat/stream (request-rate limit), and429 returned by the /chat hourly token-quota check.The /feedback 429 does not include a Retry-After header; its
60-second window is described in the JSON hint field instead.
All three limits return HTTP 429 with a JSON body containing a detail
message and a human-readable hint, for example:
// POST /chat or /chat/stream — request-rate limit exceeded
// (also carries a `Retry-After: <seconds>` header)
{
"detail": "Rate limit exceeded: 60 per 1 minute",
"hint": "Too many requests sent. Please wait 60 seconds before retrying."
}
// POST /chat — hourly token quota exceeded
// (also carries a `Retry-After: <seconds>` header)
{
"detail": "Token quota
dnb-ai is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by Deen-Bridge. Islamic-knowledge AI service for DeenBridge — FastAPI + Gemini assistant with verified Qur'an/Hadith citations, scholar-review fallback, and guidance for Stellar/USDC payments. It has 163 GitHub stars.
Yes. dnb-ai passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/Deen-Bridge/dnb-ai" and add it to your Claude Code skills directory (see the Installation section above).
dnb-ai is primarily written in Python. It is open-source under Deen-Bridge on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh dnb-ai against similar tools.
No comments yet. Be the first to share your thoughts!