flop-lab
← All tools

FLOP for Kestra alpha

From network
to workflow.

Read the devnet. Check settlement arithmetic. Pass dated outputs to the next task in your Kestra flow.

Install the plugin ↗

No FLOP key needed for the read-only flow.

Inspect the flow

Every step leaves a record.

Choose a node to see its task YAML and recorded output. The line tracks reading progress, not execution.

Separate flows · different evidence

Recorded live read

network.Stats

Read the indexer's block height, accounts, active operators and proof count. Each output carries its source and measurement time.

  - id: stats
    type: io.kestra.plugin.flop.network.Stats

Full task output. Zero operators and proofs are reported values from this capture.

Measured at
Source
https://mcp.flop.network/mcp#flop_get_stats

A bounded read

Know where the evidence ends.

Returned rows / reported tape total

100 / 336

Source: https://mcp.flop.network/mcp#flop_list_settlements
. The feed can move between pages.

What passed

Integer conservation.

For each supplied row, miner paid + unused escrow + burned equals escrow. Amounts stay as integer strings. Block order is also checked.

minerPaid + unusedEscrow + burned = escrow
What remains unknown

Work behind the numbers.

These checks do not verify inference, proofs, signatures, chain inclusion, finality or indexer truth. A PASS applies only to the returned rows.

Read the verification limits ↗

Bring it to your Kestra instance

Copy the flow. Keep the provenance.

Build the plugin with Java 21 in Docker, install the JAR and restart Kestra. Paste this flow into the editor. Each network task returns its time, source and request count.

Execution 3F4DXszdAcK2iyIVBRarwv
The JSON is an excerpt of the local Kestra run, not a signed receipt.

flop_observe.yml
# SPDX-License-Identifier: Apache-2.0
id: flop_observe
namespace: company.flop
tasks:
  - id: stats
    type: io.kestra.plugin.flop.network.Stats
  - id: tape
    type: io.kestra.plugin.flop.settlements.List
    maxResults: 100
    store: true
  - id: verify
    type: io.kestra.plugin.flop.settlements.Verify
    settlements: "{{ outputs.tape.rows }}"
    failOnMismatch: true
  - id: models
    type: io.kestra.plugin.flop.models.List