Skip to main content
Welcome to the Initia hackathon! Our goal is to empower builders to push the boundaries of what’s possible with Interwoven Rollups. To ensure your project is eligible for judging and showcases the best of the Initia ecosystem, please meet the following project requirements.

What to Submit

To submit, include:
  • .initia/submission.json as the source of truth for automated checks
  • README.md with a short project overview, implementation notes, and run instructions
  • your primary deployed address in the submission JSON
  • demo_video_url in your submission JSON

1. Project Requirements

To qualify for the prize pool, projects must demonstrate meaningful integration with the Initia stack.

Requirement 1: Dedicated Rollup Architecture

This hackathon is dedicated to the power of appchains. Your project should be deployed as its own appchain.
  • Requirement: Your submission must include your rollup metadata in .initia/submission.json, including rollup_chain_id, your primary deployed address, and a verifiable l2_interaction_tx.
  • Getting Started: Use the weave CLI to launch and manage your environment.

Requirement 2: Optimized Frontend Experience

We encourage builders to use the flagship tooling designed for the Interwoven ecosystem. This ensures your application is fully integrated with the Initia stack and provides a seamless experience for users.
  • Requirement: Utilize InterwovenKit (@initia/interwovenkit-react) for wallet connections and transaction handling.
  • Purpose: This stack is required to ship core Initia UX features like Auto-signing (session-based invisible UX) and Interwoven Bridge flows for moving liquidity between L1 and your appchain.

Requirement 3: Required Native Feature

High-value projects go beyond Hello World by implementing at least one supported Native Feature. In .initia/submission.json, this maps directly to the required native_feature field.
  1. Auto-signing (Invisible UX): Create a frictionless experience where players or users can interact with the blockchain seamlessly without constant wallet popups (Session UX).
  2. Interwoven Bridge (Liquidity & Connectivity): Enable the native bridge interface to allow users to move assets between your appchain and the broader Initia ecosystem.
  3. Initia Usernames (Human Identity): Integrate human-readable .init names to replace complex addresses and improve user onboarding.
Judges will score originality and execution. Projects that only reproduce an example without meaningful customization are unlikely to score as well as projects with clear custom logic, UX, or product differentiation.

2. Required Submission Files

To support reliable automated verification, every submission repository must include this file:
  • Required path: .initia/submission.json
This JSON file is the source of truth for automated eligibility checks. Also include a human-readable summary in your README.md.

Required .initia/submission.json Template

{
  "project_name": "My Project",
  "repo_url": "https://github.com/<org>/<repo>",
  "commit_sha": "0123456789abcdef0123456789abcdef01234567",
  "rollup_chain_id": "my-game-1",
  "deployed_address": "0x...",
  "vm": "move",
  "native_feature": "auto-signing",
  "core_logic_path": "blockforge/sources/items.move",
  "native_feature_frontend_path": "blockforge-frontend/src/Game.jsx",
  "l2_interaction_tx": "0x...",
  "demo_video_url": "https://youtu.be/..."
}

Validation Rules (Automated Checks)

  • project_name: Required. Non-empty string.
  • repo_url: Required. Reachable public GitHub repository URL.
  • commit_sha: Required. 40-character hex Git commit SHA.
  • rollup_chain_id: Required. Non-empty string.
  • deployed_address: Required. Primary deployed address for your application logic. Use your contract address, or your module address for Move projects.
  • vm: Required. One of move, evm, wasm.
  • native_feature: Required. One of auto-signing, interwoven-bridge, initia-usernames.
  • core_logic_path: Required. Repo-relative file path that exists at commit_sha.
  • native_feature_frontend_path: Required. Repo-relative file path that exists at commit_sha.
  • l2_interaction_tx: Required. Non-empty transaction hash or explorer URL.
  • demo_video_url: Required for every submission. Provide a 1-3 minute walkthrough video (Loom/YouTube, publicly accessible via URL).

Example README Submission Block

Use this as an example for the top of your README.md:
## Initia Hackathon Submission

- **Project Name**: [Your Project Name]
- **Submission JSON**: [Link to `.initia/submission.json` in this repo]

### Project Overview

[Provide a 2-3 sentence description of your application. Why is it valuable and
what problem does it solve?]

### Implementation Detail

- **The Custom Implementation**: Briefly describe the unique logic you added.
  What original functionality did you design and implement?
- **The Native Feature**: Which Interwoven feature did you use, and exactly how does
  it improve the user experience?
- **The Value Add**: What meaningful value does this application create for
  crypto users, and how does it specifically strengthen the Initia ecosystem?

### How to Run Locally

[Provide 3-4 clear steps for a judge to run your frontend and connect it to a
local environment if necessary.]

3. Technical Resources

Access the official tools and documentation to build your project:

Official Repositories

  • Initia L1: Core Layer 1 source code.
  • Weave CLI: Essential for launching appchains.
  • InterwovenKit: The standard React SDK for Initia frontends.
  • Initia.js: The primary JavaScript library for blockchain interactions.

APIs & Endpoints

  • Local Rollup Indexer: http://localhost:8080 (Use this to query transactions and assets on your appchain).
  • L1 Indexer: View Swagger (Use this as a reference for querying global data like L1 assets and staking).
  • L1 Testnet RPC: https://rpc.testnet.initia.xyz
  • L1 Testnet REST: https://rest.testnet.initia.xyz
  • Faucets: faucet.testnet.initia.xyz