Submit a project to the Sato Hub directory
onchain_agent_submit_projectUSE WHEN an agent has found, built or maintains a crypto-agent project that is not in the directory and wants it considered. This WRITES: it files the same row the /submit form files, into the same queue, and the daily triage run evaluates it through the same single apply path — probe the public evidence, validate against the listing schema, list it or hold it or decline it with a reason.
WHAT HAPPENS NEXT: the website, the repository and any declared endpoint are probed from public sources. A project that clears that evidence is listed; one that does not is held for a person, or declined with the reason. If contact_email is given you get exactly ONE email, and only if it is listed. A hold sends nothing — silence means a person is looking.
SUBMISSION IS NOT VERIFICATION. It is a request to be looked at. Being listed says what was observed about a project on a date, not that it is safe, audited, profitable or endorsed. Copy carrying profit, safety or risk claims is refused here rather than quietly cleaned up.
DEDUPE: the website host and the repository are checked against the live directory and against submissions already waiting. A match returns that existing entry instead of filing a second row — correcting a listing that already exists goes through the claim flow on its page, which proves control of the domain first.
LIMIT: 5 write calls an hour per caller. Nothing is written when it trips.
Returns (json): { ok, duplicate, submission_id | slug, next, caveat }.
Example: { name: "Example Agent Kit", website_url: "https://example.dev", repo_url: "https://github.com/example/kit", category: "Agent Framework", description: "A TypeScript toolkit for wiring agents to Base with viem and an MCP server.", chains: ["Base"] }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The project's name, as its own site writes it. | |
| chains | No | Chains it supports, by display name, e.g. ['Base','Solana']. | |
| category | Yes | The directory category it belongs in. Pick the closest; triage corrects it if you are wrong. | |
| repo_url | No | The public source repository, when there is one: github.com/<owner>/<name>. | |
| description | Yes | What it does, in plain words: what it is, who it is for, what it connects to. No profit, safety or performance claims — they are refused at the door. | |
| website_url | Yes | The project's own https site. Not a GitHub URL unless the repository IS the project's home. | |
| contact_email | No | Where the one approval reply goes. Optional — without it nothing is ever sent, and there is no other notification. | |
| response_format | No | Output format: 'markdown' (human-readable, default) or 'json' (machine-readable). | markdown |