Stellar PHP SDK API Documentation

StellarAmount
in package

Represents an amount in the Stellar network with proper precision handling

Stellar amounts are represented internally as 64-bit signed integers in stroops, where 1 XLM = 10,000,000 stroops. This class handles conversion between decimal amounts and stroops while ensuring proper precision and validation.

Maximum supported amount: 922337203685.4775807 XLM (9223372036854775807 stroops)

Example usage:

// Create from decimal string
$amount = StellarAmount::fromString("100.50");

// Create from float
$amount = StellarAmount::fromFloat(100.5);

// Get decimal representation
$decimal = $amount->getDecimalValueAsString(); // "100.5000000"

// Get stroops value
$stroops = $amount->getStroopsAsString(); // "1005000000"
Tags
see
https://developers.stellar.org

Stellar developer docs Documentation on Lumens (XLM)

Table of Contents

Properties

$maxSignedStroops64  : BigInteger
$stroops  : BigInteger
$stroopScaleBignum  : BigInteger

Methods

__construct()  : mixed
StellarAmount constructor
fromFloat()  : StellarAmount
Creates a StellarAmount from a floating point number
fromString()  : StellarAmount
Creates a StellarAmount from a decimal string
fromXdr()  : StellarAmount
Reads a StellarAmount from a SIGNED 64-bit integer
getDecimalValueAsString()  : string
Returns the decimal value as a string with 7 decimal places
getStroops()  : BigInteger
Returns the raw value in stroops
getStroopsAsString()  : string
Returns the raw value in stroops as a string
maximum()  : StellarAmount
Returns the maximum supported amount

Properties

$maxSignedStroops64

protected BigInteger $maxSignedStroops64

Maximum value that fits in a signed 64-bit integer (9223372036854775807)

$stroops

protected BigInteger $stroops

The amount value in stroops

$stroopScaleBignum

protected BigInteger $stroopScaleBignum

Scale factor for stroop conversion (10,000,000)

Methods

__construct()

StellarAmount constructor

public __construct(BigInteger $stroops) : mixed
Parameters
$stroops : BigInteger

The amount in stroops (1 XLM = 10,000,000 stroops)

Tags
throws
InvalidArgumentException

If amount exceeds maximum or is negative

fromFloat()

Creates a StellarAmount from a floating point number

public static fromFloat(float $amount) : StellarAmount
Parameters
$amount : float

The amount as a decimal number (e.g., 100.5 for 100.5 XLM)

Tags
static
throws
InvalidArgumentException

If amount exceeds maximum or is negative

Return values
StellarAmount

The amount object

fromString()

Creates a StellarAmount from a decimal string

public static fromString(string $decimalAmount) : StellarAmount

Supports up to 7 decimal places. Commas and spaces are automatically removed.

Parameters
$decimalAmount : string

The amount as a string (e.g., "100.5" or "1,000.25")

Tags
static
throws
InvalidArgumentException

If amount exceeds maximum or is negative

Return values
StellarAmount

The amount object

fromXdr()

Reads a StellarAmount from a SIGNED 64-bit integer

public static fromXdr(XdrBuffer $xdr) : StellarAmount
Parameters
$xdr : XdrBuffer

The XDR buffer to read from

Tags
static
throws
InvalidArgumentException

If amount exceeds maximum or is negative

Return values
StellarAmount

The decoded amount

getDecimalValueAsString()

Returns the decimal value as a string with 7 decimal places

public getDecimalValueAsString() : string
Return values
string

The amount formatted as a decimal string (e.g., "100.5000000")

getStroops()

Returns the raw value in stroops

public getStroops() : BigInteger
Return values
BigInteger

The amount in stroops as a BigInteger object

getStroopsAsString()

Returns the raw value in stroops as a string

public getStroopsAsString() : string
Return values
string

The amount in stroops as a numeric string


        
On this page

Search results