Create a project and device in the Golioth console or via the goliothctl CLI; generate device credentials (PSK ID and PSK or certificate) and store them securely on the device
Integrate the Golioth Firmware SDK into your Zephyr or ESP-IDF project; configure the credentials and Golioth server address in the project's Kconfig or sdkconfig
Upload a firmware artifact to Golioth: goliothctl dfu artifact create --version <semver> --platform <platform> --file firmware.bin
Create a release and attach the artifact: goliothctl dfu release create --release-tags <tag> --components <package_name>@<version>
Enable rollout on the release; devices in the matching cohort will poll Golioth and receive the new firmware manifest; the SDK's OTA client downloads and writes the image to the update partition
After a successful update the device reboots; confirm the new version appears in the Golioth console under device details
Known gotchas
Devices belong to a cohort, and only one active deployment exists per cohort at a time; creating a new release does not automatically reach devices until rollout is enabled
Package names in the artifact must match what the device firmware reports as its current package name; a mismatch causes the OTA client to ignore the release
The Golioth Firmware SDK requires CoAP over DTLS connectivity (UDP); firewalls that block UDP or non-standard ports will prevent devices from connecting
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp