Railgun Private Transfer logo

Catalog action EVM Onchain wallet Gas send

Transfer ERC20 tokens privately between Railgun addresses (generates ZK proof, ~20-30s). Requires turnkey (for gas) and railgun (for mnemonic) connectors.

This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.

At a Glance

FieldValue
Action IDrailgun-private-transfer
CategoryEVM Onchain
Connectorwallet
Requires gasYes
Funds movementsend
Tagsblockchain, privacy, railgun, transfer, zk

Payload Schema

FieldTypeRequiredDescription
chainIdnumberYesChain ID. Supported: Ethereum (1), BNB Chain (56), Polygon (137), Arbitrum (42161)
tokenAddressstringYesERC20 token contract address to transfer
amountstringYesAmount to transfer in smallest unit (wei) as string
recipientRailgunAddressstringYesRecipient Railgun address (0zk...)
memoTextstringNoOptional memo text to include with transfer
showSenderAddressbooleanNoWhether to reveal sender address to recipient (default: false)

Result Schema

FieldTypeRequiredDescription
statusstringYes-
transactionHashstringNoTransaction hash of the private transfer
blockNumbernumberNoBlock number where the transaction was confirmed
gasUsedstringNoGas used for the transfer transaction
proofTimenumberNoTime taken to generate ZK proof in milliseconds

Examples

json
{ "type": "railgun-private-transfer", "payload": { "chainId": 1, "tokenAddress": "0x0000000000000000000000000000000000000000", "amount": "1000000", "recipientRailgunAddress": "0zk1q8p9example..." }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}

Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.

Ask a question... ⌘I