# [Usage](../../../usage.md) > [Components and standard attributes](../basics.md) > UUID

---

`uuid` | `->setUUID()`

The UUID is an attribute that is automatically set and does not normally require user interaction, is displayed here for documentation, and is strongly advised to not manipulate it: is useful to distinguish components, get stored callbacks in cache or identify parent forms for validation.

| Types    | Default       |
|----------|---------------|
| `string` | `Str::uuid()` |


Also for documentation, the components can have a `parentUUID` attribute, this is useful to set the uuid of the parent form, is set automatically at the Form build, and does not exist natively at the component creation.

Every component gets a `Str::uuid()` at `::make()`; cloning regenerates it (preserving the name-fallback rule). Used internally to cache `action`, `progressBar`, and `onLoadChange` / `updateOnChange` payloads. When omitted you get an auto uuid — never set it manually unless restoring cached state.
Unnamed components fall back to uuid as `name`, which is why explicit `name` matters.

### Example
Blade:
```php
{!! \KFramework\Components\Forms\Input::make('email') !!}
```
Controller:
```php
$field = Input::make('email'); // uuid auto-assigned
// $field->uuid; $field->setUUID($uuid); // avoid unless needed
```

### Interaction / tips
- `name` (../shared_attributes/name.md) falls back to `uuid` when unset; always name form fields.
- `make` (../shared_attributes/make.md) creates the uuid; `setAttribute` (../shared_attributes/set_attribute.md) can overwrite (not recommended).
- Parent forms track children via `parentUUID` for validation and change events.

See also: [name](name.md), [make](make.md), [setAttribute](set_attribute.md), [action](action.md), [basics](../basics.md), [Form](../forms/form.md).