generated: '2026-08-09' method: derived source: >- Derived from openapi/waodao-agent-api-openapi.json (OpenAPI 3.1.0, 10 components.schemas) — schema $ref links plus the identifier/traversal fields (day, prev_day/next_day, metadata_url, contract + token_id, pool_identifier) — and cross-checked against live responses captured in examples/ and the self-describing field guide at GET /api/v1/waodao/schema. docs: https://waodao.ai/api/v1/waodao/schema notation: >- Relationships use has_one / has_many / belongs_to with the reference field in `via`; direction is from the entity that owns the reference field. The primary key of the whole dataset is the integer ArtChain `day`, which is also the ERC-721 token id. identifiers: primary_key: name: day type: integer note: >- The ArtChain day number is the collection's canonical id and equals the Ethereum NFT `market.token_id`. Day 1 = 2023-02-14. `links.prev` is null on day 1; `links.next` is null on the newest published day. payload_schema_ids: - {id: 'waodao-agent-api@1', on: SchemaResponse} - {id: 'waodao-token@1', on: TokenResponse} - {id: 'waodao-artchain@1', on: 'TokenResponse.waodao'} entities: - name: ArtChainIndex schema: IndexResponse domain: collection operation: listArtChainDays description: >- Snapshot of the whole ArtChain — project/schema headers, agent_context, collection counters (first_day, latest_day, total_days, count), traversal guidance, and the items[] array. - name: IndexItem schema: IndexItem domain: collection description: >- Compact per-day row inside the index: day/date/timestamp, name, metadata_url (the token API URL), external_url (scan page), marketplace_url, sale_status/sale_type/winner_bid_eth, image, real_artwork, bonus_tokens, prev_day/next_day, and the day's cultural traits (region, main_color, main_color_name, twitter_trend, trending_crypto, trending_nft, new_coin) plus secret_hash. - name: ArtChainDay schema: TokenResponse domain: token operations: [getArtChainDay, getLatestArtChainDay] description: >- Full record for one published day: OpenSea-compatible NFT metadata (name, description, image ipfs:// URI, external_url, attributes) plus the WAODAO extension blocks (waodao, market, news, trends, source) and a links block. - name: Attribute schema: Attribute domain: token description: NFT trait (trait_type/value, optional display_type such as date or boost_number). - name: NewsItem schema: NewsItem domain: signals description: One regional news signal (region, key, text, url) that fed the day's generation. - name: PoolRegistry schema: PoolsResponse domain: liquidity operation: listWaoLiquidityPools description: >- WAO token deployment + liquidity route registry — purpose, docs_url, summary, market_entry, wao_token (the ERC-20 / SPL deployments), data_policy, and items[]. - name: PoolItem schema: PoolItem domain: liquidity description: >- One registered pool: pair, type, category, chain, dex, protocol, pool_identifier, optional pool_contract, pool_url, description, status. - name: AgentApiSchema schema: SchemaResponse domain: meta operation: getAgentApiSchema description: Self-describing field guide — schema id, endpoints map, agent_context, and per-field descriptions. - name: AgentContext schema: AgentContext domain: meta description: summary / why_it_matters / use_cases / economic_note block embedded in the index and schema responses. - name: Error schema: ErrorResponse domain: meta description: 'Flat error envelope { error, code }. See errors/waodao-problem-types.yml.' relationships: - {from: ArtChainIndex, to: AgentContext, type: has_one, via: agent_context} - {from: ArtChainIndex, to: IndexItem, type: has_many, via: items} - {from: IndexItem, to: ArtChainDay, type: has_one, via: metadata_url, note: 'metadata_url resolves to /api/v1/waodao/token/{day}'} - {from: IndexItem, to: IndexItem, type: has_one, via: prev_day, note: previous published day, null on day 1} - {from: IndexItem, to: IndexItem, type: has_one, via: next_day, note: next published day, null on the newest day} - {from: ArtChainDay, to: Attribute, type: has_many, via: attributes} - {from: ArtChainDay, to: NewsItem, type: has_many, via: news} - {from: ArtChainDay, to: ArtChainDay, type: has_one, via: 'links.prev'} - {from: ArtChainDay, to: ArtChainDay, type: has_one, via: 'links.next'} - {from: ArtChainDay, to: ArtChainIndex, type: belongs_to, via: 'links.index'} - {from: ArtChainDay, to: PoolRegistry, type: has_one, via: 'links.pools', note: cross-domain convenience link, not ownership} - {from: PoolRegistry, to: PoolItem, type: has_many, via: items} - {from: AgentApiSchema, to: AgentContext, type: has_one, via: agent_context} onchain_bindings: - {entity: ArtChainDay, chain: ethereum, chain_id: 1, standard: ERC-721, contract: '0x3b9a62c6dd4d93f8a6fa4a350da32d28fac80863', via: 'market.contract + market.token_id'} - {entity: PoolItem, chain: ethereum, standard: ERC-20, contract: '0xc3ad687c8ecb352d56393c77d19018b93a6ad21a', via: wao_token, note: WAO ecosystem token} - {entity: PoolItem, chain: solana, standard: SPL Token, mint: '8VXHSGipWfvkA4zueP42YrexbhcWDQKRT1uXZTFEZUn7', via: wao_token, note: bridged via Wormhole} - {entity: ArtChainDay, storage: IPFS, via: 'image (ipfs:// URI)', note: 'NFT media and metadata pinned to IPFS (Filebase), per the GitBook storage page'} examples: - examples/waodao-token-day-1-example.json - examples/waodao-schema-example.json - examples/waodao-pools-example.json