BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
Publish trust data on services or manage trust for your own with OMATrust.
SecurityGitHub @oma3daoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Frontend for making attestations related to the OMA3 App Registry. Built with Next.js, TypeScript, and Reown AppKit for seamless wallet integration.
Licensing Notice
This initial version (v1) is released under MIT to maximize transparency and adoption.
OMA3 may license future versions of this reference implementation under different terms (for example, the Business Source License, BSL) if forks or incompatible implementations threaten to fragment the ecosystem or undermine the sustainability of OMA3.
OMA3 standards (such as specifications and schemas) will always remain open and are governed by OMA3’s IPR Policy.
git clone https://github.com/oma3dao/rep-attestation-frontend.git
cd rep-attestation-frontend
npm install
cp .env.example .env.local
# Edit .env.local with your values (see Environment Variables below)
Deploying to Vercel? For environment variable values, domain configuration, and Vercel project setup, see the Deployment Guide (Section 5). This README covers local development workflow.
npm run dev
npm run build
Open http://localhost:3000 to view the application.
Create a .env.local file in the root directory with the following variable:
# ThirdWeb Configuration (required)
# Get from https://thirdweb.com/dashboard
NEXT_PUBLIC_THIRDWEB_CLIENT_ID=your_thirdweb_client_id
.env.local fileThe wallet integration provides:
ConnectButton with all login options in a modalsrc/
├── app/ # Next.js app router pages
│ ├── api/ # Server-side API routes
│ │ ├── controller-witness-proxy/ # CORS proxy for controller witness
│ │ └── eas/ # EAS delegated attestation + nonce endpoints
│ ├── attest/ # Attestation creation pages
│ ├── dashboard/ # User dashboard (subjects, keys, attestations)
│ ├── publish/ # Publish attestation pages (by type)
│ ├── account/ # Account management
│ └── client.ts # ThirdWeb client configuration
├── components/ # Reusable React components
│ ├── ui/ # shadcn/ui base components
│ ├── dashboard/ # Dashboard-specific components
│ ├── home/ # Landing page components
│ └── ... # Form inputs, DID inputs, auth, attestation views
├── config/ # Configuration files
│ ├── chains.ts # Chain definitions (OMAChain mainnet/testnet/devnet)
│ ├── schemas.ts # Attestation schema definitions (generated)
│ ├── publish-categories.ts # Publish workflow categories
│ ├── subsidized-schemas.ts # Schemas eligible for gas subsidy
│ └── ... # Wallets, social platforms, home workflows
├── lib/ # Utility functions and business logic
│ ├── server/ # Server-only code (EAS routes, delegate key)
│ ├── utils/caip10/ # CAIP-10 address parsing and validation
│ ├── blockchain.ts # Wallet hooks and chain management
│ ├── eas.ts # EAS attestation helpers
│ ├── omatrust-backend.ts # Backend API client
│ ├── service-urls.ts # Chain-prefixed service URL derivation
│ └── service.ts # High-level attestation service layer
└── app/globals.css # Global styles (Tailwind)
npm run dev - Start development servernpm run build - Build for productionnpm run start - Start production servernpm run lint - Run ESLintnpm run update-schemas - Update schemas from JSON filesThis project uses JSON schemas to generate TypeScript attestation forms. Schema definitions live in the rep-attestation-tools-evm-solidity repository under schemas-json/. For the full authoring guide — OMA3 extensions (x-oma3-*), best practices, and example structures — see that repo's schemas-json/README.md.
When schema definitions change in rep-attestation-tools-evm-solidity, you need to regenerate the frontend schemas:
# 1. Generate EAS objects (run from the tools repo)
cd ../rep-attestation-tools-evm-solidity
npx hardhat generate-eas-object --schema schemas-json/<schema-name>.schema.json --network omachainTestnet
# 2. Update this frontend's schemas.ts
cd ../rep-attestation-frontend
npm run update-schemas ../rep-attestation-tools-evm-solidity
# 3. Copy to app-registry-frontend (schemas.ts must stay in sync)
cp src/config/schemas.ts ../app-registry-frontend/src/config/schemas.ts
If you also deployed the schema on-chain, the deployment UIDs and block numbers are picked up automatically from the generated/*.deployed.*.json files. See the tools repo README for the full deployment workflow.
*.schema.json files from the tools repo's schemas-json/ directorygenerated/*.eas.json filesgenerated/*.deployed.*.json filesx-oma3-* extensionssrc/config/schemas.ts with field definitions, deployed UIDs, and metadataThe script processes x-oma3-* extension fields from the JSON schemas (e.g., x-oma3-skip-reason, x-oma3-subtype, x-oma3-default, x-oma3-render). For the full reference on all supported extensions, see schemas-json/README.md in the tools repository.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
The application targets:
Network configuration is in src/config/chains.ts. The active chain is determined by the NEXT_PUBLIC_ACTIVE_CHAIN environment variable, not the user's wallet.
Currently integrated:
For delegate wallet addresses and signing configuration details, see the Deployment Guide (Sections 3 and 9).
For local dev, set a raw private key in .env.local:
# Private key for EAS delegate wallet (local dev only)
EAS_DELEGATE_PRIVATE_KEY=0x...
# Optional: max gas per transaction (default: 300000)
MAX_GAS_PER_TX=300000
To generate a throwaway dev key:
node -e "console.log('0x' + require('crypto').randomBytes(32).toString('hex'))" > ~/.ssh/eas-delegate-key
chmod 600 ~/.ssh/eas-delegate-key
NEXT_PUBLIC_THIRDWEB_CLIENT_ID in your .env.local file