Generate blockchain addresses for Bitcoin and Ethereum networks. Addresses belong to wallets and are used to send and receive funds.
Methods
createAddress()
Generate a new address for a profile (V1 API). Requires wallet to exist first.
Signature:
createAddress(
request: CreateAddressRequest,
requestOptions?: RequestOptions
): Promise<CreateAddressResponse>
Parameters:
| Parameter | Type | Required | Description |
|---|
request.reference | string | Yes | Profile reference |
request.network | 'BTC' | 'tBTC' | 'ETH' | 'tETH' | Yes | Blockchain network |
request.clientShare | string | Yes | Client share for key derivation |
Example:
const address = await client.addresses.createAddress({
reference: 'user-123',
network: 'ETH',
clientShare: 'your-client-share'
});
console.log('Address:', address.data.address);
console.log('Address ID:', address.data.id);
createAddressV2()
Generate a new address (V2 API). Automatically creates wallet if it doesn’t exist. This is the recommended method.
Signature:
createAddressV2(
request: CreateAddressRequest,
requestOptions?: RequestOptions
): Promise<CreateAddressResponse>
Parameters:
Same as createAddress().
Example:
// V2 automatically creates wallet if needed
const address = await client.addresses.createAddressV2({
reference: 'user-123',
network: 'ETH',
clientShare: 'your-client-share'
});
console.log('Address:', address.data.address);
Use V2: The createAddressV2() method is recommended as it automatically creates a wallet if one doesn’t exist, simplifying your workflow.
getAddressForProfile()
Get address details for a profile by reference.
Signature:
getAddressForProfile(
request: GetAddressForProfileRequest,
requestOptions?: RequestOptions
): Promise<AddressResponse>
Parameters:
| Parameter | Type | Required | Description |
|---|
request.reference | string | Yes | Profile reference |
request.network | 'BTC' | 'tBTC' | 'ETH' | 'tETH' | Yes | Blockchain network |
Example:
const address = await client.addresses.getAddressForProfile({
reference: 'user-123',
network: 'ETH'
});
console.log('Address:', address.data.address);
getAddressForOrganization()
Get all addresses for an organization.
Signature:
getAddressForOrganization(
request: GetAddressForOrganizationRequest,
requestOptions?: RequestOptions
): Promise<AddressesResponse>
Parameters:
| Parameter | Type | Required | Description |
|---|
request.network | 'BTC' | 'tBTC' | 'ETH' | 'tETH' | Yes | Blockchain network |
request.skip | number | No | Number of records to skip |
request.take | number | No | Number of records to retrieve |
Example:
const addresses = await client.addresses.getAddressForOrganization({
network: 'ETH',
skip: 0,
take: 50
});
console.log('Organization addresses:', addresses.data);
Network Support
- BTC / tBTC: Bitcoin mainnet / testnet
- ETH / tETH: Ethereum mainnet / testnet
Complete Example
import { OumlaSdkApiClient, OumlaSdkApiEnvironment } from '@oumla/sdk';
const client = new OumlaSdkApiClient({
environment: OumlaSdkApiEnvironment.Sandbox,
apiKey: 'your-api-key'
});
async function manageAddresses() {
// Generate address (V2 - auto-creates wallet)
const address = await client.addresses.createAddressV2({
reference: 'user-123',
network: 'ETH',
clientShare: process.env.CLIENT_SHARE!
});
console.log('Generated address:', address.data.address);
// Get address for profile
const profileAddress = await client.addresses.getAddressForProfile({
reference: 'user-123',
network: 'ETH'
});
console.log('Profile address:', profileAddress.data.address);
// List all organization addresses
const orgAddresses = await client.addresses.getAddressForOrganization({
network: 'ETH',
skip: 0,
take: 100
});
console.log('Total addresses:', orgAddresses.data.length);
}