> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tryblend.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Handles, edges & connections

> The dots you wire together, the connections they form, and the rules that govern what's allowed.

**Handles** are the small dots on a node's edges. They come in two kinds:

* **Input handles** sit on the **left** of a node. They receive data.
* **Output handles** sit on the **right** of a node. They emit data.

An **edge** is a connection. You draw one by dragging from an output handle to a compatible input handle. Data flows along that edge from the source node's output into the target node's input.

## Connection rules

A few rules govern what you're allowed to wire together:

| Rule                           | Behavior                                                                                                                                                                      |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Single vs. multiple inputs** | Most input handles accept exactly one edge. Some — like an Agent's **Tools** input or a [Choose Output](/workflow/nodes/output-comparison)'s **Choices** input — accept many. |
| **No cycles**                  | An edge that would loop data back into one of its own upstream nodes is rejected.                                                                                             |
| **No self-connections**        | A node can't connect to itself.                                                                                                                                               |
| **Type compatibility**         | The output type and input type must be compatible. See [Data types](/concepts/data-types).                                                                                    |

<Note>
  If a connection is rejected, the editor tells you why — usually a type mismatch, a cycle, or an input handle that's already full.
</Note>

## Related

<CardGroup cols={2}>
  <Card title="Data types & compatibility" icon="shapes" href="/concepts/data-types">
    What each handle carries, and which source types connect to which targets.
  </Card>

  <Card title="Lists & single values" icon="list" href="/concepts/lists-and-values">
    When a handle carries one value versus a whole list.
  </Card>
</CardGroup>
