> For the complete documentation index, see [llms.txt](https://docs.bloxchain.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bloxchain.app/introduction/operational-model.md).

# How this works

**Time:** \~15 minutes

This page explains the end-to-end model: governed operations, roles, time-lock vs meta-transaction paths, transaction lifecycle, and how work appears in **bloxchain.app**.

## Governed operations

High-stakes on-chain actions go through a **governed operation**:

1. **Request** — A wallet with permission creates a `TxRecord` in `PENDING`.
2. **Policy checks** — RBAC, function schema, allowlists, timelock or meta-transaction rules.
3. **Approve** — Owner or an authorized role moves the record toward execution.
4. **Execute** — A guarded call completes as `COMPLETED` or `FAILED`.

Cancellation is possible from `PENDING` → `CANCELLED` when policy allows.

![Governed workflow (simple)](/files/DmrOoFSFfQxPSDnrn0pM)

Enforcement stays **on-chain**. The app and SDK submit operations; they do not override protocol rules.

| Everyday term     | Protocol meaning                              |
| ----------------- | --------------------------------------------- |
| Proposal / intent | Governed **request** → `PENDING`              |
| Approval          | Delayed approve or meta approve → `EXECUTING` |
| Execution         | Guarded call → `COMPLETED` or `FAILED`        |
| Cancellation      | `PENDING` → `CANCELLED`                       |

## Roles and separation of duties

Treasury teams need controls that do not collapse into a single hot key.

### Protected roles (SecureOwnable)

| Role            | Typical responsibility                                            |
| --------------- | ----------------------------------------------------------------- |
| **Owner**       | Administrative authority: delayed approvals for sensitive changes |
| **Broadcaster** | Submits **meta-transactions** on-chain (often pays gas)           |
| **Recovery**    | Emergency path when configured                                    |

### Custom roles (RuntimeRBAC)

Administrators define **custom roles** (for example “Treasury requester”) and assign wallets. Per **operation**, policy sets which actions each role may perform: request, approve, cancel, sign, execute.

![Owner, Broadcaster, and Recovery](/files/W9OXvNRp1juVtkzFNwrY)

Deep dive: [Core concepts](/introduction/protocol-basics.md).

## Two workflow families

|                 | Time-lock                                        | Meta-transaction                                 |
| --------------- | ------------------------------------------------ | ------------------------------------------------ |
| **Typical use** | High-stakes changes with a waiting period        | Sign off-chain; broadcaster submits on-chain     |
| **Delay**       | Enforced at **delayed approval** (`releaseTime`) | Policy-specific                                  |
| **Signatures**  | Often requester + approver on-chain              | Approver signs EIP-712; **Broadcaster** executes |
| **Gas**         | Requester / approver wallets                     | Often the **Broadcaster**                        |

![Meta-transaction path (EIP-712)](/files/gb77inwSHYYlsNp0TxFO)

Platform detail: [Meta-transactions](/platform-bloxchain.app/overview/approve-and-sign.md).

## Transaction lifecycle

```
UNDEFINED → PENDING → EXECUTING → COMPLETED | FAILED | CANCELLED
```

**Timelock is not a separate status.** Delay is enforced when an approver acts after `releaseTime`.

![Transaction record lifecycle](/files/QXjPmJp4S3TlMFs0mBFt)

| Status                               | Meaning                                                           |
| ------------------------------------ | ----------------------------------------------------------------- |
| `PENDING`                            | Awaiting approval, cancel, timelock release, or meta-tx execution |
| `EXECUTING`                          | Approved path in progress                                         |
| `COMPLETED` / `FAILED` / `CANCELLED` | Terminal outcomes                                                 |

Full reference: [Transaction statuses](/resources/glossary.md#transaction-status-txstatus).

## In bloxchain.app

Open a contract workspace → **Workspace → Transactions**:

| Tab / area    | What you see                                                                                    |
| ------------- | ----------------------------------------------------------------------------------------------- |
| **Open**      | In-progress: on-chain `PENDING`, meta-tx signed awaiting broadcaster, items needing your action |
| **Completed** | Terminal records (`COMPLETED`, `FAILED`, `CANCELLED`)                                           |

Within **Open**, items may show as pending approval or signed-before-execute. The workspace header **open** badge counts the **Open** tab.

## When work looks stuck

| Symptom              | Check                                           |
| -------------------- | ----------------------------------------------- |
| Pending forever      | Timelock not elapsed; no approver; wrong wallet |
| Signed not executing | Broadcaster not submitting; network mismatch    |
| Failed               | Revert reason; allowlist or policy block        |
| Empty Open queue     | Wallet lacks permission; wrong network          |

See [Troubleshooting](/resources/troubleshooting.md).

## Next steps

| Role                 | Next                                                      |
| -------------------- | --------------------------------------------------------- |
| Operator             | [Platform get started](/platform-bloxchain.app/start.md)  |
| Administrator        | [Configure policy](/platform-bloxchain.app/overview-1.md) |
| Developer (Protocol) | [Core concepts](/introduction/protocol-basics.md)         |
| Developer (SDK)      | [SDK quickstart](/getting-started/quickstart.md)          |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bloxchain.app/introduction/operational-model.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
