Skip to content

feat(anchor-evm): add CLI options for EVM self-anchoring#748

Merged
smrz2001 merged 4 commits into
mainfrom
feat/self-anchoring-docs-and-cli
Dec 8, 2025
Merged

feat(anchor-evm): add CLI options for EVM self-anchoring#748
smrz2001 merged 4 commits into
mainfrom
feat/self-anchoring-docs-and-cli

Conversation

@smrz2001

@smrz2001 smrz2001 commented Dec 4, 2025

Copy link
Copy Markdown
Contributor

Add command-line options to ceramic-one daemon for configuring EVM-based self-anchoring, eliminating the need for a centralized anchor service.

CLI Options:
--evm-rpc-url RPC endpoint for EVM chain
--evm-private-key Private key for signing (hex, no 0x prefix)
--evm-chain-id EVM chain ID (e.g., 100 for Gnosis)
--evm-contract-address Anchor contract address
--evm-confirmations Block confirmations to wait (default: 4)

All four required options must be provided together. Example:

ceramic-one daemon
--evm-rpc-url "https://gnosis-mainnet.g.alchemy.com/v2/YOUR_KEY"
--evm-private-key "your_private_key_hex_without_0x"
--evm-chain-id 100
--evm-contract-address "0x231055A0852D67C7107Ad0d0DFeab60278fE6AdC"
--anchor-interval 3600

Environment variables are also supported (recommended for production):
CERAMIC_ONE_EVM_RPC_URL, CERAMIC_ONE_EVM_PRIVATE_KEY, etc.

Additional changes:

  • Add wait_for_pending_transactions() to handle tx from previous runs
  • Deprecate --remote-anchor-service-url in favor of EVM options
  • Add comprehensive CLI documentation to anchor-evm/README.md
  • Add self-anchoring section to main README.md
  • Incorporate @dav1do's comments from the previous PR.

Add command-line options to ceramic-one daemon for configuring EVM-based
self-anchoring, eliminating the need for a centralized anchor service.

CLI Options:
  --evm-rpc-url          RPC endpoint for EVM chain
  --evm-private-key      Private key for signing (hex, no 0x prefix)
  --evm-chain-id         EVM chain ID (e.g., 100 for Gnosis)
  --evm-contract-address Anchor contract address
  --evm-confirmations    Block confirmations to wait (default: 4)

All four required options must be provided together. Example:

  ceramic-one daemon \
    --evm-rpc-url "https://gnosis-mainnet.g.alchemy.com/v2/YOUR_KEY" \
    --evm-private-key "your_private_key_hex_without_0x" \
    --evm-chain-id 100 \
    --evm-contract-address "0x231055A0852D67C7107Ad0d0DFeab60278fE6AdC" \
    --anchor-interval 3600

Environment variables are also supported (recommended for production):
  CERAMIC_ONE_EVM_RPC_URL, CERAMIC_ONE_EVM_PRIVATE_KEY, etc.

Additional changes:
- Add wait_for_pending_transactions() to handle tx from previous runs
- Deprecate --remote-anchor-service-url in favor of EVM options
- Use test_log::test(tokio::test) instead of manual tracing setup
- Add comprehensive CLI documentation to anchor-evm/README.md
- Add self-anchoring section to main README.md
@smrz2001 smrz2001 self-assigned this Dec 4, 2025
@smrz2001 smrz2001 requested a review from a team as a code owner December 4, 2025 17:37
@smrz2001 smrz2001 requested review from ukstv and removed request for a team December 4, 2025 17:37
- Run cargo fmt to fix formatting issues in daemon.rs and evm_transaction_manager.rs
- Add #[allow(deprecated)] for intentional use of deprecated remote_anchor_service_url field
@smrz2001 smrz2001 removed the request for review from ukstv December 4, 2025 19:31
Consolidate RPC URL configuration so that --evm-rpc-url is automatically
used for both submitting anchors AND validating anchor proofs on that chain.

Changes:
- Add --additional-chain-rpc-urls for validating anchors from other chains
- Deprecate --ethereum-rpc-urls (keep as hidden alias with warning)
@smrz2001 smrz2001 added this pull request to the merge queue Dec 8, 2025
Merged via the queue into main with commit 148ccef Dec 8, 2025
20 checks passed
@smrz2001 smrz2001 deleted the feat/self-anchoring-docs-and-cli branch December 8, 2025 20:25
@smrz2001 smrz2001 mentioned this pull request Dec 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants