xone --dev already runs a one-validator XDC chain with the block controls that test scripts expect: evm_mine, evm_snapshot and evm_revert, anvil_reset, a settable next timestamp and more (the dev chain, resuming a dev chain). Three more tools came on 2026-11-15: sending transactions as any account without its key, a block explorer on the loopback address, and one command to start and stop a whole local XDPoS network. All three are on main, not in v0.1.0, and none of them is served outside dev mode.
How do I send a transaction as an account whose key I do not have?
Impersonate it. On a --dev node:
curl -s -H 'content-type: application/json' 127.0.0.1:8545 -d \
'{"jsonrpc":"2.0","id":1,"method":"anvil_impersonateAccount","params":["0x<address>"]}'
curl -s -H 'content-type: application/json' 127.0.0.1:8545 -d \
'{"jsonrpc":"2.0","id":2,"method":"eth_sendTransaction","params":[{"from":"0x<address>","to":"0x<to>","value":"0x1"}]}'
anvil_impersonateAccountandanvil_stopImpersonatingAccount, withhardhat_aliases, are the names Foundry and Hardhat scripts already call (PR #1059).eth_sendTransactionexists only in the dev method registry. For an impersonated sender it builds a legacy transaction with a dummy signature, which the pool admits for that account only (PR #1066).- After
anvil_stopImpersonatingAccount, an unsigned transaction from that account is refused again, and a correctly signed one is still accepted. - Public profiles never register these methods, so a node on a real network cannot be told to accept an unsigned transaction.
Use it to test a contract call from a large holder, a multisig or another address whose key you do not have.
How do I see what my dev chain did?
Start the node with --dev --dev.explorer. It serves a block explorer on 127.0.0.1:3000 (PR #1118):
- It shows a local transfer with its receipt and logs.
- It proxies RPC on the same origin, so the browser needs no CORS setting.
- Restarting the explorer does not reset the chain or touch the datadir.
/capabilitieslists which Otterscan indexing methods the node supports and which it does not.
For a full explorer on a shared network, see trace_ and ots_ for Blockscout and Otterscan.
How do I run a local multi-node XDPoS network?
xone network init writes a workspace for a private network: a genesis and one config per node. Since PR #1053 three commands drive it:
| Command | Does |
|---|---|
xone network up |
Starts every node of the workspace. Each node config must point at the workspace genesis. If one process fails, the result names every node, and the others keep running so you can look at them. |
xone network status |
Shows which workspace nodes are running |
xone network down |
Stops only the processes this workspace started (by pid and start time). Genesis and node data stay unless you add --purge. |
Add --permissions.nodes to the node configs if the network must refuse outside peers (the node allowlist).
How does this compare with other dev tools?
| Need | Foundry anvil and Hardhat | xOneRS --dev |
|---|---|---|
| Impersonate an account | anvil_impersonateAccount, hardhat_impersonateAccount |
the same names |
| Mine, snapshot, revert, reset | evm_mine, evm_snapshot, evm_revert, anvil_reset |
the same names (the dev chain) |
| XDC rules | not built in | the XDC execution rules, because it is an XDC node |
The difference that matters: a test on xone --dev runs on XDC's execution rules and fork rows, not on Ethereum's.
Frequently asked questions
Does xOne support anvil_impersonateAccount?
Yes, on a --dev node of a build from main after 2026-11-15, with the hardhat_ aliases. It is not served on public networks.
Can I send eth_sendTransaction to an xOne node?
Only on a --dev node, where it signs with a dummy signature for an impersonated account. Public nodes do not hold user keys.
Is there a block explorer for xone --dev?
Yes. --dev.explorer serves one on 127.0.0.1:3000.
How do I start and stop a local XDC test network with several nodes?
xone network init to create the workspace, then xone network up, status and down.
Sources
- bin/xone/src/flags.rs
- PRs #1053, #1059, #1066, #1118
This article describes the source and evidence at its review date. Check the linked repository for current implementation and qualification status.
Explore the engineering evidenceEdit this page on GitHub opens the Markdown source (content/blog/xone-dev-tools-impersonation/index.md). GitHub may ask you to sign in. Report a correction opens a prefilled GitHub issue for this page.