Recording data
Trainers post data requests on the data board: a class of robot, what to record, how many sessions, and a reward per accepted session. Collectors record teleoperated sessions with the agent and submit them on-chain.
Record a session
- Open a request and pick one of your robots whose class the request accepts.
- Connect it through the agent and press Start recording. Drive the robot through the scenario.
- Press Stop and upload. The agent packs
meta.json,frames.bin(every frame with a host timestamp), and optional audio and labels into a tar, compresses it, and uploads it.dataHashis keccak256 of the tar bytes.
Automated checks
Before a session can go on-chain the API checks that the duration matches the frame timestamps (within 2%), that
no sensor stream is frozen for more than 20% of the session, that the robot actually moved (encoder ticks for
mobile/1 robots with encoders, IMU variance for companions), that the body hash matches the robot's on-chain
body, and that the session is not simulated. Sessions recorded in the browser sim are flagged simulated and can
never be submitted.
Submit and get paid
Stake and submit on-chain approves the per-session stake and calls DataAttestation.submitSession. Your stake
shrinks as you build a reputation of accepted sessions. The trainer accepts (or anyone can, 72 hours after
submission with no flag), the stake comes back, and the reward is paid. Anyone may flag a junk session within 72
hours by posting a bond; the arbiter decides, and the loser's stake or bond goes to the other side.

