We are proud to be the
September 27, 2025
University of Michigan
Best Use of Fetch.ai
$1250
Cash Prize + Internship Interview Opportunity
Awarded to the team that demonstrates the fullest use of the Fetch.ai tech stack. To qualify, teams must register their agents on Agentverse, enable the chat protocol, and integrate ASI:One as the reasoning engine powering their agents. Judges will look for a strong end-to-end implementation that highlights how the pieces of the Fetch.ai ecosystem come together.
Best Deployment on Agentverse
$750
Cash Prize + Internship Interview Opportunity
Given to the team that publishes the highest number of useful, discoverable, and well-documented agents on Agentverse. Judges will value scale, clarity, and how easy it is for others to find and use these agents.
Best Use of ASI:One
$500
Cash Prize + Internship Interview Opportunity
Awarded to the team that shows the most effective application of ASI:One as the core reasoning and decision-making engine within their agents. The focus is on demonstrating how ASI:One can power smarter, more capable interactions.
Fetch.ai is your gateway to the agentic economy. It provides a full ecosystem for building, deploying, and discovering AI Agents. With Fetch.ai, you can:
AI Agents are autonomous pieces of software that can understand goals, make decisions, and take actions on behalf of users.
The Three Pillars of the Fetch.ai Ecosystem
Challenge statement
🎯 Goal Build and launch AI Agents on Agentverse that turn user intent into real outcomes.
🤖 What are AI Agents? They are autonomous pieces of software that can understand goals, make decisions, and take actions on behalf of users. 🚀 Your Mission
📚 Resources Check out the resources to learn how to build and deploy your own AI agents.
Code
README.md
To achieve this, include the following badge in your agent’s
README.md


Video
Tool Stack
Quick start example
This file can be run on any platform supporting Python, with the necessary install permissions. This example shows two agents communicating with each other using the uAgent python library.
Try it out on Agentverse ↗
from datetime import datetime
from uuid import uuid4
from uagents.setup import fund_agent_if_low
from uagents_core.contrib.protocols.chat import (
ChatAcknowledgement,
ChatMessage,
EndSessionContent,
StartSessionContent,
TextContent,
chat_protocol_spec,
)
agent = Agent()
# Initialize the chat protocol with the standard chat spec
chat_proto = Protocol(spec=chat_protocol_spec)
# Utility function to wrap plain text into a ChatMessage
def create_text_chat(text: str, end_session: bool = False) -> ChatMessage:
content = [TextContent(type="text", text=text)]
return ChatMessage(
timestamp=datetime.utcnow(),
msg_id=uuid4(),
content=content,
)
# Handle incoming chat messages
@chat_proto.on_message(ChatMessage)
async def handle_message(ctx: Context, sender: str, msg: ChatMessage):
ctx.logger.info(f"Received message from {sender}")
# Always send back an acknowledgement when a message is received
await ctx.send(sender, ChatAcknowledgement(timestamp=datetime.utcnow(), acknowledged_msg_id=msg.msg_id))
# Process each content item inside the chat message
for item in msg.content:
# Marks the start of a chat session
if isinstance(item, StartSessionContent):
ctx.logger.info(f"Session started with {sender}")
# Handles plain text messages (from another agent or ASI:One)
elif isinstance(item, TextContent):
ctx.logger.info(f"Text message from {sender}: {item.text}")
#Add your logic
# Example: respond with a message describing the result of a completed task
response_message = create_text_chat("Hello from Agent")
await ctx.send(sender, response_message)
# Marks the end of a chat session
elif isinstance(item, EndSessionContent):
ctx.logger.info(f"Session ended with {sender}")
# Catches anything unexpected
else:
ctx.logger.info(f"Received unexpected content type from {sender}")
# Handle acknowledgements for messages this agent has sent out
@chat_proto.on_message(ChatAcknowledgement)
async def handle_acknowledgement(ctx: Context, sender: str, msg: ChatAcknowledgement):
ctx.logger.info(f"Received acknowledgement from {sender} for message {msg.acknowledged_msg_id}")
# Include the chat protocol and publish the manifest to Agentverse
agent.include(chat_proto, publish_manifest=True)
if __name__ == "__main__":
agent.run()
Examples to get you started:
Judging Criteria
Functionality & Technical Implementation (25%)
Use of Fetch.ai Technology (20%)
Innovation & Creativity (20%)
Real-World Impact & Usefulness (20%)
User Experience & Presentation (15%)
Judges
Sana Wajid
Chief Development Officer - Fetch.ai
Senior Vice President - Innovation Lab
Attila Bagoly
Chief AI Officer
Mentors
Abhi Gangani
Developer Advocate
Kshipra Dhame
Developer Advocate
Rajashekar Vennavelli
AI Engineer
Trung Tran
Junior Software Engineer
Sounds exciting, right?
09:00 EDT
Breakfast
Central Campus Classroom Building (CCCB)
09:30 EDT
Opening Ceremony
Central Campus Classroom Building (CCCB)
11:00 EDT
Team Formation / Beginner Workshop
Central Campus Classroom Building (CCCB)
11:00 EDT
Hacking Starts
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
12:30 EDT
Lunch
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
16:00 EDT
Fetch.ai Workshop
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
19:00 EDT
Dinner
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
08:00 EDT
Hacking Continues
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
11:00 EDT
Brunch
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
12:00 EDT
Project Submissions Due
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
12:30 EDT
Judge Orientation
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
13:00 EDT
Judging
North Campus Duderstadt Library, Pierpont Commons, Bob & Betty Beyster Building (BBB)
16:30 EDT
Closing Ceremony
Central Campus Classroom Building (CCCB)