Signet provides Java APIs for accounts, balances, transaction preparation, signing, submission, blocks, and transaction history across six blockchain environments.
On this page:
Follow this order for a first integration:
- Install dependencies, configure native access, and read a Bitcoin block.
- Choose a network below and build its provider with matching node and indexer endpoints.
- Generate or import an account, then fund its address on that network.
- Open the network's Transactions page to prepare, inspect, sign, and submit a payment.
- Open Blocks and history to verify execution and the confirmation state your application requires.
Use the task-oriented examples index when you already know what you want to build. Examples are embedded in the relevant Markdown pages.
| Entry point | Use it for | Network access |
|---|---|---|
accounts().generator() / factory() |
Generate an account or wrap a key provider | Local for in-memory keys |
accounts().address() |
Derive and validate an address | Local |
accounts().balance() |
Read native or supported token balances | Yes |
transactions().factory() |
Prepare an intent using current chain state | Yes |
signer() |
Sign the prepared value with the account's key provider | Depends on the key provider |
transactions().broadcaster() |
Submit signed transaction bytes | Yes |
blocks().api() / transactions().api() |
Read chain state, execution, and history | Yes |
transactions().parser() |
Decode transaction data in the network's supported format | Local |
converter() |
Convert display amounts to atomic units and back | Token metadata may require RPC |
See transaction lifecycle, amounts, and fees for the shared rules and Blockbook integration for indexer ownership and pagination.
| Module | Transactions | Blocks and history | Contracts and programs |
|---|---|---|---|
| Bitcoin | Payments, fee budgets, multiple outputs | Blocks, history, UTXOs | Legacy, SegWit, Taproot key path |
| EVM | Native, ERC20, fanout | Finalized blocks, receipts, logs | ABI calls, deployment, permits |
| TRON | TRX, TRC20, fanout | Confirmed blocks and history | TRC20 and custom calls |
| Solana | SOL, SPL, sponsored transactions | Slots, status, account history | Instructions, v0, durable nonces |
| TON | TON, comments, Highload wallets | Masterchain, shards, execution | Calls, getters, Jettons |
| XRP | Payments, tags, atomic batches | Validated ledgers and results | Direct XRP Payment and Batch |
- Send a payment: open the network's transaction page, prepare an unsigned transaction, inspect its fee, sign, submit, and verify execution.
- Receive deposits: choose an address format, read blocks or indexed history, and persist transaction identity plus network confirmation state.
- Pay several recipients: Bitcoin uses multiple outputs, EVM and TRON use a deployed Fanout contract, Solana uses multiple instructions, XRP uses its supported Batch amendment.
- Use an external signer: implement the key provider and signing strategy.
- Build and publish artifacts: Publishing.
Examples target the source in this repository. Each API page includes an import
block. Put the shown methods inside your application's class; smaller statement
snippets belong inside a method. Inputs such as sender, destination, rpcUrl,
and tokenDomain are supplied by your application and explained by the section.
prepare... methods return an unsigned transaction. Only examples that explicitly
call broadcast(...) submit a transaction. Keep clients and accounts alive through
the entire operation, then close clients and destroy accounts you own.
Use decimal strings with BigDecimal, and pass atomic BigInteger amounts to
intents. Fee units, timestamp units, finality, and transaction result types are
specified on the network's pages. A submission receipt alone does not establish
successful execution.