Evolution SDK
AddressesAddress Types

Reward Addresses

Stake-only addresses for withdrawing staking rewards

Reward Addresses

Reward addresses (also called stake addresses) contain only a staking credential. They are used for staking operations and cannot hold regular UTXOs.

Structure

Reward Address = Staking Credential Only

Staking Credential: Controls delegation and reward withdrawal
No Payment: Cannot receive or spend regular UTXOs

Construction

Create reward addresses by instantiating the RewardAccount class:

import {  } from "@evolution-sdk/evolution";

const  = new ..({
  : 1, // mainnet
  : new ..({
    : new (28)
  })
});

// Convert to Bech32 string
const  = ..();
.(); // "stake1..."

Parsing Addresses

Parse a Bech32 stake address string into a RewardAccount instance:

import {  } from "@evolution-sdk/evolution";

const  = "stake1uyehkck0lajq8gr28t9uxnuvgcqrc6070x3k9r8048z8y5gh6ffgw";

const  = ..();

.("Network ID:", .);
.("Stake credential:", .);

Script-Based Addresses

Reward addresses can use script hashes for the staking credential:

import {  } from "@evolution-sdk/evolution";

// Reward address with script credential
const  = new ..({
  : 1, // mainnet
  : new ..({
    : new (28) // 28-byte stake script hash
  })
});

const  = ..();
.("Script-based reward address:", );

Relationship with Base Addresses

Reward addresses are Bech32-encoded with the stake/stake_test prefix. They share the same stake credential as their corresponding base addresses:

Base Address:    addr1qx... (payment + stake)
                           ↓ (same stake key)
Reward Address:  stake1uy... (stake only)

Format Details

Bech32 Prefix: stake (mainnet) or stake_test (testnet)
Length: 29 bytes raw / ~59 characters Bech32
Header Bits: 1110xxxx (reward address type)

Address Components

Reward addresses enable separation between payment and staking operations:

CapabilityPayment KeyStake Key
Spend UTXOs• Yes✗ No
Receive funds• Yes✗ No
Delegate stake✗ No• Yes
Withdraw rewards✗ No• Yes
Vote (governance)✗ No• Yes