genlayerlabs/genlayer-project-boilerplate
Summary
This GitHub repository offers a boilerplate project for GenLayer, featuring an example intelligent contract with LLM integration, including tests, linting, and a Next.js frontend.
View Cached Full Text
Cached at: 08/18/26, 03:42 PM
genlayerlabs/genlayer-project-boilerplate
Source: https://github.com/genlayerlabs/genlayer-project-boilerplate
Sample GenLayer project
About
This project includes the boilerplate code for a GenLayer use case implementation, specifically a football bets game.
What’s included
- An example intelligent contract (Football Bets) with web access and LLM integration
- Direct mode tests — fast, in-memory unit tests with web/LLM mocking (~ms per test)
- Integration tests — full end-to-end tests against GenLayer Studio
- Contract linting — static analysis to catch common contract issues before deployment
- CI pipeline — GitHub Actions workflow for linting and direct tests
- A production-ready Next.js 15 frontend with TypeScript, TanStack Query, and Radix UI
- Configuration file template and deployment scripts
Requirements
- Python >= 3.12
- GenLayer CLI globally installed:
npm install -g genlayer - GenLayer Studio (for integration tests and deployment): Install from Docs or use the hosted GenLayer Studio
Project Structure
contracts/ # Python intelligent contracts
tests/
direct/ # Fast in-memory tests (no Studio required)
test_create_bet.py # Bet creation logic
test_resolve_bet.py # Bet resolution with web/LLM mocks
test_views.py # Read-only view methods
integration/ # Full tests against GenLayer Studio
test_football_bets.py
fixtures.py # Expected state fixtures
frontend/ # Next.js 15 app (TypeScript, TanStack Query, Radix UI)
deploy/ # TypeScript deployment scripts
gltest.config.yaml # Test runner network configuration
pyproject.toml # Python/pytest configuration
.github/workflows/ # CI pipeline
Quick Start
1. Set up Python environment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
2. Lint your contracts
Run the GenVM linter to catch issues before deployment:
genvm-lint check contracts/football_bets.py
The linter catches:
- Forbidden imports and non-deterministic calls
- Invalid storage types (must use
TreeMap,DynArray,u256, etc.) - Missing decorators and return type annotations
- Non-deterministic operations outside equivalence principle blocks
- And 20+ other rules
3. Run direct mode tests
Direct mode tests run contracts in-memory without needing GenLayer Studio. They use mocks for web requests and LLM calls, giving you fast feedback (~milliseconds per test):
pytest tests/direct/ -v
Direct mode features used in these tests:
direct_deploy("contracts/file.py")— deploy contract in memorydirect_vm.sender = address— set transaction senderdirect_vm.mock_web(pattern, response)— mock HTTP/render callsdirect_vm.mock_llm(pattern, response)— mock LLM responsesdirect_vm.expect_revert("message")— assert expected failuresdirect_vm.clear_mocks()— reset mocks between calls
4. Deploy the contract
- Choose your network:
genlayer network - Deploy:
genlayer deploy(runs the script in/deploy/deployScript.ts)
5. Run integration tests
Integration tests deploy the contract to GenLayer Studio and test with real consensus:
gltest tests/integration/ -v -s
These require GenLayer Studio running (local or hosted).
6. Set up the frontend
- Copy
frontend/.env.exampletofrontend/.env - Add your deployed contract address as
NEXT_PUBLIC_CONTRACT_ADDRESS - Run:
cd frontend
npm install
npm run dev
The app will be available at http://localhost:3000/.
How the Football Bets Contract Works
- Creating Bets: Users bet on a football match by providing the game date, teams, and predicted winner.
- Resolving Bets: After the match, the contract fetches results from BBC Sport, uses an LLM to extract the score, and validates via the equivalence principle.
- Points: Correct predictions earn points. Users can query their points or the leaderboard.
Testing Strategy
| Test Type | Command | Speed | Requires Studio |
|---|---|---|---|
| Lint | genvm-lint check contracts/*.py | ~250ms | No |
| Direct | pytest tests/direct/ -v | ~ms/test | No |
| Integration | gltest tests/integration/ -v -s | ~min/test | Yes |
Recommended workflow:
- Lint after every contract change
- Run direct tests frequently during development
- Run integration tests before deployment to verify consensus behavior
For AI coding agents (Claude Code, Cursor, etc.), the linter and direct tests provide the fast feedback loop needed for iterative development without requiring a running Studio instance.
Community
Documentation
For detailed information, see our documentation.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Similar Articles
@XAMTO_AI: Before writing AI contracts: setting up environments, writing tests, configuring frontends, handling deployments—no business logic written, time wasted. Now: GenLayer Project Boilerplate, clone and run. Complete football betting example, network access + LLM integration ready-made, Direct mode testing in milliseconds…
GenLayer Labs has released a project template that simplifies smart contract development, providing a complete football betting example with integrated network access and LLM, supporting fast testing and CI pipelines.
@DanKornas: GenAI projects become hard to navigate when prompts, model settings, experiments, and application logic have no clear h…
A project-structure scaffold for organizing Generative AI applications, separating configuration, data, examples, notebooks, tests, and core source modules. It is open-source under Apache 2.0.
@DanKornas: Building an LLM from scratch is easier when each layer has its own notebook. EveryonesLLM is a Google Colab-based tutor…
EveryonesLLM is an open-source Google Colab-based tutorial repository for building a nanoGPT-style LLM from scratch, with step-by-step chapters covering dataloading, embeddings, attention, training, and instruction tuning.
Genkit Middleware (10 minute read)
Google announces Genkit middleware, composable hooks that intercept AI generation calls enabling retries, fallbacks, tool approval, and skills for building reliable agentic applications.
@DanKornas: Stop learning LLM system design from random diagrams. genai-llm-ml-case-studies is a curated GitHub collection of 500+ …
A curated GitHub collection of over 500 real-world GenAI, LLM, and ML system design case studies from 130+ companies, organized by industry, use case, company, and architecture pattern. Open-source under MIT license.