The Synthesis Hackathon — SuperRare Partner Track ($2.5K) & ERC-8183 Open Build ($2K)
An autonomous creative agent that generates art concepts and interacts with the Rare Protocol (SuperRare) for minting. Implements ERC-8183 for agent-native smart contract interactions.
- Art Concept Generation — Generate structured art concepts (title, description, style, parameters)
- Rare Protocol Integration — Prepare metadata, mint NFTs, list for auction
- ERC-8183 Handler — Fetch agent instructions from contracts, execute actions, publish capabilities
- Autonomous Pipeline — Full cycle: generate → describe → curate → mint → list
07-art-agent/
├── src/
│ ├── art-generator.ts # Art concept generation
│ ├── rare-protocol.ts # SuperRare / Rare Protocol client
│ ├── erc8183.ts # ERC-8183 agent-native interaction
│ └── agent.ts # Main AutonomousArtAgent orchestrator
├── scripts/
│ └── demo.ts # Demo script
├── package.json
├── tsconfig.json
└── README.md
npm installWhen keys are not set, all external calls are mocked:
# For live Rare Protocol / ERC-8183
RPC_URL=https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY
PRIVATE_KEY=0x...
# For AI-powered art generation (future)
ART_API_KEY=sk-...npm run demoimport { AutonomousArtAgent } from "./src/agent.js";
const agent = new AutonomousArtAgent();
// Create single artwork
const result = await agent.createArtwork("digital transcendence", true);
// Manage collection (curate + list)
const collection = await agent.manageCollection(true);
// Respond to ERC-8183 contract
const { instructions } = await agent.respondToContractInstructions(contractAddress);
// Full autonomous cycle
await agent.runCreativeCycle(true);ERC-8183 defines how smart contracts expose instructions for AI agents. Contracts tell agents how to interact with them, not just what functions exist.
getAgentInstructions(contractAddress)— Fetch onchain agent instructionsexecuteAgentAction(contractAddress, action, params)— Execute per contract interfacepublishAgentCapabilities(capabilities)— Publish what this agent can do
SuperRare uses ERC-721 with custom metadata. This client supports:
prepareMetadata(artwork)— Format for mintingmintArtwork(metadata, dryRun)— Mint (simulate or execute)listForAuction(tokenId, startingPrice, dryRun)— List on auctiongetCollectionStats()— Collection performance
MIT