ethereum/go-ethereum · error
UpdateStem is not implemented for TransitionTrie
Error message
UpdateStem is not implemented for TransitionTrie
What it means
Error "UpdateStem is not implemented for TransitionTrie" thrown in ethereum/go-ethereum.
Source
Thrown at trie/transitiontrie/transition.go:245
// If the trie does not contain a value for key, the returned proof contains all
// nodes of the longest existing prefix of the key (at least the root), ending
// with the node that proves the absence of the key.
func (t *TransitionTrie) Prove(key []byte, proofDb ethdb.KeyValueWriter) error {
panic("not implemented") // TODO: Implement
}
// IsUBT returns true if the trie is verkle-tree based
func (t *TransitionTrie) IsUBT() bool {
// For all intents and purposes, the calling code should treat this as a verkle trie
return true
}
// UpdateStem updates a group of values, given the stem they are using. If
// a value already exists, it is overwritten.
// TODO: This is Verkle-specific and requires access to private fields.
// Not currently used in the codebase.
func (t *TransitionTrie) UpdateStem(key []byte, values [][]byte) error {
panic("UpdateStem is not implemented for TransitionTrie")
}
// Copy creates a deep copy of the transition trie.
func (t *TransitionTrie) Copy() *TransitionTrie {
return &TransitionTrie{
overlay: t.overlay.Copy(),
// base in immutable, so there is no need to copy it
base: t.base,
storage: t.storage,
}
}
// UpdateContractCode updates the contract code for the given address.
func (t *TransitionTrie) UpdateContractCode(addr common.Address, codeHash common.Hash, code []byte) error {
return t.overlay.UpdateContractCode(addr, codeHash, code)
}
// Witness returns a set containing all trie nodes that have been accessed.View on GitHub (pinned to 6bb0588ad8)
Solutions
- TransitionTrie.UpdateStem is not implemented. Apply stem updates to the underlying Verkle (overlay) trie directly instead of through the TransitionTrie wrapper.
Example fix
// Update the overlay verkle trie stem-by-stem:
overlay := tt.Overlay()
if err := overlay.UpdateStem(stem, values); err != nil { return err } When it happens
Trigger: Calling UpdateStem on a TransitionTrie; the method is a Verkle-specific stub on the transition wrapper.
Common situations: Experimental Verkle transition tooling touching stems via the transition abstraction.
AI-assisted analysis of ethereum/go-ethereum@6bb0588ad8 (2026-08-15).
Data as JSON: /api/errors/1942f2fbce5f23c8.
Report an issue: GitHub.