Package: multichainr 0.1.0

Aliaksandr Martsinkevich

multichainr: R Interface to the 'MultiChain' Blockchain RPC API

Provides a comprehensive R interface to the 'MultiChain' blockchain JSON-RPC API <https://www.multichain.com/developers/json-rpc-api/>. Allows users to manage blockchain nodes, create and subscribe to data streams, issue assets, and manage network permissions directly from the R console. Supports both local node management and remote server interaction.

Authors:Aliaksandr Martsinkevich [aut, cre]

multichainr_0.1.0.tar.gz
multichainr_0.1.0.zip(r-4.7-any)multichainr_0.1.0.zip(r-4.6-any)multichainr_0.1.0.zip(r-4.5-any)
multichainr_0.1.0.tgz(r-4.6-any)multichainr_0.1.0.tgz(r-4.5-any)
multichainr_0.1.0.tar.gz(r-4.7-any)multichainr_0.1.0.tar.gz(r-4.6-any)
multichainr_0.1.0.tgz(r-4.6-emscripten)
manual.pdf |manual.html✨
DESCRIPTION
card.svg |card.png
multichainr/json (API)

# Install 'multichainr' in R:
install.packages('multichainr', repos = c('https://datascienceadvice.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/datascienceadvice/multichainr/issues

Pkgdown/docs site:https://datascienceadvice.github.io

On CRAN:

Conda:

5.40 score 227 downloads 167 exports 14 dependencies

Last updated from:b1ff93be19. Checks:9 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-develOK150
source / vignettesOK194
linux-releaseOK133
macos-releaseOK183
macos-oldrelOK195
windows-develOK99
windows-releaseOK90
windows-oldrelOK118
wasm-releaseOK117

Exports:%>%%||%hex_to_charmc_add_library_updatemc_add_library_update_frommc_add_multisig_addressmc_add_nodemc_append_binary_cachemc_append_raw_changemc_append_raw_datamc_append_raw_exchangemc_append_raw_transactionmc_approve_frommc_backup_walletmc_change_wallet_passphrasemc_clear_mempoolmc_combine_unspentmc_complete_raw_exchangemc_connectmc_create_binary_cachemc_create_keypairsmc_create_librarymc_create_multisigmc_create_raw_exchangemc_create_raw_send_frommc_create_raw_transactionmc_create_streammc_create_stream_filtermc_create_stream_frommc_create_tx_filtermc_create_upgrademc_create_variablemc_create_variable_frommc_decode_raw_exchangemc_decode_raw_transactionmc_delete_binary_cachemc_disable_raw_transactionmc_dump_privkeymc_dump_walletmc_encrypt_walletmc_get_added_node_infomc_get_address_balancesmc_get_address_transactionmc_get_addressesmc_get_asset_infomc_get_asset_transactionmc_get_blockmc_get_block_hashmc_get_blockchain_infomc_get_blockchain_paramsmc_get_chain_totalsmc_get_chunk_queue_infomc_get_chunk_queue_totalsmc_get_configmc_get_filter_codemc_get_infomc_get_init_statusmc_get_last_block_infomc_get_library_codemc_get_mempool_infomc_get_multi_balancesmc_get_network_infomc_get_new_addressmc_get_peer_infomc_get_raw_mempoolmc_get_raw_transactionmc_get_runtime_paramsmc_get_stream_infomc_get_stream_itemmc_get_stream_key_summarymc_get_stream_publisher_summarymc_get_token_balancesmc_get_token_infomc_get_total_balancesmc_get_tx_outmc_get_tx_out_datamc_get_variable_historymc_get_variable_infomc_get_variable_valuemc_get_wallet_infomc_get_wallet_transactionmc_grantmc_grant_frommc_grant_with_datamc_grant_with_data_frommc_helpmc_import_addressmc_import_privkeymc_import_walletmc_issuemc_issue_frommc_issue_moremc_issue_more_frommc_issue_tokenmc_issue_token_frommc_list_address_transactionsmc_list_addressesmc_list_asset_issuesmc_list_asset_transactionsmc_list_assetsmc_list_blocksmc_list_librariesmc_list_lock_unspentmc_list_minersmc_list_permissionsmc_list_stored_nodesmc_list_stream_block_itemsmc_list_stream_filtersmc_list_stream_itemsmc_list_stream_key_itemsmc_list_stream_keysmc_list_stream_publisher_itemsmc_list_stream_publishersmc_list_stream_query_itemsmc_list_stream_tx_itemsmc_list_streamsmc_list_tx_filtersmc_list_unspentmc_list_upgradesmc_list_variablesmc_list_wallet_transactionsmc_lock_unspentmc_lock_walletmc_node_initmc_node_startmc_node_stopmc_pausemc_pingmc_prepare_lock_unspentmc_prepare_lock_unspent_frommc_publishmc_publish_frommc_publish_multimc_publish_multi_frommc_resumemc_revokemc_revoke_frommc_run_stream_filtermc_run_tx_filtermc_sendmc_send_assetmc_send_asset_frommc_send_frommc_send_raw_transactionmc_send_with_datamc_send_with_data_frommc_set_last_blockmc_set_pathmc_set_runtime_parammc_set_variable_valuemc_set_variable_value_frommc_sign_messagemc_sign_raw_transactionmc_store_nodemc_subscribemc_test_librarymc_test_stream_filtermc_test_tx_filtermc_txout_to_binary_cachemc_unlock_walletmc_unsubscribemc_updatemc_update_frommc_validate_addressmc_verify_messagemc_verify_permissionmc_wait_for_confirmation

Dependencies:askpassclicurlgluehttr2jsonlitelifecyclemagrittropensslR6rlangsysvctrswithr

Data Integrity in Pharma: Managing SOP Lifecycles with multichainr
Introduction | 1. Infrastructure Setup and Role-Based Access Control (RBAC) | 1.1 Environment Initialization and Validated Connection | 1.2 Creation of Departmental Digital Identities | 1.3 Governance: Enforcing Segregation of Duties (SoD) | 1.4 System Suitability Test: Validating the RBAC Model | 2. Creating Immutable Registries (Streams) | 2.1 Initializing the Master Document Registry (Restricted Stream Creation) | 2.2 Inspecting the "Birth Certificate" of the Registry | 2.3 System Oversight: Inventory of Active Ledgers | 2.4 Enabling Active Synchronization (Subscription) | 2.5 Granting Specific Authorization (Stream-Level Permissions) | 3. Registration of New SOP Versions (Immutable Data Entry) | 3.1 Metadata Publication and Document Hashing | 3.2 Atomic Multi-Item Publication (Change Control Integrity) | 3.3 Managing Technical Dossiers (Binary Cache Workflow) | 3.4 Verification of Data Persistence and Retrieval | 4. Digital Signatures and Competency Confirmation | 4.1 Document Approval (The Electronic Signature) | 4.2 Independent Regulatory Verification (External Audit) | 4.3 Training Token Issuance (The Machine-Readable Permit) | 4.4 Real-Time Qualification Check (Automated Compliance) | 5. Automating Business Logic (Compliance-as-Code) | 5.1 Creating a Validation Library (Standardized Logic) | 5.2 Testing Logic via Simulation (Verification Step) | 5.3 Developing the Production Stream Filter | 5.4 Administrative Attachment (Segregation of Duties) | 5.5 Demonstrating Enforcement (The Negative Test) | 5.6 Demonstrating Compliance (The Positive Test) | 6. System State Control (Global Variables & Node Configuration) | 6.1 Initializing Global Quality Identifiers | 6.2 Real-Time Status Tracking (Regulatory Audit Logging) | 6.3 Historical Audit Trail of System States | 6.4 Technical Guardrails (Configuring Node Runtime) | 6.5 System Snapshot (GXP Documentation) | 7. Atomic Version Exchange (Automated Change Control Enforcement) | 7.1 Setup: Establishing the Baseline | 7.2 QA Isolation: Preparing the New Permit | 7.3 Creating the Regulatory Offer (The Partial Transaction) | 7.4 Production Authorization: Preparing the Superseded Permit | 7.5 Finalizing the Exchange: Attaching the Rationale | 7.6 Broadcast: Atomic Execution of Change Control | 8. Audit and Regulatory Inspection (Traceability & Immutability) | 8.1 Proving Immutability (The Mathematical Seal) | 8.2 The Master Document List (Identifying Unique Entities) | 8.3 Change History Audit (Chronological Traceability) | 8.4 The "Single Source of Truth" (Latest Approved Metadata) | 8.5 Inspector's Report: Departmental Accountability | 8.6 High-Level QMS Oversight (System Dashboard) | 9. Raw Transactions (Advanced GxP Workflows & the "Four-Eyes" Principle) | 9.1 Dynamic Inventory Discovery: Locating the Permit to Archive | 9.2 Manual Transaction Construction and Target Authorization | 9.3 Change Control Enrichment: Appending Validation Metadata | 9.4 Independent Verification (The "Human-in-the-Loop" Check) | 9.5 Cryptographic Signing: Attributing the Action | 9.6 Final Commitment and Audit Reconciliation | 10. System Shutdown and Archiving (Ledger Lifecycle Management) | 10.1 Preparation of Validated Backup Storage | 10.2 Comprehensive Binary Wallet Backup | 10.3 Human-Readable Key Export (The Emergency Recovery Kit) | 10.4 Final Quality Snapshot (The End-of-Session Report) | 10.5 Graceful Shutdown and Environment Cleanup | Conclusion: The Future of Validated Data Management

Last update: 2026-07-30
Started: 2026-04-06

Getting Started with multichainr
1. Setting Up MultiChain Paths | Persistent Configuration (Recommended) | Manual Session Configuration | 2. Initializing a Temporary Blockchain | 3. Starting the Node | 4. Connecting and Running Commands | 5. Node Shutdown and Cleanup | Summary | Key Highlights of this Vignette:

Last update: 2026-04-03
Started: 2026-04-02

Atomic Swaps and Raw Transactions
Introduction | 1. Node Initialization | 2. Preparing the Trade | 3. Step 1: Trader A Creates an Offer | 4. Step 2: Trader B Completes the Swap | 5. Step 3: Broadcasting the Transaction | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Global Variables and State History
Introduction | 1. Node Initialization | 2. Creating a Global Variable | 3. Updating State | 4. Retrieving the Current Value | 5. Auditing State History | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Handling Large Payloads with Binary Cache
Introduction | 1. Node Initialization | 2. Creating and Appending to Cache | 3. Publishing Off-chain Data | 4. Retrieving Data to a New Cache | 5. Inspecting and Deleting Cache | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Managing Assets and Tokens
Introduction | 1. Node Initialization | 2. Permissions and Addresses | 3. Fungible Assets | 4. Non-Fungible Tokens (NFTs) | Creating the NFT Parent | Issuing Unique Tokens | 5. Transfers and Multibalances | 6. Node Shutdown and Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Multi-Signature Wallets and Security
Introduction | 1. Node Initialization | 2. Generating Key Pairs | 3. Creating a Multi-Signature Address | 4. Granting Permissions to Multisig | 5. Cryptographic Message Signing | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Network Permissions and Governance
Introduction | 1. Node Initialization | 2. Managing Basic Permissions | 3. Permissions with Metadata and Expiry | 4. Auditing Network Permissions | 5. Revoking Permissions | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Smart Filters and On-Chain Logic
Introduction | 1. Node Initialization | 2. Creating a JavaScript Library | 3. Writing and Testing a Stream Filter | Defining the Filter | Local Testing (Dry Run) | 4. Deploying and Using the Filter | 5. Verifying the Logic | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Storing Data in Streams
Introduction | 1. Node Initialization | 2. Creating and Subscribing to Streams | 3. Publishing Data | 4. Retrieving and Querying Items | 5. Stream Summaries (State Tracking) | 6. Cleanup | Summary

Last update: 2026-04-02
Started: 2026-04-02

Readme and manuals

Help Manual

Help pageTopics
Decode hex string to characterhex_to_char
Add an update to an existing librarymc_add_library_update
Add an update to a library from a specific addressmc_add_library_update_from
Add a multi-signature addressmc_add_multisig_address
Add or remove a peer-to-peer connectionmc_add_node
Append data to a binary cache itemmc_append_binary_cache
Add a change output to a raw transactionmc_append_raw_change
Add metadata to a raw transactionmc_append_raw_data
Add to a raw atomic exchange transactionmc_append_raw_exchange
Add inputs and outputs to a raw transactionmc_append_raw_transaction
Approve or disapprove an upgrade or filtermc_approve_from
Backup the wallet filemc_backup_wallet
Change the wallet passphrasemc_change_wallet_passphrase
Clear the node's memory poolmc_clear_mempool
Combine unspent outputs (UTXOs)mc_combine_unspent
Finalize an atomic exchange transactionmc_complete_raw_exchange
Create a MultiChain connection objectmc_connect
Create a new binary cache itemmc_create_binary_cache
Create new key pairsmc_create_keypairs
Create a new librarymc_create_library
Create multi-signature address (external)mc_create_multisig
Create a new atomic exchange transactionmc_create_raw_exchange
Create and fund a raw transaction from a specific addressmc_create_raw_send_from
Create a raw transactionmc_create_raw_transaction
Create a new streammc_create_stream
Create a stream filtermc_create_stream_filter
Create a new stream from a specific addressmc_create_stream_from
Create a transaction filtermc_create_tx_filter
Create a blockchain upgrademc_create_upgrade
Create a new variablemc_create_variable
Create a variable from a specific addressmc_create_variable_from
Decode a raw exchange transactionmc_decode_raw_exchange
Decode a raw transaction hexmc_decode_raw_transaction
Delete an item from the binary cachemc_delete_binary_cache
Disable an offer of exchangemc_disable_raw_transaction
Dump a private key for an addressmc_dump_privkey
Dump all private keys to a filemc_dump_wallet
Encrypt the walletmc_encrypt_wallet
Get information about manually added nodesmc_get_added_node_info
Get asset balances for a specific addressmc_get_address_balances
Get details of a transaction for a specific addressmc_get_address_transaction
Get node wallet addressesmc_get_addresses
Get information about a specific assetmc_get_asset_info
Get a specific transaction involving a subscribed assetmc_get_asset_transaction
Get block informationmc_get_block
Get block hash by heightmc_get_block_hash
Get general blockchain informationmc_get_blockchain_info
Get blockchain parametersmc_get_blockchain_params
Get counts of blockchain entitiesmc_get_chain_totals
Get information about off-chain chunk queuemc_get_chunk_queue_info
Get cumulative statistics on off-chain chunk requestsmc_get_chunk_queue_totals
Get MultiChain configurationmc_get_config
Get JavaScript code of a filtermc_get_filter_code
Get general node informationmc_get_info
Get node initialization statusmc_get_init_status
Get information about the last blockmc_get_last_block_info
Get JavaScript code for a librarymc_get_library_code
Get memory pool informationmc_get_mempool_info
Get balances for multiple addresses and assetsmc_get_multi_balances
Get information about node's network statusmc_get_network_info
Create new wallet addressmc_get_new_address
Get information about connected peersmc_get_peer_info
Get list of transaction IDs in mempoolmc_get_raw_mempool
Get a raw transaction from the blockchainmc_get_raw_transaction
Get node runtime parametersmc_get_runtime_params
Get information about a specific streammc_get_stream_info
Get a specific item from a streammc_get_stream_item
Get summary of JSON objects in a stream for a specific keymc_get_stream_key_summary
Get summary of JSON objects published by a specific addressmc_get_stream_publisher_summary
Get balances for non-fungible tokens (NFTs)mc_get_token_balances
Get information about a specific token (MultiChain 2.2.1+)mc_get_token_info
Get total wallet balancesmc_get_total_balances
Get details about an unspent transaction outputmc_get_tx_out
Retrieve full hex data from a transaction outputmc_get_tx_out_data
List historical values of a variablemc_get_variable_history
Get information about a variablemc_get_variable_info
Retrieve the latest value of a variablemc_get_variable_value
Get general wallet informationmc_get_wallet_info
Get details of a wallet transactionmc_get_wallet_transaction
Grant permissions to an addressmc_grant
Grant permissions from a specific addressmc_grant_from
Grant permissions with metadatamc_grant_with_data
Grant permissions from a specific address with metadatamc_grant_with_data_from
Get help for MultiChain commandsmc_help
Import a watch-only addressmc_import_address
Import one or more private keysmc_import_privkey
Import keys from a wallet dump filemc_import_wallet
Issue new assetmc_issue
Issue new asset from specific addressmc_issue_from
Issue more of an existing fungible assetmc_issue_more
Issue more of an asset from specific addressmc_issue_more_from
Issue tokens for a non-fungible asset (NFT)mc_issue_token
Issue tokens from specific addressmc_issue_token_from
List transactions for a specific addressmc_list_address_transactions
List addresses in the walletmc_list_addresses
List issuance events for an assetmc_list_asset_issues
List transactions involving a subscribed assetmc_list_asset_transactions
List blockchain assetsmc_list_assets
List information about specific blocksmc_list_blocks
List libraries on the blockchainmc_list_libraries
List locked unspent outputsmc_list_lock_unspent
List miners and their statusmc_list_miners
List network permissionsmc_list_permissions
List known peer node addresses (MultiChain 2.3+)mc_list_stored_nodes
List items in a specific block or blocksmc_list_stream_block_items
List stream filtersmc_list_stream_filters
List items in a stream (Enhanced version)mc_list_stream_items
List items with a specific keymc_list_stream_key_items
List unique keys in a streammc_list_stream_keys
List items published by a specific addressmc_list_stream_publisher_items
List publishers who have written to a streammc_list_stream_publishers
Query items by matching keys and publishersmc_list_stream_query_items
List items in stream within a given transaction IDmc_list_stream_tx_items
List streams on the blockchainmc_list_streams
List transaction filtersmc_list_tx_filters
List unspent transaction outputsmc_list_unspent
List upgradesmc_list_upgrades
List variables created on the blockchainmc_list_variables
List transactions in the walletmc_list_wallet_transactions
Lock or unlock unspent outputsmc_lock_unspent
Immediately lock the walletmc_lock_wallet
Initialize a new MultiChain blockchainmc_node_init
Start a MultiChain nodemc_node_start
Stop a MultiChain nodemc_node_stop
Pause specified node tasksmc_pause
Ping all connected peersmc_ping
Prepare an unspent transaction output for exchangemc_prepare_lock_unspent
Prepare an unspent output from a specific addressmc_prepare_lock_unspent_from
Publish an item to a streammc_publish
Publish an item to a stream from a specific addressmc_publish_from
Publish multiple items to a stream in one transactionmc_publish_multi
Publish multiple items from a specific addressmc_publish_multi_from
Resume specified node tasksmc_resume
Revoke permissions from an addressmc_revoke
Revoke permissions from a specific addressmc_revoke_from
Run an existing stream filter against an itemmc_run_stream_filter
Run an existing transaction filter against a transactionmc_run_tx_filter
Send payment or assets to an addressmc_send
Send a single asset to an addressmc_send_asset
Send a single asset from a specific addressmc_send_asset_from
Send payment from a specific addressmc_send_from
Send a signed raw transaction to the networkmc_send_raw_transaction
Send payment with inline metadatamc_send_with_data
Send payment from specific address with metadatamc_send_with_data_from
Rewind the node's active chainmc_set_last_block
Set path to MultiChain binariesmc_set_path
Set node runtime parametermc_set_runtime_param
Set the value of a variablemc_set_variable_value
Set variable value from specific addressmc_set_variable_value_from
Sign a message with a private keymc_sign_message
Sign a raw transactionmc_sign_raw_transaction
Add an IP address to known peer nodes (MultiChain 2.3+)mc_store_node
Subscribe to MultiChain assets or streamsmc_subscribe
Manage testing of libraries and updates locallymc_test_library
Test a stream filter before creationmc_test_stream_filter
Test a transaction filter before creationmc_test_tx_filter
Extract transaction output data to binary cachemc_txout_to_binary_cache
Unlock the wallet with a passphrasemc_unlock_wallet
Unsubscribe from MultiChain assets or streamsmc_unsubscribe
Update asset status (open/closed)mc_update
Update asset status from specific addressmc_update_from
Validate or inspect an addressmc_validate_address
Verify a signed messagemc_verify_message
Verify if an address has a specific permissionmc_verify_permission
Wait for transaction confirmationmc_wait_for_confirmation
Null-default operator%||% null_default
Print MultiChain helpprint.mc_help
Print MultiChain connectionprint.multichain_conn