Project Info
Inspiration
Most NFT marketplaces mint artwork first and search for demand later. This creates speculative inventory, weak price discovery, and little context for collectors. ArtSoul reverses that order. Collector demand comes first, and minting happens only after a successful auction settlement.
What it does
ArtSoul is a discovery-first digital art auction protocol built on Base. Artists publish artwork before minting and may receive optional AI value guidance for choosing a starting price. The guidance is advisory only and never controls auction settlement, ownership, floor price, fees, or royalties. Collectors discover artwork, signal interest, and participate in auctions. If an auction does not settle successfully, no NFT is created. After successful settlement, ArtSoul lazily mints the NFT to the First Collector and records transparent provenance: Creator First Collector Current Owner Auction and resale history Canonical floor established by settlement Public artwork, profiles, discovery pages, and protocol documentation can be explored without connecting a wallet.
How we built it
ArtSoul combines: A responsive web frontend built with JavaScript, React, Vite, and a custom Classic/Future theme system Solidity smart contracts using Hardhat and OpenZeppelin Base Sepolia for the current public testnet Reown AppKit, WalletConnect, and injected wallet providers Supabase and PostgreSQL for application data A Node.js blockchain indexer for public projections and provenance Vercel serverless APIs and deployment Server-side AI value guidance that remains separate from protocol truth ArtSoul existed before OpenAI Build Week. During Build Week, Codex with GPT-5.6 was used as an engineering agent for evidence-led debugging, implementation, regression-test design, validation, documentation, and pull-request preparation. The founder supplied real iPhone reproduction steps and production wallet logs. Codex reconstructed the event timeline, isolated mobile WalletConnect session restoration and network-state races, implemented narrowly scoped fixes, added regression coverage, validated the production build, and prepared reviewable pull requests.
Challenges we ran into
The largest Build Week challenge was mobile wallet reliability in external iPhone browsers. A mobile connection crosses several independent systems: the browser, Reown modal, WalletConnect relay, wallet application, iOS background suspension, session persistence, page restoration, and final chain validation. A wallet could approve the connection while the browser still had incomplete or stale state. We treated the wallet flow as a state machine instead of repeatedly patching the Connect button. Production logs were compared with AppKit, WalletConnect, and application state so each failure could be isolated without changing auction or contract semantics. Another challenge was ensuring that wallet identity restoration remained separate from operational network enforcement. ArtSoul can restore an existing session, but every write action must still require Base Sepolia. Accomplishments that we are proud of A working public testnet covering publishing, discovery, auctions, settlement, lazy minting, provenance, and resale Evidence-driven mobile wallet debugging using real-device production logs Regression tests for wallet session restoration and navigation races Base Sepolia write guards that protect every transaction path Public protocol documentation and an auditable indexer-backed data model A responsive interface supporting desktop and mobile layouts
What we learned
Mobile wallet connection is not a single button action. It is a distributed session lifecycle that must survive background suspension, redirects, delayed settlement, page navigation, and network changes. We also learned that an engineering agent produces its strongest work when it receives concrete evidence, explicit invariants, narrow scope, and reproducible tests. ArtSoul keeps AI guidance separate from blockchain truth. AI may help a creator understand a possible starting value, but contracts and transaction receipts determine settlement, ownership, floor, and royalties.
What's next
Complete the real-device mobile wallet verification matrix Finish security review and testnet validation Improve onboarding for the first artist and collector cohort Add public, indexer-backed protocol metrics Expand discovery-first community auction events Prepare for a future Base mainnet deployment after the testnet and audit phases are complete
ArtSoul
ArtSoul is an auction-first NFT art discovery protocol built on Base.
Artists publish artwork, the community discovers and signals interest, primary auctions establish the first collector and canonical floor, settlement lazily mints the NFT, and later resale preserves creator royalties and public provenance.
OpenAI Build Week
ArtSoul is an existing protocol codebase that was extended during OpenAI Build Week. Work completed during the event is intentionally separated from earlier project history and can be reviewed through timestamped commits and pull requests.
How Codex and GPT-5.6 were used
Codex with GPT-5.6 was used as the engineering agent for evidence-led debugging, implementation, regression-test design, validation, and pull-request preparation. The founder supplied real-device reproduction steps and on-screen production logs; Codex reconstructed event timelines, compared them with the wallet state machine, implemented narrowly scoped fixes, and verified the result against the repository canon.
The first confirmed Build Week change is the July 13, 2026 mobile-session reconciliation work in commit 3d7fe3f, merged through PR #85. That work:
- reconciles delayed persisted WalletConnect sessions before final UI state is applied;
- preserves an already confirmed mobile session across page navigation and restore races;
- adds focused mobile wallet persistence and recovery regression coverage;
- separates bid error classification so wallet and auction errors produce accurate diagnostics;
- preserves the existing Base Sepolia write guard, auction lifecycle, settlement rules, and economics.
The implementation was validated with the production Vite build, Node syntax checks, focused Node test suites, and git diff --check. GPT-5.6 was used through Codex for the engineering workflow; it is not an auction pricing authority. ArtSoul's optional in-product AI value guidance remains guidance-only and cannot change settlement, floor, ownership, or royalties.
Judge links and testing
- Live application: artsoulprotocol.com
- Public repository: maysonkiller/ArtSoul-Protocol
- Protocol documentation: Protocol Docs
The public site can be explored without credentials. Wallet transactions currently target Base Sepolia testnet. A testnet wallet is required only for protected actions such as publishing or bidding; read-only artwork, discovery, protocol documentation, and profile surfaces remain publicly accessible.
WebMCP Challenge
ArtSoul was entered in the WebMCP Challenge (25 August – 3 September 2026) as a pre-existing project extended with WebMCP during the submission window. The boundary is stated here so prior work is never presented as new.
Existed before 25 August 2026: the protocol canon and frozen economics, the Solidity core and NFT contracts deployed on Base Sepolia, the fail-closed event indexer, the public projection API, and the whole product interface — gallery, artwork and auction pages, publishing, profiles and provenance.
Added during the challenge window: the agent interface. ArtSoul now declares
eleven tools with JSON Schema inputs to a WebMCP-capable browser, so an agent
reads auction state, provenance and lifecycle directly instead of inferring them
from the page. Any action that moves value ends at the person's own wallet: the
agent can open it with a prepared bid, and only after the person has granted that
permission in the page, but the wallet always asks them to approve, and no
website can delegate that click. New files: webmcp-tools.js,
test/webmcp-tools.test.cjs and
docs/WEBMCP.md. Changes to existing files are limited to one
build-manifest line and one deferred script tag on three pages. Every commit in
this work is prefixed webmcp: and dated inside the submission window.
No contract, economic rule, API route or protocol behavior was changed for the
challenge. How to enable WebMCP and what each tool answers is documented in
docs/WEBMCP.md.
Protocol Lifecycle
- Creator uploads media and metadata.
- Creator registers artwork on-chain.
- Creator creates a primary auction.
- Collectors bid during the auction window.
- If the auction ends with no bids, no NFT is minted.
- If the auction ends with a winner, settlement opens.
- Successful settlement lazily mints the NFT to the First Collector.
- The successful settlement creates the canonical floor.
- Minted NFTs can later be listed for resale.
- Provenance remains visible as Creator, First Collector, and Owner.
Canon
The protocol canon lives in docs/canon/.
Current and completed work is tracked in the durable project backlog. New ideas must be recorded there before implementation so chat threads do not become a parallel source of truth.
Important rules:
- Contracts and transaction receipts are protocol truth.
/api/public/artworksis the public indexed source.- Local pending state is only a temporary bridge while the indexer catches up.
- Legacy Supabase rows are compatibility/history only.
- ArtSoul is token-free: no token, no points, and no airdrop logic.
- Hidden anti-sybil implementation details are intentionally not stored in this public repository.
Tech Stack
- Frontend: static HTML, React inline pages, CSS theme system.
- Wallet: AppKit / injected wallet providers.
- Contracts: Solidity, Hardhat, OpenZeppelin.
- Chain: Base Sepolia is the only active product testnet; Base is the canonical production chain. Historical Ethereum Sepolia records are read-only migration compatibility.
- Backend/API: Vercel serverless routes.
- Storage and database: Supabase/Postgres.
- Indexer: Node.js projection worker.
Local Setup
Install dependencies:
npm install
Copy the environment template:
cp .env.example .env
Fill local values in .env. Never commit real secrets.
Run checks:
node --check src/api/routes/public/artworks.js
node --check src/indexer/production-runner.js
Run the indexer locally when needed:
set -a
source .env
set +a
node src/indexer/production-runner.js
On Windows PowerShell, set variables through .env tooling or the process manager used for your environment.
License
ArtSoul uses a split licence.
- Software — contracts, indexer, API, frontend, scripts, tests, and operational documentation are licensed under the Apache License, Version 2.0. You may use, modify, and redistribute them, including commercially, under the terms of that licence.
- Protocol canon and brand —
ARTSOUL_CANON_BIBLE_FULL.md,docs/canon/, and the ArtSoul logo and brand assets are licensed separately under LICENSE-DOCS. They may be read and quoted with attribution, but not republished, adapted, or reused commercially. - Trademarks — "ArtSoul" and the ArtSoul logo are not licensed by the Apache License (Section 6).
See NOTICE for the attribution summary required on redistribution.
Analysis
View
Metric
- 116
- 23
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- PostgreSQLIn code
- ReactIn code
- SolidityIn code
- SQLIn code
- Tailwind CSSIn code
- Node.jsClaimed
- SupabaseClaimed
9 of 11 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
- Claude CodeConfig · Commits
- CodexConfig
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
3.0 MB
Source files
301
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
maysonkiller/ArtSoul-Protocol
399 files · 7.6 MB · @ 754b7dd
Structure
Interface
39 files · 10%Screens, components and styles rendered to the user.
API & routing
32 files · 8%Request entry points: routes, handlers and controllers.
Application logic
92 files · 23%Domain rules, services and shared utilities.
+4 moreData & schema
42 files · 11%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript67%
- Markdown15%
- CSS7%
- SQL6%
- HTML4%
- Solidity1%
- Other (2)0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 380- @simplewebauthn/browser
- @simplewebauthn/server
- abbrev
- acorn
- acorn-walk
- adm-zip
- aes-js
- agent-base
- aggregate-error
- ajv
- amdefine
- ansi-align
- ansi-colors
- ansi-escapes
- ansi-regex
- ansi-styles
- antlr4ts
- anymatch
- +362 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.