System and service status operations
Vilna API (1.0.0)
Welcome to the Vilna API Reference. This is the complete OpenAPI specification for all API endpoints.
Quick Links
- API Overview - Introduction and concepts
- Security Guide - Authentication and webhook verification
- CAIP Standards - Asset identification standards
- Quick Start Guide - Step-by-step integration tutorial
API Endpoints
Asset Management
- Assets - Discover and manage digital assets
Address Operations
- Addresses - Manage blockchain addresses
- Extended Public Keys - HD wallet management
Monitoring and Notifications
- Transactions - Transaction monitoring
System
- Blockchains - Information on supported blockchains
- System Status - Health checks and version info
Need Help?
Visit our documentation portal for detailed guides and examples.
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys
- Production environmenthttps://demo.vilna.app/v1/public_keys
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.vilna.io/_mock/apis/spec/public_keys?limit=20&page=1&search=wallet&sort_by=gid' \
-H 'X-Api-Key: YOUR_API_KEY_HERE'Successfully retrieved list of public keys with pagination information
List of public keys
Unique identifier in UUID format
Extended public key encoded in Base58Check format, compliant with BIP32 and SLIP-0132 specifications.
An extended public key allows deriving a hierarchy of child public keys and addresses without exposing the corresponding private keys.
Supported prefixes and address derivation types:
Mainnet
- xpub — Legacy P2PKH (BIP44), addresses typically starting with
1 - ypub — SegWit P2SH-P2WPKH (BIP49), addresses typically starting with
3 - zpub — Native SegWit P2WPKH (BIP84), addresses typically starting with
bc1
Testnet
- tpub — Legacy P2PKH (BIP44)
- upub — SegWit P2SH-P2WPKH (BIP49)
- vpub — Native SegWit P2WPKH (BIP84)
The prefix defines both the address derivation scheme and the target network (mainnet or testnet). The actual address format depends on the selected derivation path and network parameters.
User-friendly label for the public key
HD wallet derivation path that identifies the address type, blockchain network, and account. Follows BIP44/49/84 standards with format: m / purpose' / coin_type' / account' / change
The purpose field indicates the address type:
- 44' for P2PKH addresses (Legacy)
- 49' for P2SH-P2WPKH addresses (SegWit)
- 84' for P2WPKH addresses (Native SegWit)
Common examples:
- m/44'/0'/0'/0 — Bitcoin Legacy external addresses
- m/44'/0'/0'/1 — Bitcoin Legacy change addresses
- m/49'/0'/0'/0 — Bitcoin SegWit external addresses
- m/84'/0'/0'/0 — Bitcoin Native SegWit external addresses
- m/44'/60'/0'/0 — Ethereum or Binance Smart Chain (BEP20) addresses
- m/44'/137'/0'/0 — Polygon addresses
- m/44'/714'/0'/0 — Binance Chain (BEP2) addresses
The coin_type value follows SLIP-0044 registered coin types (e.g., 0 for Bitcoin, 60 for Ethereum, 137 for Polygon, 714 for Binance Chain).
Timestamp when the resource was created
{ "items": [ { … }, { … }, { … }, { … }, { … } ], "meta": { "limit": 20, "page": 1, "total": 5, "total_pages": 1 } }
Request body for adding a new extended public key (HD wallet)
HD wallet derivation path that identifies the address type, blockchain network, and account. Follows BIP44/49/84 standards with format: m / purpose' / coin_type' / account' / change
The purpose field indicates the address type:
- 44' for P2PKH addresses (Legacy)
- 49' for P2SH-P2WPKH addresses (SegWit)
- 84' for P2WPKH addresses (Native SegWit)
Common examples:
- m/44'/0'/0'/0 — Bitcoin Legacy external addresses
- m/44'/0'/0'/1 — Bitcoin Legacy change addresses
- m/49'/0'/0'/0 — Bitcoin SegWit external addresses
- m/84'/0'/0'/0 — Bitcoin Native SegWit external addresses
- m/44'/60'/0'/0 — Ethereum or Binance Smart Chain (BEP20) addresses
- m/44'/137'/0'/0 — Polygon addresses
- m/44'/714'/0'/0 — Binance Chain (BEP2) addresses
The coin_type value follows SLIP-0044 registered coin types (e.g., 0 for Bitcoin, 60 for Ethereum, 137 for Polygon, 714 for Binance Chain).
User-friendly label for the public key
Extended public key encoded in Base58Check format, compliant with BIP32 and SLIP-0132 specifications.
An extended public key allows deriving a hierarchy of child public keys and addresses without exposing the corresponding private keys.
Supported prefixes and address derivation types:
Mainnet
- xpub — Legacy P2PKH (BIP44), addresses typically starting with
1 - ypub — SegWit P2SH-P2WPKH (BIP49), addresses typically starting with
3 - zpub — Native SegWit P2WPKH (BIP84), addresses typically starting with
bc1
Testnet
- tpub — Legacy P2PKH (BIP44)
- upub — SegWit P2SH-P2WPKH (BIP49)
- vpub — Native SegWit P2WPKH (BIP84)
The prefix defines both the address derivation scheme and the target network (mainnet or testnet). The actual address format depends on the selected derivation path and network parameters.
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys
- Production environmenthttps://demo.vilna.app/v1/public_keys
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.vilna.io/_mock/apis/spec/public_keys \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY_HERE' \
-d '{
"derivation_path": "m/44'\''/0'\''/0'\''/0",
"label": "My Legacy Wallet",
"value": "xpub6F7C1ZtQ411zykk6KTEoQMqfNdxiSA4uxAwAoqFanijnAavqQvVmh5zZCH6Swhdbzt2HuMRLx4chEVRZu9ic4Cnkkq5AsQcmjeMASk6FLqf"
}'Public key successfully created
Unique identifier in UUID format
Extended public key encoded in Base58Check format, compliant with BIP32 and SLIP-0132 specifications.
An extended public key allows deriving a hierarchy of child public keys and addresses without exposing the corresponding private keys.
Supported prefixes and address derivation types:
Mainnet
- xpub — Legacy P2PKH (BIP44), addresses typically starting with
1 - ypub — SegWit P2SH-P2WPKH (BIP49), addresses typically starting with
3 - zpub — Native SegWit P2WPKH (BIP84), addresses typically starting with
bc1
Testnet
- tpub — Legacy P2PKH (BIP44)
- upub — SegWit P2SH-P2WPKH (BIP49)
- vpub — Native SegWit P2WPKH (BIP84)
The prefix defines both the address derivation scheme and the target network (mainnet or testnet). The actual address format depends on the selected derivation path and network parameters.
User-friendly label for the public key
HD wallet derivation path that identifies the address type, blockchain network, and account. Follows BIP44/49/84 standards with format: m / purpose' / coin_type' / account' / change
The purpose field indicates the address type:
- 44' for P2PKH addresses (Legacy)
- 49' for P2SH-P2WPKH addresses (SegWit)
- 84' for P2WPKH addresses (Native SegWit)
Common examples:
- m/44'/0'/0'/0 — Bitcoin Legacy external addresses
- m/44'/0'/0'/1 — Bitcoin Legacy change addresses
- m/49'/0'/0'/0 — Bitcoin SegWit external addresses
- m/84'/0'/0'/0 — Bitcoin Native SegWit external addresses
- m/44'/60'/0'/0 — Ethereum or Binance Smart Chain (BEP20) addresses
- m/44'/137'/0'/0 — Polygon addresses
- m/44'/714'/0'/0 — Binance Chain (BEP2) addresses
The coin_type value follows SLIP-0044 registered coin types (e.g., 0 for Bitcoin, 60 for Ethereum, 137 for Polygon, 714 for Binance Chain).
Timestamp when the resource was created
{ "id": "550e8400-e29b-41d4-a716-446655440000", "value": "xpub6EFxzN6ZgMCZ1PxeRigmAhm2UBGzXtZNgznCEaWuEt9efBpJwAXFA4ZckBdR1pdMQ1pBgsey7ebjToZ5gYXveftB3zwoQ8NvEkimvyaz34i", "label": "Main Bitcoin Wallet", "derivation_path": "m/44'/0'/0'/0", "created_at": "2025-01-15T12:00:00Z", "updated_at": "2025-01-15T12:00:00Z" }
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X DELETE \
https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000 \
-H 'X-Api-Key: YOUR_API_KEY_HERE'- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000 \
-H 'X-Api-Key: YOUR_API_KEY_HERE'Successfully retrieved public key information
Unique identifier in UUID format
Extended public key encoded in Base58Check format, compliant with BIP32 and SLIP-0132 specifications.
An extended public key allows deriving a hierarchy of child public keys and addresses without exposing the corresponding private keys.
Supported prefixes and address derivation types:
Mainnet
- xpub — Legacy P2PKH (BIP44), addresses typically starting with
1 - ypub — SegWit P2SH-P2WPKH (BIP49), addresses typically starting with
3 - zpub — Native SegWit P2WPKH (BIP84), addresses typically starting with
bc1
Testnet
- tpub — Legacy P2PKH (BIP44)
- upub — SegWit P2SH-P2WPKH (BIP49)
- vpub — Native SegWit P2WPKH (BIP84)
The prefix defines both the address derivation scheme and the target network (mainnet or testnet). The actual address format depends on the selected derivation path and network parameters.
User-friendly label for the public key
HD wallet derivation path that identifies the address type, blockchain network, and account. Follows BIP44/49/84 standards with format: m / purpose' / coin_type' / account' / change
The purpose field indicates the address type:
- 44' for P2PKH addresses (Legacy)
- 49' for P2SH-P2WPKH addresses (SegWit)
- 84' for P2WPKH addresses (Native SegWit)
Common examples:
- m/44'/0'/0'/0 — Bitcoin Legacy external addresses
- m/44'/0'/0'/1 — Bitcoin Legacy change addresses
- m/49'/0'/0'/0 — Bitcoin SegWit external addresses
- m/84'/0'/0'/0 — Bitcoin Native SegWit external addresses
- m/44'/60'/0'/0 — Ethereum or Binance Smart Chain (BEP20) addresses
- m/44'/137'/0'/0 — Polygon addresses
- m/44'/714'/0'/0 — Binance Chain (BEP2) addresses
The coin_type value follows SLIP-0044 registered coin types (e.g., 0 for Bitcoin, 60 for Ethereum, 137 for Polygon, 714 for Binance Chain).
Timestamp when the resource was created
{ "id": "550e8400-e29b-41d4-a716-446655440000", "value": "xpub6EFxzN6ZgMCZ1PxeRigmAhm2UBGzXtZNgznCEaWuEt9efBpJwAXFA4ZckBdR1pdMQ1pBgsey7ebjToZ5gYXveftB3zwoQ8NvEkimvyaz34i", "label": "Main Bitcoin Wallet", "derivation_path": "m/44'/0'/0'/0", "created_at": "2025-01-15T12:00:00Z", "updated_at": "2025-01-15T12:00:00Z" }
Request body for updating an existing public key. The label and archived status can be modified.
User-friendly label for the public key
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X PATCH \
https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000 \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY_HERE' \
-d '{
"label": "Main Wallet",
"is_archived": false
}'Public key successfully updated
Unique identifier in UUID format
Extended public key encoded in Base58Check format, compliant with BIP32 and SLIP-0132 specifications.
An extended public key allows deriving a hierarchy of child public keys and addresses without exposing the corresponding private keys.
Supported prefixes and address derivation types:
Mainnet
- xpub — Legacy P2PKH (BIP44), addresses typically starting with
1 - ypub — SegWit P2SH-P2WPKH (BIP49), addresses typically starting with
3 - zpub — Native SegWit P2WPKH (BIP84), addresses typically starting with
bc1
Testnet
- tpub — Legacy P2PKH (BIP44)
- upub — SegWit P2SH-P2WPKH (BIP49)
- vpub — Native SegWit P2WPKH (BIP84)
The prefix defines both the address derivation scheme and the target network (mainnet or testnet). The actual address format depends on the selected derivation path and network parameters.
User-friendly label for the public key
HD wallet derivation path that identifies the address type, blockchain network, and account. Follows BIP44/49/84 standards with format: m / purpose' / coin_type' / account' / change
The purpose field indicates the address type:
- 44' for P2PKH addresses (Legacy)
- 49' for P2SH-P2WPKH addresses (SegWit)
- 84' for P2WPKH addresses (Native SegWit)
Common examples:
- m/44'/0'/0'/0 — Bitcoin Legacy external addresses
- m/44'/0'/0'/1 — Bitcoin Legacy change addresses
- m/49'/0'/0'/0 — Bitcoin SegWit external addresses
- m/84'/0'/0'/0 — Bitcoin Native SegWit external addresses
- m/44'/60'/0'/0 — Ethereum or Binance Smart Chain (BEP20) addresses
- m/44'/137'/0'/0 — Polygon addresses
- m/44'/714'/0'/0 — Binance Chain (BEP2) addresses
The coin_type value follows SLIP-0044 registered coin types (e.g., 0 for Bitcoin, 60 for Ethereum, 137 for Polygon, 714 for Binance Chain).
Timestamp when the resource was created
{ "id": "550e8400-e29b-41d4-a716-446655440000", "value": "xpub6EFxzN6ZgMCZ1PxeRigmAhm2UBGzXtZNgznCEaWuEt9efBpJwAXFA4ZckBdR1pdMQ1pBgsey7ebjToZ5gYXveftB3zwoQ8NvEkimvyaz34i", "label": "Updated Bitcoin Wallet Label", "derivation_path": "m/44'/0'/0'/0", "created_at": "2025-01-15T12:00:00Z", "updated_at": "2025-01-15T14:30:00Z" }
Field to sort results by. Use "-" prefix for descending order
Comma-separated list of address formats to include.
Performs a partial, case-insensitive match on address or label fields.
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}/addresses
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}/addresses
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000/addresses?limit=20&page=1&sort_by=-created_at&formats=p2wpkh%2Cevm&search=bc1q&is_archived=false' \
-H 'X-Api-Key: YOUR_API_KEY_HERE'Successfully retrieved list of HD addresses derived from the public key
List of HD addresses derived from the public key
A blockchain address in its native format. This is a generic schema for any blockchain address, including addresses, smart contract addresses, and token contract addresses.
The actual format depends on the blockchain network:
EVM chains (Ethereum, BSC, Polygon, etc.): 0x followed by 40 hexadecimal characters
- Example:
0x8521E8b15eCEF4D4269Fded3E6694225E096959E
- Example:
Bitcoin: Various formats depending on address type
- P2PKH (Legacy): Starts with 1, Example:
1GxHzNEymq1MLhxpdWAMJLN1UusYJ2Sy45 - P2SH (Wrapped SegWit): Starts with 3, Example:
3Do92Dmff87UuY9Yiu2iFG2Kj9bpRaeJSF - P2WPKH (Native SegWit): Starts with bc1, Example:
bc1q8faxe8g4u2v67qfwf9d8xhyl5tkkkphvet6r08
- P2PKH (Legacy): Starts with 1, Example:
Solana: Base58 encoded, 32-44 characters
- Example:
5EYCAe5ijiHbZBU14TyKHADUrkaAfc4ZyTXKRVKp49F8
- Example:
Tron: Base58 encoded addresses starting with T
- Example:
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
- Example:
Cosmos ecosystem: Bech32 format with chain-specific prefix
- Example:
cosmos1vx8knpllrj7n963p9ttd80w47kpacrhuts497x
- Example:
This schema is intentionally generic to support addresses from any blockchain. The specific validation rules depend on the blockchain network and address type.
Blockchain address format that determines how the address should be interpreted and validated:
EVM-compatible blockchains:
evm: Ethereum Virtual Machine compatible address (Ethereum, BSC, Polygon, Arbitrum, etc.)- Format: 0x followed by 40 hexadecimal characters
- Example:
0x742d35Cc6634C0532925a3b844Bc454e4438f44e
Solana:
solana: Solana address- Format: Base58 encoded, 32-44 characters
- Example:
5EYCAe5ijiHbZBU14TyKHADUrkaAfc4ZyTXKRVKp49F8
Tron:
tron: Tron address- Format: Base58 encoded, starts with T
- Example:
TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH
Bitcoin mainnet formats:
p2pkh: Pay-to-Public-Key-Hash (Legacy)- Format: Starts with 1
- Example:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
p2sh: Pay-to-Script-Hash- Format: Starts with 3
- Example:
3Do92Dmff87UuY9Yiu2iFG2Kj9bpRaeJSF
p2wpkh: Pay-to-Witness-Public-Key-Hash (Native SegWit)- Format: Starts with bc1q
- Example:
bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
p2wsh: Pay-to-Witness-Script-Hash (Native SegWit)- Format: Starts with bc1q
- Example:
bc1qrp33g0q4c70atj6hy6wuahcwxryadxw3kvjahxxxgf7rflwdlcjqqtf3a0
Bitcoin testnet formats:
p2pkh-testnet: Pay-to-Public-Key-Hash (Legacy testnet)- Format: Starts with m or n
- Example:
mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn
p2sh-testnet: Pay-to-Script-Hash (testnet)- Format: Starts with 2
- Example:
2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc
p2wpkh-testnet: Pay-to-Witness-Public-Key-Hash (Native SegWit testnet)- Format: Starts with tb1q
- Example:
tb1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
p2wsh-testnet: Pay-to-Witness-Script-Hash (Native SegWit testnet)- Format: Starts with tb1q
- Example:
tb1qrp33g0q4c70atj6hy6wuahcwxryadxw3kvjahxxxgf7rflwdlcjqqtf3a0
User-friendly label for the address
Kind of address in the system:
hd: HD (Hierarchical Deterministic) address derived from an extended public keyexternal: External address imported directly without derivation
Optional metadata as key-value pairs for storing additional information about the address. Total size of all keys and values combined must not exceed 1000 characters.
Common use cases:
- Tracking user associations (user_id, account_id)
- Recording source information (exchange, wallet, service)
- Business logic flags (archived, locked, category)
- Custom application data
Timestamp when the resource was created
Timestamp when the resource was last updated
Unique identifier in UUID format
{ "items": [ { … }, { … }, { … } ], "meta": { "limit": 20, "page": 1, "total": 3, "total_pages": 1 } }
Request
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.
Request to generate HD addresses from the public key. Specify a start index, count, and chain namespace to generate addresses for.
Range definition for HD address generation
Chain family that identifies blockchain ecosystems united by common protocol or account model for address generation.
Available families for generation:
evm: Ethereum Virtual Machine-based blockchainsbitcoin: Bitcoin and Bitcoin-compatible networkstron: Tron blockchain ecosystem
Note: Solana is not supported for HD address generation from public keys.
The chain family is used to determine which blockchain ecosystem the address belongs to and how it should be generated or validated.
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}/addresses
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}/addresses
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000/addresses \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY_HERE' \
-d '{
"range": {
"startIndex": 100,
"count": 50
},
"chainFamily": "evm"
}'{ "items": [ "bc1q39vtx8qt39ztrx0j9rm6f5lz56qze0c68qafhu", "bc1qnc8aj03r2letsdzfmhmr99v5sw6mys7jgz7huh", "bc1qjq73wzhhzt40250678hwpzgrrucutkx77ze37d" ], "count": 3 }
Request
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.
Request to generate the next HD address from the public key. The system will automatically determine the next available index.
Chain family that identifies blockchain ecosystems united by common protocol or account model for address generation.
Available families for generation:
evm: Ethereum Virtual Machine-based blockchainsbitcoin: Bitcoin and Bitcoin-compatible networkstron: Tron blockchain ecosystem
Note: Solana is not supported for HD address generation from public keys.
The chain family is used to determine which blockchain ecosystem the address belongs to and how it should be generated or validated.
User-friendly label for the address
Optional metadata as key-value pairs for storing additional information about the address. Total size of all keys and values combined must not exceed 1000 characters.
Common use cases:
- Tracking user associations (user_id, account_id)
- Recording source information (exchange, wallet, service)
- Business logic flags (archived, locked, category)
- Custom application data
- Mock serverhttps://docs.vilna.io/_mock/apis/spec/public_keys/{public_key_id}/addresses/next
- Production environmenthttps://demo.vilna.app/v1/public_keys/{public_key_id}/addresses/next
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://docs.vilna.io/_mock/apis/spec/public_keys/550e8400-e29b-41d4-a716-446655440000/addresses/next \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: YOUR_API_KEY_HERE' \
-d '{
"chainFamily": "evm",
"meta": {
"user_id": "100",
"type": "deposit"
}
}'HD address successfully created
A blockchain address in its native format. This is a generic schema for any blockchain address, including addresses, smart contract addresses, and token contract addresses.
The actual format depends on the blockchain network:
EVM chains (Ethereum, BSC, Polygon, etc.): 0x followed by 40 hexadecimal characters
- Example:
0x8521E8b15eCEF4D4269Fded3E6694225E096959E
- Example:
Bitcoin: Various formats depending on address type
- P2PKH (Legacy): Starts with 1, Example:
1GxHzNEymq1MLhxpdWAMJLN1UusYJ2Sy45 - P2SH (Wrapped SegWit): Starts with 3, Example:
3Do92Dmff87UuY9Yiu2iFG2Kj9bpRaeJSF - P2WPKH (Native SegWit): Starts with bc1, Example:
bc1q8faxe8g4u2v67qfwf9d8xhyl5tkkkphvet6r08
- P2PKH (Legacy): Starts with 1, Example:
Solana: Base58 encoded, 32-44 characters
- Example:
5EYCAe5ijiHbZBU14TyKHADUrkaAfc4ZyTXKRVKp49F8
- Example:
Tron: Base58 encoded addresses starting with T
- Example:
TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
- Example:
Cosmos ecosystem: Bech32 format with chain-specific prefix
- Example:
cosmos1vx8knpllrj7n963p9ttd80w47kpacrhuts497x
- Example:
This schema is intentionally generic to support addresses from any blockchain. The specific validation rules depend on the blockchain network and address type.
Blockchain address format that determines how the address should be interpreted and validated:
EVM-compatible blockchains:
evm: Ethereum Virtual Machine compatible address (Ethereum, BSC, Polygon, Arbitrum, etc.)- Format: 0x followed by 40 hexadecimal characters
- Example:
0x742d35Cc6634C0532925a3b844Bc454e4438f44e
Solana:
solana: Solana address- Format: Base58 encoded, 32-44 characters
- Example:
5EYCAe5ijiHbZBU14TyKHADUrkaAfc4ZyTXKRVKp49F8
Tron:
tron: Tron address- Format: Base58 encoded, starts with T
- Example:
TLyqzVGLV1srkB7dToTAEqgDSfPtXRJZYH
Bitcoin mainnet formats:
p2pkh: Pay-to-Public-Key-Hash (Legacy)- Format: Starts with 1
- Example:
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
p2sh: Pay-to-Script-Hash- Format: Starts with 3
- Example:
3Do92Dmff87UuY9Yiu2iFG2Kj9bpRaeJSF
p2wpkh: Pay-to-Witness-Public-Key-Hash (Native SegWit)- Format: Starts with bc1q
- Example:
bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
p2wsh: Pay-to-Witness-Script-Hash (Native SegWit)- Format: Starts with bc1q
- Example:
bc1qrp33g0q4c70atj6hy6wuahcwxryadxw3kvjahxxxgf7rflwdlcjqqtf3a0
Bitcoin testnet formats:
p2pkh-testnet: Pay-to-Public-Key-Hash (Legacy testnet)- Format: Starts with m or n
- Example:
mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn
p2sh-testnet: Pay-to-Script-Hash (testnet)- Format: Starts with 2
- Example:
2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc
p2wpkh-testnet: Pay-to-Witness-Public-Key-Hash (Native SegWit testnet)- Format: Starts with tb1q
- Example:
tb1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
p2wsh-testnet: Pay-to-Witness-Script-Hash (Native SegWit testnet)- Format: Starts with tb1q
- Example:
tb1qrp33g0q4c70atj6hy6wuahcwxryadxw3kvjahxxxgf7rflwdlcjqqtf3a0
User-friendly label for the address
Kind of address in the system:
hd: HD (Hierarchical Deterministic) address derived from an extended public keyexternal: External address imported directly without derivation
Optional metadata as key-value pairs for storing additional information about the address. Total size of all keys and values combined must not exceed 1000 characters.
Common use cases:
- Tracking user associations (user_id, account_id)
- Recording source information (exchange, wallet, service)
- Business logic flags (archived, locked, category)
- Custom application data
Timestamp when the resource was created
Timestamp when the resource was last updated
Unique identifier in UUID format
{ "value": "bc1q8faxe8g4u2v67qfwf9d8xhyl5tkkkphvet6r08", "format": "p2wpkh", "kind": "hd", "label": "Customer Payment #12345", "meta": { "customer_id": "cust_12345", "order_id": "ord_67890" }, "public_key_id": "7ca7b850-9dad-11d1-80b4-00c04fd430c8", "derivation_index": 47, "created_at": "2025-07-05T17:00:00Z", "updated_at": "2025-07-05T17:00:00Z" }