Skip to content

Add public integration and trust model docs#181

Merged
czepluch merged 17 commits intomainfrom
public-docs-refresh
Jan 15, 2026
Merged

Add public integration and trust model docs#181
czepluch merged 17 commits intomainfrom
public-docs-refresh

Conversation

@odyslam
Copy link
Contributor

@odyslam odyslam commented Jan 15, 2026

No description provided.

Copy link
Contributor

@czepluch czepluch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good. suggested some changes for consistency, but it's purely optics


## Guidance

- Keep interface changes backward compatible when possible.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Keep interface changes backward compatible when possible.
- Keep interface changes backward compatible when possible

## Guidance

- Keep interface changes backward compatible when possible.
- If a breaking change is needed, update all dependent components in the same release window.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- If a breaking change is needed, update all dependent components in the same release window.
- If a breaking change is needed, update all dependent components in the same release window


- Keep interface changes backward compatible when possible.
- If a breaking change is needed, update all dependent components in the same release window.
- Ensure public docs reflect any new interface expectations.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Ensure public docs reflect any new interface expectations.
- Ensure public docs reflect any new interface expectations

Comment on lines +35 to +39
- **Block-building hook**: the block builder queries the Assertion Enforcer before including a
transaction.
- **Registry access**: the enforcer reads the on-chain registry to discover which assertions apply.
- **Assertion data access**: the enforcer fetches assertion bytecode from Assertion DA.
- **Operational monitoring**: incidents and status are surfaced via the Credible dApp.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Block-building hook**: the block builder queries the Assertion Enforcer before including a
transaction.
- **Registry access**: the enforcer reads the on-chain registry to discover which assertions apply.
- **Assertion data access**: the enforcer fetches assertion bytecode from Assertion DA.
- **Operational monitoring**: incidents and status are surfaced via the Credible dApp.
- **Block-building hook**: the block builder queries the Assertion Enforcer before including a
transaction
- **Registry access**: the enforcer reads the on-chain registry to discover which assertions apply
- **Assertion data access**: the enforcer fetches assertion bytecode from Assertion DA
- **Operational monitoring**: incidents and status are surfaced via the Credible dApp

Comment on lines +43 to +45
- The enforcer runs alongside the block builder and does not change consensus rules.
- Enforcement is deterministic and only depends on on-chain state and assertion code.
- Networks can stage assertion deployments before enforcing them in production.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- The enforcer runs alongside the block builder and does not change consensus rules.
- Enforcement is deterministic and only depends on on-chain state and assertion code.
- Networks can stage assertion deployments before enforcing them in production.
- The enforcer runs alongside the block builder and does not change consensus rules
- Enforcement is deterministic and only depends on on-chain state and assertion code
- Networks can stage assertion deployments before enforcing them in production

Comment on lines +10 to +33
- **Deterministic enforcement**: given the same on-chain state and assertion code, enforcement
results are deterministic.
- **Pre-execution protection**: transactions that violate deployed assertions are excluded from
blocks by networks running the enforcer.
- **Transparent rules**: assertions are public Solidity code and can be audited by anyone.

## What We Do Not Guarantee

- **Assertion correctness**: teams are responsible for writing accurate assertions.
- **Complete coverage**: only behaviors covered by assertions are enforced.
- **Off-chain security**: custodial, UI, or off-chain service risks are out of scope.

## Operational Assumptions

- The network runs the Assertion Enforcer during block building.
- The enforcer can access the on-chain registry and assertion bytecode.
- The network follows its normal transaction validity rules alongside enforcement.

## Failure Modes (High Level)

- **Enforcer unavailable**: the network continues normal operation without enforcement until the
enforcer is restored.
- **Registry misconfiguration**: assertions may not apply to intended contracts.
- **DA connectivity issues**: new assertions may be delayed until bytecode is reachable.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **Deterministic enforcement**: given the same on-chain state and assertion code, enforcement
results are deterministic.
- **Pre-execution protection**: transactions that violate deployed assertions are excluded from
blocks by networks running the enforcer.
- **Transparent rules**: assertions are public Solidity code and can be audited by anyone.
## What We Do Not Guarantee
- **Assertion correctness**: teams are responsible for writing accurate assertions.
- **Complete coverage**: only behaviors covered by assertions are enforced.
- **Off-chain security**: custodial, UI, or off-chain service risks are out of scope.
## Operational Assumptions
- The network runs the Assertion Enforcer during block building.
- The enforcer can access the on-chain registry and assertion bytecode.
- The network follows its normal transaction validity rules alongside enforcement.
## Failure Modes (High Level)
- **Enforcer unavailable**: the network continues normal operation without enforcement until the
enforcer is restored.
- **Registry misconfiguration**: assertions may not apply to intended contracts.
- **DA connectivity issues**: new assertions may be delayed until bytecode is reachable.
- **Deterministic enforcement**: given the same on-chain state and assertion code, enforcement
results are deterministic
- **Pre-execution protection**: transactions that violate deployed assertions are excluded from
blocks by networks running the enforcer
- **Transparent rules**: assertions are public Solidity code and can be audited by anyone
## What We Do Not Guarantee
- **Assertion correctness**: teams are responsible for writing accurate assertions
- **Complete coverage**: only behaviors covered by assertions are enforced
- **Off-chain security**: custodial, UI, or off-chain service risks are out of scope
## Operational Assumptions
- The network runs the Assertion Enforcer during block building
- The enforcer can access the on-chain registry and assertion bytecode
- The network follows its normal transaction validity rules alongside enforcement
## Failure Modes (High Level)
- **Enforcer unavailable**: the network continues normal operation without enforcement until the
enforcer is restored
- **Registry misconfiguration**: assertions may not apply to intended contracts
- **DA connectivity issues**: new assertions may be delayed until bytecode is reachable

Comment on lines +13 to +14
- **CLI + dApp**: write assertions locally, store bytecode, and manage deployments in the dApp.
- **dApp-first**: use the dApp for project management, staging, and incident monitoring.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- **CLI + dApp**: write assertions locally, store bytecode, and manage deployments in the dApp.
- **dApp-first**: use the dApp for project management, staging, and incident monitoring.
- **CLI + dApp**: write assertions locally, store bytecode, and manage deployments in the dApp
- **dApp-first**: use the dApp for project management, staging, and incident monitoring

Comment on lines +12 to +14
<Note>
Looking for the Besu/Linea pattern? See [Linea / Besu Integration](/credible/architecture-linea).
</Note>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SHould we add a note going in the other direction too? Linking to OP from Linea. I guess it's not as important currently, so I'm fine with leaving things as is

Copy link
Contributor

@czepluch czepluch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please fix diagram

Comment on lines +22 to +47
```mermaid
---
title: Linea Besu Integration (High Level)
---
flowchart LR
subgraph BesuNode["Linea Besu Node"]
TxPool["Transaction Pool"]
Builder["Block Builder"]
Plugin["Credible Layer Plugin"]
end

subgraph Sidecar["Assertion Enforcer Sidecar"]
Engine["Assertion Execution Engine"]
Store["Assertion Store"]
Registry["On-Chain Registry"]
DA["Assertion DA"]
end

TxPool --> Builder
Builder --> Plugin
Plugin <--> Sidecar
Sidecar --> Engine
Engine --> Store
Store <---> Registry
Store <---> DA
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This diagram looks pretty weird if you look at it in the staged docs: https://phylaxsystems-public-docs-refresh.mintlify.app/credible/architecture-linea

Especially the arrow "<--->" from "assertion execution engine" to "assertion store".

Wasn't the old diagram better? Or is it too detailed?

@czepluch
Copy link
Contributor

The Linea diagram I comment on above is still not fixed. Otherwise things look good

Copy link
Contributor

@czepluch czepluch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good. mainly one nit left to address.

Copy link
Contributor

@czepluch czepluch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good to me. excellent additions and clarifications.

@czepluch czepluch merged commit 21eb261 into main Jan 15, 2026
2 checks passed
@czepluch czepluch deleted the public-docs-refresh branch January 15, 2026 15:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants