{"id":23110,"library":"ida-netnode","title":"IDA Netnode","description":"A library providing a humane API for storing and accessing persistent data in IDA Pro databases using netnodes. Version 3.0.0 is the latest. Release cadence is irregular.","status":"active","version":"3.0.0","language":"python","source_language":"en","source_url":"https://github.com/williballenthin/ida-netnode","tags":["ida","ida-pro","reverse-engineering","persistence"],"install":[{"cmd":"pip install ida-netnode","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"The correct module name is ida_netnode, not netnode.","wrong":"import netnode","symbol":"Netnode","correct":"from ida_netnode import Netnode"}],"quickstart":{"code":"from ida_netnode import Netnode\n\nnetnode = Netnode('my_data')\nnetnode['key'] = 'value'\nprint(netnode['key'])","lang":"python","description":"Create or open a netnode by name, then use dict-like access to store/retrieve persistent data."},"warnings":[{"fix":"Read data using v2, then write it back using v3 (or keep v2 if you need the old data).","message":"v3.0.0 is incompatible with data stored by v2.0.x. v3 reverts to v1 serialization format. If you have data from v2, migrate before upgrading.","severity":"breaking","affected_versions":"2.0.0, 2.0.1"},{"fix":"Use unique names or check existence with Netnode.exist() before creating.","message":"Netnode names must be unique within an IDB. Using an existing name reopens the same netnode.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade to v2+ and use Python 3.","message":"Python 2 is no longer supported since v2.0.0.","severity":"deprecated","affected_versions":"1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run `pip install ida-netnode` inside IDA's Python environment (e.g., using IDA's `pip`).","cause":"The package is not installed, or you are running IDA's bundled Python without the package.","error":"ImportError: No module named ida_netnode"},{"fix":"Use `from ida_netnode import Netnode`.","cause":"Using wrong import path (import netnode instead of from ida_netnode import Netnode).","error":"AttributeError: module 'netnode' has no attribute 'Netnode'"},{"fix":"Ensure the name is a string, e.g., `Netnode('my_netnode')`.","cause":"Passing a non-string as the netnode name.","error":"ValueError: Netnode name must be a string"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}