Metal (chainkit-internal)
id: metal
In-process address generation + validation + fee math. Pure-Go, no network calls.
What this provider does inside chainkit
- Fee math
Estimate the fee for a transaction of a given size at a target priority.
- Address gen
Derive a new receive address from a key or descriptor.
- Address check
Validate an address string is well-formed for the active network.
- Assemble
Build an unsigned transaction from inputs, outputs, and metadata.
- Sign
Sign a transaction with a private key.
- Size
Predict the on-wire byte size of a transaction before broadcast.
Running it in production
- Auth
- none
- Chains
- btc/mainnetbtc/testnet3btc/testnet4
- Free tier
- n/a — runs locally
- Paid tier
- —
- Rate limit
- no rate limit
Wire Metal (chainkit-internal) via the chainkit builder
The builder accepts every provider you want in rotation. chainkit handles failover, retries, and scoring across them — pick capability coverage, not a single vendor.
import (
"github.com/exapsy/chainkit"
"github.com/exapsy/chainkit/bitcoin/providers"
bttypes "github.com/exapsy/chainkit/bitcoin/types"
)
p := providers.NewMetal(/* opts — see godoc */)
client, _ := chainkit.NewMixedProvidersBuilder().
WithProvider(p).
Build(ctx) Snippet illustrative; refer to the godoc for the exact constructor signature.
Live performance
Pulled from the same scoreboard as /scoreboard, narrowed to Metal (chainkit-internal). Polled every minute.