FACTOS
Demonstration environment. This record describes a synthetic instrument on Ethereum Sepolia. It does not represent a real credit right or a real person. The registry state below is written by a single FACTOS key.

REGISTRY-STATE REFERENCE

FACTOS-PRS-2026-09-08

Read by the asset of an ERC-8226 mandate at execution time. The registry state lives in a FACTOS contract, keyed by instrument, and the asset consults it before it acts. It is not carried in the mandate's identityRef, which is identity evidence about the principal and nothing else.

Version 1 · 8 September 2026 Ethereum Sepolia · test network Synthetic instrument

Instrument

NatureSynthetic. Instrument 1 of a determinate set fixed at deployment.
Published registry stateCurrent: VIGENTE
Recorded holder0x06a1cb40BeDb8f8462cF9C5E8aa84bad1Fa36929
Evidence-package reference0xe112a561ac8ea58d502e05996871e547ab373aaee3323803030b96c18b636a34

On-chain anchors

NetworkEthereum Sepolia (11155111)
Registry contract0x89a280ea13FEEed76655251dA089d18ec4c3bCbc · source verified on Sourcify, exact match
Consulting asset0x16a2CB681eBa98A1121B398D5C7b0d5a925f0b66 · source verified on Sourcify, exact match
Mandate registry0xB7e7B1ca762144A135FB43F9f543Ee76B21B8583 · Brickken, unmodified
Identity provider0x58F4A2cb61e90682a71Cae28a59539C0e5CA43A5 · operated by Brickken, not by FACTOS. They granted the principal on 9 September at our request, so the identity layer here is theirs.
Mandate0xf0fafea2…51ec0429 · agent 0x8A403Dc80A111129Fac9c624Ab1FE8cE49491e1E
Publishing transaction0xc7e13376…46b7e96d

The sequence, on chain

Four states, in order, each one a transaction. Two of them end in a reverted call, which is the point: the mandate says yes and the asset refuses anyway.

Current, agent actsexecuted · 0x28962324…0de6e8d5
Pledged, agent triesreverted RegistralStateWithdrawn(PLEDGED) · 0x73695327…3ea6c98ec · block 11667947
Released, agent acts againexecuted · 0x17858c1c…a1ef0601
Endorsed away, agent triesreverted HolderMismatch(0xb84a7779…) · 0xd8f84cd3…5e76feb19 · block 11667944

At both of those blocks the mandate registry was asked the same question and answered (true, OK). Nothing about the mandate had changed. What changed was the instrument.

Check it without asking us

The registry state now, and the fail-closed case:

cast call 0x89a280ea13FEEed76655251dA089d18ec4c3bCbc \
  "stateOf(uint256)((bool,uint8,address,bytes32))" 1 --rpc-url <sepolia>
# (true, 0, 0x06a1cb40…, 0xe112a561…)

cast call 0x89a280ea13FEEed76655251dA089d18ec4c3bCbc \
  "stateOf(uint256)((bool,uint8,address,bytes32))" 99 --rpc-url <sepolia>
# all zeros. Instrument 99 was never published, so it is not current. Fail closed.

The claim itself, at the block where the agent was refused. The registry says the mandate is fine; the asset refuses on the instrument:

Use an archive endpoint for these two. They read state at a past block, and most public Sepolia nodes prune historical state: they will answer state at block … is pruned instead of the result. Any archive endpoint works; https://sepolia.gateway.tenderly.co is one.
cast call 0xB7e7B1ca762144A135FB43F9f543Ee76B21B8583 \
  "canExecute(address,address,address,bytes32,uint256)(bool,uint8)" \
  0x8A403Dc80A111129Fac9c624Ab1FE8cE49491e1E 0x06a1cb40BeDb8f8462cF9C5E8aa84bad1Fa36929 \
  0x16a2CB681eBa98A1121B398D5C7b0d5a925f0b66 \
  0x30dbe47100000000000000000000000000000000000000000000000000000000 \
  100000000000000000000 --rpc-url <sepolia> --block 11667947
# true, 0    the mandate is valid and the action is within its caps

cast call 0x16a2CB681eBa98A1121B398D5C7b0d5a925f0b66 \
  "act(uint256,uint256)" 1 100000000000000000000 \
  --from 0x8A403Dc80A111129Fac9c624Ab1FE8cE49491e1E --rpc-url <sepolia> --block 11667947
# 0xdcab9595…01    RegistralStateWithdrawn(PLEDGED)

A correction, 10 September

This record first used instrument 2 as the fail-closed example, because it had never been published and answered all zeros. A later demonstration on this same registry published instruments 1 and 2 with a fresh evidence-package reference, which made that example wrong and moved the reference quoted above. The example now points at instrument 99, which has never been written. We are noting it rather than quietly editing it, because the page tells you to check the chain yourself and for a few hours the chain disagreed with the page.

The lesson we took: a demonstration should not write to a registry whose state a published record already describes.

What changed on 8 September

An earlier design carried the registry state through the mandate's compliance provider, with the reference to this record in identityRef. The author of ERC-8226 settled that day that identityRef means identity evidence about the principal and does not identify the asset or the right. The state moved to a contract of its own, keyed by instrument, consulted by the asset at execution time. The earlier record stays published as FACTOS-PRS-2026-09-02.

Every identifier on the ABI is English. An earlier build of this same architecture used Spanish names for the errors and the enum, which was a mistake in something meant to be read by people who do not speak it. Renaming restored something unplanned: the error keeps the selector 0xdcab9595 it had in the first version, so a revert decoded against that version still decodes here.

The record carries the holder as well as the state. That is what answers the endorsement case: a note endorsed to a third party leaves the principal exactly as eligible as before, and the mandate untouched, while the asset can still tell that the principal no longer holds the thing the mandate was granted over.

Scope of what is published. The registry state of this reference is written by a FACTOS key, over a synthetic instrument, on a test network. The recorded holder is who FACTOS has recorded, not a finding about who is entitled. What is published is a measured fact, never a recommendation. It does not certify that the right is valid or enforceable in any given forum, nor the authenticity of the identity binding of the parties.