From developer
Build applications, automations, and AI workflows on the Autonomi Network. Use this skill when the user wants to store or retrieve data, add Autonomi storage to an application, build read-only or upload-enabled features, use the `antd` daemon and SDK bindings, work from the `ant` CLI, build directly in Rust with `ant-core`, or expose Autonomi through an MCP-compatible client. Do not use for Autonomi 1.0, the MaidSafe-era network, `ant-quic`, or general EVM work that is not part of building on Autonomi.
How this skill is triggered — by the user, by Claude, or both
Slash command
/developer:startThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill makes you effective at building on the Autonomi Network without making the user read the full docs set first. Treat it as an operational guide: pick the correct Autonomi path, fetch one live reference when exact interface details matter, and do not invent Autonomi-specific APIs.
This skill makes you effective at building on the Autonomi Network without making the user read the full docs set first. Treat it as an operational guide: pick the correct Autonomi path, fetch one live reference when exact interface details matter, and do not invent Autonomi-specific APIs.
Use this skill when the task is about:
antd and the SDK bindingsant CLIant-coreDo not use this skill for:
ant-quic or older transport docscurl -fsSL https://raw.githubusercontent.com/WithAutonomi/autonomi-developer-docs/main/skills/start/version.json
If the published version is newer, tell the user this copy may be stale and offer to reload it. If the fetch fails, continue silently. For an unpublished draft, that usually means the skill is not on main yet.
Pick one path before you start coding: SDK, CLI, Direct Rust, or MCP.
Fetch one live reference page once per task when you need volatile details such as install steps, exact REST or gRPC schemas, binding-specific helpers, CLI flags, MCP tool names, devnet-manifest fields, or prepare/finalize payload shapes.
Do not invent Autonomi-specific details. If this skill does not name a route, flag, method, env var, or tool and you have not fetched the live reference, do not guess it.
For anything that uploads data, start on a local devnet first unless the user explicitly wants public-network work.
Ask before installing software, configuring wallets, or touching real ANT on a public network.
| Path | Choose it when the user wants to... | Fetch first when details matter |
|---|---|---|
| SDK | Build an application in Python, JavaScript, TypeScript, Rust, Go, Java, C#, Kotlin, Swift, Ruby, PHP, C++, Dart, or Zig through a local daemon | language page plus REST or gRPC reference |
| CLI | Work from the shell, script uploads or downloads, inspect wallets, or do operational workflows | CLI command reference |
| Direct Rust | Build daemon-free Rust with direct network control or local devnet helpers | Rust getting-started page plus library reference |
| MCP | Let an MCP-compatible client talk to Autonomi through antd | MCP setup page plus MCP server reference |
If the user has not chosen a path, recommend SDK first. It is the best fit for most application work.
Use this workflow to stay fast without guessing:
For SDK and MCP work, the fastest first check is usually:
curl http://localhost:8082/health
Expected shape:
{
"status": "ok",
"network": "default",
"version": "0.7.1",
"evm_network": "arbitrum-one",
"uptime_seconds": 12345,
"build_commit": "529280c3",
"payment_token_address": "0x...",
"payment_vault_address": "0x..."
}
Treat network as environment-dependent. On a local devnet, it is typically local instead of default, and the payment address fields may be empty strings.
If the user is on a non-default host or port, ask for the base URL instead of assuming localhost:8082.
Choose SDK when the user wants normal application development in a supported language. This path goes through antd.
Current daemon defaults:
http://localhost:8082localhost:50051daemon.port file written by antdCurrent shared daemon surfaces you can rely on at this commit:
GET /healthPOST /v1/data/publicGET /v1/data/public/{addr}POST /v1/dataPOST /v1/data/getPOST /v1/data/costPOST /v1/files/publicPOST /v1/files/public/getPOST /v1/filesPOST /v1/files/getPOST /v1/files/costGET /v1/wallet/addressGET /v1/wallet/balancePOST /v1/wallet/approvePOST /v1/data/preparePOST /v1/upload/preparePOST /v1/upload/finalizePOST /v1/chunks/preparePOST /v1/chunks/finalizeGolden public-data round trip:
DATA_B64=$(printf 'Hello, Autonomi!' | base64)
curl -X POST http://localhost:8082/v1/data/public \
-H "Content-Type: application/json" \
-d "{\"data\":\"$DATA_B64\"}"
curl http://localhost:8082/v1/data/public/<address>
Keep these rules straight:
POST /v1/data/public returns a public address.POST /v1/data returns a serialized DataMap (the DataMap is not stored on-network).POST /v1/data/get retrieves private data; pass data_map in the JSON body (not a query parameter).AUTONOMI_WALLET_KEYCurrent documented binding entry points:
AntdClient() or AsyncAntdClient()createClient()NewClient(...)Client::new(...)Standalone binding pages also exist for Java, C#, Kotlin, Swift, Ruby, PHP, C++, Dart, and Zig. Fetch the language-specific page when the user is working in one of those SDKs.
The bindings overview is not exhaustive for every standalone binding page. Use the direct language page when one exists instead of assuming the overview lists everything.
Before writing SDK code beyond health checks and the public-data round trip, fetch the binding page for the user's language.
Choose CLI when the user wants direct shell workflows, scripts, CI automation, wallet inspection, or quick operational tasks without antd in the data path.
Current CLI rules that matter in practice:
--bootstrap, --devnet-manifest, --allow-loopback, and --evm-network come before the subcommandant CLI's main top-level groups are file, chunk, wallet, node, and updateSECRET_KEYGolden public-file flow on a local devnet:
SECRET_KEY=0x... ant \
--devnet-manifest /tmp/devnet.json \
--allow-loopback \
--evm-network local \
file upload photo.jpg --public
ant \
--devnet-manifest /tmp/devnet.json \
--allow-loopback \
--evm-network local \
file download <address> -o photo_copy.jpg
Keep these rules straight:
.datamap file instead of returning a public address--datamap <PATH>For anything beyond these patterns, fetch the CLI command reference first.
Choose Direct Rust when the user wants daemon-free Rust, native Rust types, direct client control, or built-in local devnet helpers.
Current ant-core surfaces you can name safely:
Client::connect(...)with_wallet(...)data_upload(...)data_download(...)file_upload_with_mode(...)file_download(...)data_map_store(...)data_map_fetch(...)LocalDevnet::start_minimal()LocalDevnet::create_funded_client(...)Use Direct Rust when the user needs those native surfaces. Do not infer full method signatures or argument shapes from memory; fetch the Rust getting-started page and the library reference before writing the code.
Choose MCP when an MCP-compatible client should use Autonomi through structured tools instead of raw HTTP.
Current MCP setup facts:
antd-mcppip install "antd[rest]"
pip install -e antd-mcp/
Run the editable install from an ant-sdk checkout root.
antd-mcpantd-mcp --sseANTD_BASE_URLdaemon.porthttp://127.0.0.1:8082antd writes the port file to ant/sdk/daemon.port and antd-mcp reads from the same path, so port-file discovery works without ANTD_BASE_URL when both are installed from the same ant-sdk checkout. Set ANTD_BASE_URL when you need a fixed URL or when running against a daemon on a different host.
Do not memorize MCP tool names or schemas in this skill. Fetch the MCP server reference when the task is MCP-specific.
Autonomi has one underlying storage primitive: encrypted chunks. Public and private data differ mainly in where the DataMap lives.
DataMap that the caller must keepDataMap before anything elseThese are different things:
AUTONOMI_WALLET_KEY pays for uploads through antdSECRET_KEY pays for uploads and wallet commands through antWallet pays for uploads through ant-coreDataMap retrieves private dataDo not collapse those concepts into one key-handling model.
This is the first architectural split to make.
If the feature is read-only:
AUTONOMI_WALLET_KEYIf the feature uploads data:
For upload-enabled work, the shortest safe loop is:
ant dev start --ant-node-dir ../ant-node
ant dev status
ant dev wallet show
curl http://localhost:8082/health
The local environment gives you a running devnet, antd --network local, and a funded local wallet. Stop it with:
ant dev stop
These ant dev commands come from the ant-dev package in ant-sdk, not from the direct-network ant CLI in ant-client.
The devnet-manifest handoff is shared across client and node code. Treat its exact field shape as volatile and fetch the live reference before automating around it.
Current upload payment modes are:
automerklesingleUse auto unless the user has a reason to force the behavior. If the user wants explicit cost estimation before an upload, use the current cost endpoints or the path-specific reference page.
The prepare/finalize flows are also shared across multiple layers now. Treat exact prepare payload fields, finalize variants, and Merkle versus wave-batch response shapes as volatile and fetch the live reference before writing code around them.
The daemon is not running, it is on a different port, or the task should be using CLI or Direct Rust instead of SDK or MCP.
503 on daemon write routesantd is reachable but wallet configuration is missing. Check AUTONOMI_WALLET_KEY or switch to an external-signer flow.
insufficient fundsDistinguish between missing ANT and missing gas. Do not tell the user to fund the wallet without identifying which balance is missing.
Check the DataMap first. Private content still needs the retrieval metadata even after the content has already been paid for.
Check whether the root flags were placed after the subcommand. In ant, global flags belong before file, chunk, wallet, node, or update.
Check whether the test expects raw bytes over REST. Current REST binary payloads are JSON with base64 in the data field.
ant-quic in Autonomi 2.0 work.Use these pages as the first lookup for current details:
| Need | Live page |
|---|---|
| Overview | https://docs.autonomi.com/developers |
| SDK entry point | https://docs.autonomi.com/developers/sdk/install |
| SDK first upload | https://docs.autonomi.com/developers/sdk/install/store-data-on-the-network |
| SDK first retrieval | https://docs.autonomi.com/developers/sdk/install/retrieve-data-from-the-network |
| SDK store and retrieve guide | https://docs.autonomi.com/developers/sdk/install/how-to-guides/store-and-retrieve-data |
| SDK daemon as service | https://docs.autonomi.com/developers/sdk/install/how-to-guides/use-the-daemon-as-a-local-service |
| REST API | https://docs.autonomi.com/developers/sdk/install/reference/rest-api |
| gRPC services | https://docs.autonomi.com/developers/sdk/install/reference/grpc-services |
| Daemon command reference | https://docs.autonomi.com/developers/sdk/install/reference/daemon-command-reference |
| Language bindings overview | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/overview |
| Python SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/python |
| JavaScript SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/javascript |
| TypeScript SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/typescript |
| Rust SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/rust |
| Go SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/go |
| Java SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/java |
| C# SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/csharp |
| Kotlin SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/kotlin |
| Swift SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/swift |
| Ruby SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/ruby |
| PHP SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/php |
| C++ SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/cpp |
| Dart SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/dart |
| Zig SDK | https://docs.autonomi.com/developers/sdk/install/reference/language-bindings/zig |
| CLI quickstart | https://docs.autonomi.com/developers/cli/use-the-cli |
| CLI command reference | https://docs.autonomi.com/developers/cli/command-reference |
| Direct Rust quickstart | https://docs.autonomi.com/developers/developing-in-rust/build-directly-in-rust |
| Rust library reference | https://docs.autonomi.com/developers/developing-in-rust/library-reference |
| MCP setup | https://docs.autonomi.com/developers/mcp/use-the-autonomi-mcp-server |
| MCP reference | https://docs.autonomi.com/developers/mcp/mcp-server-reference |
| Local devnet | https://docs.autonomi.com/developers/guides/set-up-a-local-network |
| Prepare a wallet | https://docs.autonomi.com/developers/guides/prepare-a-wallet-for-uploads |
| Payments and cost estimation | https://docs.autonomi.com/developers/guides/estimate-costs-and-handle-upload-payments |
| Read-only features | https://docs.autonomi.com/developers/guides/build-read-only-features |
| Testing | https://docs.autonomi.com/developers/guides/test-your-application |
| Deploy to mainnet | https://docs.autonomi.com/developers/guides/deploy-to-mainnet |
| Data types | https://docs.autonomi.com/developers/core-concepts/data-types |
| Keys, addresses, and DataMaps | https://docs.autonomi.com/developers/core-concepts/keys-addresses-and-datamaps |
| Self-encryption | https://docs.autonomi.com/developers/core-concepts/self-encryption |
| Payment model | https://docs.autonomi.com/developers/core-concepts/payment-model |
| System overview | https://docs.autonomi.com/developers/architecture/system-overview |
| Glossary | https://docs.autonomi.com/developers/reference-extras/glossary |
| Source repositories | https://docs.autonomi.com/developers/reference-extras/source-repositories |
Trust the live docs over stale memory. If the live docs and this skill disagree, tell the user the skill may be stale, use the live docs for the task in front of you, and update the skill package in this repo afterward.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub withautonomi/autonomi-developer-docs --plugin developer