# Class BSV::Transaction::FeeModels::SatoshisPerKilobyte <a id="class-BSV-Transaction-FeeModels-SatoshisPerKilobyte"></a>

**Inherits:** `BSV::Transaction::FeeModel`

Fee model that charges a configurable number of satoshis per kilobyte.

Uses the transaction's estimated size (from templates for unsigned inputs,
actual size for signed inputs) to compute the fee.

**@example**
```ruby
model = BSV::Transaction::FeeModels::SatoshisPerKilobyte.new(value: 100)
fee = model.compute_fee(transaction) # => 25 (for a ~250 byte tx)
```

## Attributes
### `value` [R] <a id="attribute-i-value"></a> <a id="value-instance_method"></a>
- **@return** [Integer] satoshis per kilobyte rate

## Public Instance Methods
### `compute_fee(transaction)` <a id="method-i-compute_fee"></a> <a id="compute_fee-instance_method"></a>
Compute the fee for a transaction based on its estimated size.
- **@param** `transaction` [Transaction::Tx] the transaction to compute the fee for
- **@return** [Integer] the fee in satoshis

### `initialize(value: = 100)` <a id="method-i-initialize"></a> <a id="initialize-instance_method"></a>
- **@param** `value` [Integer] satoshis per kilobyte (default: 100)
- **@return** [SatoshisPerKilobyte] a new instance of SatoshisPerKilobyte
