# public_key Public key (BIP44/49/84) management operations for HD wallets ## Get list of public keys - [GET /public_keys](https://docs.vilna.io/apis/spec/public_key/listpublickeys.md): Returns a list of all registered public keys ## Add new public key - [POST /public_keys](https://docs.vilna.io/apis/spec/public_key/createpublickey.md): Add a new public key for generating HD wallet addresses. The key must include its derivation path following BIP44/49/84 standards to identify the address type and blockchain network. Currently, only Bitcoin-based extended public keys (xpub, ypub, zpub) are supported. ## Delete a public key - [DELETE /public_keys/{public_key_id}](https://docs.vilna.io/apis/spec/public_key/deletepublickey.md): Delete a public key by its unique identifier ## Get a public key by ID - [GET /public_keys/{public_key_id}](https://docs.vilna.io/apis/spec/public_key/getpublickey.md): Returns detailed information about a specific public key ## Update public key label - [PATCH /public_keys/{public_key_id}](https://docs.vilna.io/apis/spec/public_key/patchpublickey.md): Update the label of an existing public key ## Get addresses derived from public key - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/spec/public_key/listpublickeyaddresses.md): Returns a list of all addresses derived from this public key. These are HD addresses generated using the public key's derivation path and various indexes. The addresses are sorted by index by default. ## Generate addresses from public key - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/spec/public_key/generatepublickeyaddresses.md): Generates multiple HD addresses from the public key using either specific indexes or a range. The address format is automatically determined based on the public key's derivation path. You can specify either: - A list of specific indexes to generate addresses for - A range (from/to) to generate consecutive addresses If neither is specified, generates a single address at the next available index. ## Generate next address from public key - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/spec/public_key/generatenextpublickeyaddress.md): Generates the next HD address from the public key by automatically determining the next available index. The system finds the highest existing index and generates the next sequential address. This is ideal for payment processing systems that need unique addresses for each transaction without manual index tracking. ## Get addresses derived from public key - [GET /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/spec/address/listpublickeyaddresses.md): Returns a list of all addresses derived from this public key. These are HD addresses generated using the public key's derivation path and various indexes. The addresses are sorted by index by default. ## Generate addresses from public key - [POST /public_keys/{public_key_id}/addresses](https://docs.vilna.io/apis/spec/address/generatepublickeyaddresses.md): Generates multiple HD addresses from the public key using either specific indexes or a range. The address format is automatically determined based on the public key's derivation path. You can specify either: - A list of specific indexes to generate addresses for - A range (from/to) to generate consecutive addresses If neither is specified, generates a single address at the next available index. ## Generate next address from public key - [POST /public_keys/{public_key_id}/addresses/next](https://docs.vilna.io/apis/spec/address/generatenextpublickeyaddress.md): Generates the next HD address from the public key by automatically determining the next available index. The system finds the highest existing index and generates the next sequential address. This is ideal for payment processing systems that need unique addresses for each transaction without manual index tracking.