Examples
Worked workflow patterns using the Ethereum node
1. Pay Out a Stablecoin Amount, Guarded by a Balance Check
- Ethereum node:
resource=token,operation=balance,tokenAddress={{usdcAddress}},ownerAddress={{treasuryAddress}} - Condition node:
formattedBalance >= payoutAmount - If true: Ethereum node,
resource=token,operation=transfer,tokenAddress={{usdcAddress}},to={{recipient}},amount={{payoutAmountRaw}},credentialID={{treasuryWalletCredential}} - If false: route to an alert/notification branch instead
2. Confirm a Payment Before Releasing a Downstream Step
- Ethereum node:
resource=transaction,operation=wait,hash={{txHash}},confirmations=2,timeoutMs=120000 - Condition node:
status == true && timedOut == false - If true, proceed (e.g. mark an invoice paid); if
timedOut, branch to a manual-review step; ifstatus == false, the transaction reverted — branch to a failure path.
Why
wait over a raw receipt poll: transaction.wait
already handles the poll/timeout loop, so the workflow doesn't need its own retry logic.
3. Read Any Contract Value Without a Custom Integration
Use contract.read with just the relevant ABI fragment — no need for the contract's full ABI.
- Ethereum node:
resource=contract,operation=read,contractAddress={{contractAddress}},abi=[{"inputs":[{"name":"account","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],functionName=balanceOf,functionArgs=["{{address}}"] - Read
decodedResult[0]downstream.
4. Batch-Read Several Token Symbols in One Step
- Ethereum node:
resource=contract,operation=multicall,calls=[{"contractAddress":"0xdAC17F95...","abi":"[...]","functionName":"symbol"},{"contractAddress":"0xA0b869...","abi":"[...]","functionName":"symbol"}] - Iterate
results, checking each entry's ownsuccessbefore reading itsdecodedResult.
5. Resolve a User-Entered ENS Name Before Sending
- Ethereum node:
resource=ens,operation=resolve,name={{userInput}},network=ethereum - Ethereum node:
resource=utility,operation=validateAddress,address={{resolvedAddress}} - Condition node:
isValid == true— if true, useaddressas the real recipient for a subsequenttransaction.sendortoken.transferstep.
6. Verify an "Off-Chain Login" Signature
- Generate and store a one-time nonce for the session; have the frontend ask the user's wallet to sign it.
- Ethereum node:
resource=wallet,operation=verifySignature,message={{nonce}},signature={{userSuppliedSignature}} - Condition node:
address == expectedWalletAddress— treat as authenticated only on a match.
7. Choose a Gas Strategy Before a Time-Sensitive Write
- Ethereum node:
resource=gas,operation=optimize,strategy=fast - Pass
maxFeePerGasWeiandmaxPriorityFeePerGasWeifrom the result into the followingtransaction.sendorcontract.writestep'smaxFeePerGas/maxPriorityFeePerGasfields.
8. Fetch and Display NFT Metadata
- Ethereum node:
resource=nft,operation=getMetadata,contractAddress={{collectionAddress}},tokenId={{tokenId}} - Transform step: parse
metadataJson, extractname/image/attributesfor display.