---
# System prepended metadata

title: Unlock

---

# Unlock

**def create_or_merge_managers(self, urls):**
- We shouldn't be setting the lock address on the manager's Wallet node.

**key creation**

*raw data for keys*

                    for k in l["keys"]:
                        keys_tmp = {
                            "id": k["id"],
                            "address": address,
                            "expiration": k["expiration"],
                            "tokenURI": k["tokenURI"],
                            "createdAt": k["createdAt"],
                            "network": network,
                        }

we need to be setting `address` from here as `tokenAddress` and `id` as `tokenId`


**def create_or_merge_managers(self, urls):**

Managers are not `Manager` nodes in the graph, they are `Wallet` nodes. 


**def create_or_merge_holders(self, urls):**

Holders are not holder nodes in the graph, they are `Wallet` nodes. 

- they should not have data from the nft on their nodes, i.e. keyId, etc. They should just have the wallet address.


**def link_or_merge_managers_to_locks(self, urls):**
- We should be creating these edges based on the data saved in lockManagers, not data set on the nodes in the graph



**def link_or_merge_locks_to_keys(self, urls):**
This can be a query that matches on `tokenAddress` which should be the same on locks / keys


** def link_or_merge_holders_to_locks(self, urls):**
- holders are wallets
- data to create edges should be taken from `lockManagers` not from nodes in graph


**def link_or_merge_holders_to_keys(self, urls):**
- Ibid