Security News
pnpm 10.0.0 Blocks Lifecycle Scripts by Default
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
@0xbridge/bitcoin-vault-trial
Advanced tools
Bitcoin-psbt implementation TypeScript library supporting ESM and CJS.
@0xbridge/bitcoin-vault is a powerful TypeScript library for creating and signing Bitcoin PSBT transactions, working with Taproot scripts (such as multisig and timelock), and fetching UTXOs via public APIs. It is optimized for Testnet but can be configured for Mainnet or custom networks.
.
├── src/ # Source code
│ ├── constants.ts # API endpoints, OP_RETURN messages, and common constants
│ ├── transaction.ts # Core class for creating and signing PSBTs
│ ├── taproot.ts # Utilities for building Taproot scripts (multisig, timelock, etc.)
│ ├── utils.ts # Helper functions like fetchFeeRate, fetchUtxos, and selectUtxos
│ ├── types.ts # Type definitions for UTXOs, configurations, and more
│ └── index.ts # Main entry point exporting core modules
│
├── package.json # Project metadata and dependencies
├── tsconfig.*.json # TypeScript configurations for different builds
├── README.md # Documentation (this file)
Note: The dist/
folder is auto-generated after running the build script (npm run build
).
Install the library using your preferred package manager:
npm install @0xbridge/bitcoin-vault
or
yarn add @0xbridge/bitcoin-vault
Below are examples demonstrating common use cases. For detailed usage, refer to TypeScript definitions or documentation generated by tools like Typedoc.
import { TransactionService } from '@0xbridge/bitcoin-vault';
const userAddress = 'tb1qsomeTestnetAddr...';
const userWif = 'cYourPrivateKey...';
const lockingAddress = 'tb1qLockingAddress...';
const lockingAmount = 10_000; // Satoshis
const oxbridgeAmount = 5_000; // Satoshis
(async () => {
try {
const txService = new TransactionService();
const { txid, rawTxHex } = await txService.createAndSignTransaction(
userAddress,
userWif,
lockingAddress,
lockingAmount,
oxbridgeAmount,
metadataParams,
5 // Optional fee rate (sat/vB)
);
console.log('Transaction broadcast successfully!');
console.log('TXID:', txid);
console.log('Raw Transaction Hex:', rawTxHex);
} catch (err) {
console.error('Error creating or signing transaction:', err);
}
})();
import { createTaprootScriptWithMultisigAndTimelock, createTaprootOutput } from '@0xbridge/bitcoin-vault';
import { generateRandomKeyPair } from '@0xbridge/bitcoin-vault';
import * as bitcoin from 'bitcoinjs-lib';
const userKeyPair = generateRandomKeyPair();
const avsKeyPair = generateRandomKeyPair();
const locktime = 500_000; // Block height or timestamp
const { multisigScript, timelockScript } = createTaprootScriptWithMultisigAndTimelock(
userKeyPair.publicKey,
avsKeyPair.publicKey,
locktime
);
const { address: taprootAddress } = createTaprootOutput(
userKeyPair.publicKey, // Internal key
multisigScript,
timelockScript,
bitcoin.networks.testnet
);
console.log('Generated Taproot Address:', taprootAddress);
import { fetchUtxos, fetchFeeRate, selectUtxos } from '@0xbridge/bitcoin-vault';
const apiConfig = {
primary: 'https://blockstream.info/testnet/api',
fallback: 'https://mempool.space/testnet/api',
};
(async () => {
try {
const utxos = await fetchUtxos(apiConfig, 'tb1qsomeTestnetAddr...');
console.log('Fetched UTXOs:', utxos);
const feeRate = await fetchFeeRate(apiConfig);
console.log('Recommended fee rate (sat/vB):', feeRate);
const needed = 20_000; // Satoshis
const { chosenUtxos, totalAmount } = selectUtxos(utxos, needed);
console.log('Selected UTXOs:', chosenUtxos);
console.log('Total Amount Found:', totalAmount);
} catch (err) {
console.error('Error fetching UTXOs or fee rates:', err);
}
})();
FAQs
Bitcoin-psbt implementation TypeScript library supporting ESM and CJS.
The npm package @0xbridge/bitcoin-vault-trial receives a total of 248 weekly downloads. As such, @0xbridge/bitcoin-vault-trial popularity was classified as not popular.
We found that @0xbridge/bitcoin-vault-trial demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.
Research
Security News
Socket researchers have discovered multiple malicious npm packages targeting Solana private keys, abusing Gmail to exfiltrate the data and drain Solana wallets.