# rollup.emitNotice

Emits a **notice** — a verifiable statement of fact about the application state, with no on-chain action attached. Off-chain consumers can validate a notice against the application's settled output root instead of re-executing the machine.

Encoded on-chain as `Notice(bytes)` and added to the outputs merkle tree (provable).

## Usage

```ts twoslash
import { Rollup } from '@deroll/cmio';
const rollup = new Rollup();
// ---cut---
const index = rollup.emitNotice(
    Buffer.from(JSON.stringify({ matchId: 42, winner: '0xf39F…2266' })),
);
```

## Returns

`number` — the output index among all provable outputs ever emitted by the application.

## Parameters

### payload

* Type: `BytesLike` — 0x-prefixed hex string, `Buffer` or `Uint8Array`
* Required

The attested data. Application-defined format — JSON, ABI-encoded structs, hashes, anything your consumers can decode.

## Errors

| Condition | Error |
| --- | --- |
| Malformed hex string / wrong argument type | `TypeError` |
| Notice larger than the machine's output buffer | `RollupError` with negative `errno` |
