
Bitcoin Augur
https://github.com/block/bitcoin-augur- Category
- Crypto
- Rank
- No. 973Tools index
Previous survey · No. 956 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- block
- GitHub
- 17 stars
- Latest release
- augur-0.3.0
- Date
About
Mempool-based Bitcoin fee estimation library from Block, helping wallets and services predict on-chain transaction fees.
What it does
Augur turns timestamped snapshots of pending Bitcoin transactions into fee-rate forecasts. It groups transactions into logarithmic fee buckets, measures short-term and long-term inflows, simulates blocks being mined, then reports rates for chosen confirmation windows and confidence levels.
Why it's ranked here
A strong specialist library with a clear statistical pipeline and useful controls. It handles custom targets, confidence levels, low-fee boundaries, and reporting caps. Its tests cover ordering guarantees, extreme buckets, empty inputs, and custom configurations. The main reservation is operational: Augur supplies estimation logic, not the data pipeline it requires.
What's good
The output answers a practical question precisely: what fee rate corresponds to a confirmation target and confidence level. Short-term and long-term traffic patterns receive different weights. Results are forced to remain nonincreasing across longer confirmation targets. High-fee transaction weight stays represented, while configurable reporting limits can return unavailable values instead of misleading extremes.
Tradeoffs
You must collect transactions from a Bitcoin node, build snapshots, retain history, and feed that history into the library. Empty or single-snapshot inputs do not produce usable estimates. The documentation recommends roughly 24 hours of history. Its fixed simulation ceiling and configurable minimum fee boundary also impose explicit modeling limits.
How to use it well
Use Augur inside a Kotlin or JVM wallet service that already owns Bitcoin node access and historical snapshot storage. Sample the mempool repeatedly within each block height, retain enough history for both traffic windows, and request rates matching your product’s confirmation choices. Use a separate integration layer for node collection, persistence, serving, and monitoring.
Technical notes+
lib/src/main/kotlin/xyz/block/augur/FeeEstimator.kt sorts snapshots, calculates 30-minute and 24-hour inflows, runs FeeEstimatesCalculator, and caps caller-supplied targets at 1008 blocks. lib/src/main/kotlin/xyz/block/augur/internal/BucketCreator.kt maps fee rates with round(ln(rate) * 100) into a fixed ceiling of bucket 1000. lib/src/main/kotlin/xyz/block/augur/internal/FeeEstimatesCalculator.kt uses Poisson block-count probabilities, simulates 4,000,000-weight-unit blocks, blends short and long estimates, enforces monotonicity, and applies maxFeeRate only when preparing output. lib/src/main/kotlin/xyz/block/augur/internal/MempoolSnapshotF64Array.kt drops buckets below the configured minimum and folds above-ceiling weight into the highest bucket. Tests under lib/src/test/kotlin/xyz/block/augur/ exercise estimator behavior, bucketing, inflow calculation, simulation, and snapshot conversion.
Observed
- License
- Apache License 2.0
- Primary language
- Kotlin
- Interface
- JVM library API
- Packaging
- Published for Maven and Gradle as xyz.block:augur
- Input surface
- Historical mempool snapshots containing block height, timestamp, and fee-bucket weights
- Output surface
- Fee rates indexed by confirmation target and confidence probability
- Test structure
- Repository includes Kotlin tests for public estimator behavior and internal simulation components
Read from README.md, lib/src/main/kotlin/xyz/block/augur/FeeEstimate.kt, lib/src/main/kotlin/xyz/block/augur/FeeEstimator.kt, lib/src/main/kotlin/xyz/block/augur/MempoolSnapshot.kt, lib/src/main/kotlin/xyz/block/augur/MempoolTransaction.kt, lib/src/main/kotlin/xyz/block/augur/internal/BucketCreator.kt, lib/src/main/kotlin/xyz/block/augur/internal/InflowCalculator.kt, lib/src/main/kotlin/xyz/block/augur/internal/FeeEstimatesCalculator.kt, lib/src/main/kotlin/xyz/block/augur/internal/MempoolSnapshotF64Array.kt, lib/src/test/kotlin/xyz/block/augur/test/TestUtils.kt, lib/src/test/kotlin/xyz/block/augur/FeeEstimatorTest.kt, lib/src/test/kotlin/xyz/block/augur/internal/BucketCreatorTest.kt, lib/src/test/kotlin/xyz/block/augur/internal/InflowCalculatorTest.kt, lib/src/test/kotlin/xyz/block/augur/internal/FeeEstimatesCalculatorTest.kt, lib/src/test/kotlin/xyz/block/augur/internal/MempoolSnapshotF64ArrayTest.kt.
What it can do
Estimate Bitcoin transaction fees
Mempool data and transaction parameters → Fee estimation for on-chain Bitcoin transactions
Analyze mempool congestion
Current mempool state → Congestion metrics and transaction priority levels
Predict confirmation times
Transaction fee rate and mempool conditions → Estimated time until transaction confirmation
Calculate optimal fee rates
Desired confirmation speed and current network conditions → Recommended satoshi per byte fee rate
Provide fee estimation API
API requests from wallets and services → JSON responses with fee recommendations
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.