
REGISTRY-STATE REFERENCE
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
| Nature | Synthetic. Instrument 1 of a determinate set fixed at deployment. |
|---|---|
| Published registry state | Current: VIGENTE |
| Recorded holder | 0x06a1cb40BeDb8f8462cF9C5E8aa84bad1Fa36929 |
| Evidence-package reference | 0xe112a561ac8ea58d502e05996871e547ab373aaee3323803030b96c18b636a34 |
| Network | Ethereum Sepolia (11155111) |
|---|---|
| Registry contract | 0x89a280ea13FEEed76655251dA089d18ec4c3bCbc · source verified on Sourcify, exact match |
| Consulting asset | 0x16a2CB681eBa98A1121B398D5C7b0d5a925f0b66 · source verified on Sourcify, exact match |
| Mandate registry | 0xB7e7B1ca762144A135FB43F9f543Ee76B21B8583 · Brickken, unmodified |
| Identity provider | 0x58F4A2cb61e90682a71Cae28a59539C0e5CA43A5 · operated by Brickken, not by FACTOS. They granted the principal on 9 September at our request, so the identity layer here is theirs. |
| Mandate | 0xf0fafea2…51ec0429 · agent 0x8A403Dc80A111129Fac9c624Ab1FE8cE49491e1E |
| Publishing transaction | 0xc7e13376…46b7e96d |
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 acts | executed · 0x28962324…0de6e8d5 |
|---|---|
| Pledged, agent tries | reverted RegistralStateWithdrawn(PLEDGED) · 0x73695327…3ea6c98ec · block 11667947 |
| Released, agent acts again | executed · 0x17858c1c…a1ef0601 |
| Endorsed away, agent tries | reverted 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.
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:
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)
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.
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.