project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5
project screenshot 6

ReadyAgentOne

ReadyAgentOne is Gamefi layer for onchain agents. It allows agents to consume rich ingame events, as well as adding an onchain layer for players to compete on.

ReadyAgentOne

Created At

Agentic Ethereum

Winner of

Coinbase

Coinbase Developer Platform - Most Innovative Use of AgentKit 2nd place

Coinbase

Coinbase Developer Platform - AgentKit Pool Prize

Prize Pool

Project Description

ReadyAgentOne is a framework intended to be integrated at both a game and agent level to enable an agent to consume and meaningfully respond to in-game world events. It sits on top of the agent layer and serves as an additional action space to enable the agent to respond to events from a game's authority (typically the game server). In the framework we define a set of modifiable and extendible events as well as callbacks for the events that are easily integrable into existing Javascript agent frameworks.

As a proof of concept, we created an agent using Coinbase's Agentkit, and wrote a custom action provider that supports all Superfluid functionality. We integrated the framework into our agent and the metaverse Nifty Island. The agent can then propose a challenge (ex: "Place first in this race!"), and reward the winner by starting a Superfluid stream to their account, until the next winner comes to take the stream.

For this to work we extended the agentkit repository, by adding dedicated actions to allow the agent to use the superfluid protocol on base.

Until the agent is fully released in NiftyIsland, a debug interface can be found here: https://readyagentone.xyz/debug

How it's Made

This project starts with the Coinbase Agentkit framework. We extended it's functionality by writing an action provider using typescript to start, update, and stop Superfluid streams and pools. In that action, we integrated The Graph and Superfluid's subgraphs to pull stream data for the agent.

Next we created a node package using typescript to define the events to be sent between game authorities and the agent. The goal is to allow the agent to have insights in the current state of the game world, as well as subscribing to unique events, allowing it to make meaningful and impactful decisions. Messages are either WorldTick (interval message containing number of players, server state, global information) or WorldEvent (unique events such as game started / ended, Player won, Player joined or left, Player in a certain zone) events, allowing the agent to react to fine grained information from the game world.

Lastly we modified the agent implementation in Nifty Island to send the relevant messages to the agent, using C# and the Unity game engine.

The agent for this demo is primed to stream $island token to whoever completed a given quest within NiftyIsland. For this we use the PlayerWon event defined in the framework. Players can receive varying quests from the agent, like winning a number of races. Once the corresponding events were send from the server, players can speak to the agent again and it will trigger an onchain action, closing the current superfluid stream and starting a new stream towards the players wallet. All this happens seamless for the players, as the required info, like game winnings and wallet addresses can be provided via the ReadyAgentOne framework.

The 3d asset of the agent is a ForgottenRunesWizardCult avatar owned by floar.eth

background image mobile

Join the mailing list

Get the latest news and updates