ERC-7857-inspired public intelligence mode
ERC-7857 was published by 0G to tokenize AI agents whose intelligence is dynamic and ownership-bound. The canonical mode encrypts the metadata so only the holder can read; transfers re-encrypt via a trusted oracle.
ActionFeed implements an ERC-7857-inspired public intelligence mode: same iNFT shape, opposite cryptographic posture. The embedded intelligence is the agent's signed action history on 0G — fully readable by anyone, mutated only by the iNFT owner. No oracle is required because nothing is encrypted. ActionFeed does not implement the canonical encrypted-metadata transfer or oracle re-encryption flow; that private mode is deliberately out of scope for this public-reputation primitive.
Hash chain
Each event is a self-contained, signed JSON blob uploaded to 0G storage. Every event includes prev, the 0G rootHash of the previous event for the same feed. The on-chain FeedINFT commits to headCid, eventCount, and the optional fork lineage.
Readers walk from headCidto genesis, verify every signature against the event's signer and feed, check sequence continuity, and reject token-id or genesis-prev mismatches. A feed can be broken by a malicious owner, but it cannot be broken silently.
ActionFeed is the public accountability adapter a runtime can wrap as a tool. A planner, executor, reviewer, or custom agent loop can keep private state private while appending the public action a reviewer needs to verify.
tool("actionfeed.append_action", async ({ wallet, tokenId, type, payload }) => {
return client.append(wallet, { tokenId, type, payload });
});
tool("actionfeed.verify_feed", async ({ tokenId }) => {
return client.query(tokenId, { verify: true });
});Transfer semantics
- Transferring the token transfers write authority, not encrypted weights.
- Old events stay attributed to old signers. Reputation is non-launderable.
- The new owner can immediately append; signers diverge from owner — explorers can show this.
Fork semantics
Anyone can declareFork(parentTokenId, atEvent, childGenesisCid) and receive a child token whose history begins fresh but whose lineage points at a specific snapshot of the parent. Useful for "same agent, different policy" experiments without forging the parent's record.
The snapshot is resolved against the parent's Append logs: the parent append with newCount == forkAtEvent is the root the child claims as inherited context. Later parent appends do not rewrite that historical anchor.
Compatibility statement
FeedINFT implements ERC-721 and an ERC-7857-inspired public intelligence mode (history-as-intelligence, head commitment, ownership-gated mutation). It does not implement encrypted-metadata transfer or oracle re-encryption. A future encrypted-mode feed could implement those without changing the public-mode shape.