Portal Community

1. Pay Out a Stablecoin Amount, Guarded by a Balance Check

  1. Ethereum node: resource=token, operation=balance, tokenAddress={{usdcAddress}}, ownerAddress={{treasuryAddress}}
  2. Condition node: formattedBalance >= payoutAmount
  3. If true: Ethereum node, resource=token, operation=transfer, tokenAddress={{usdcAddress}}, to={{recipient}}, amount={{payoutAmountRaw}}, credentialID={{treasuryWalletCredential}}
  4. If false: route to an alert/notification branch instead

2. Confirm a Payment Before Releasing a Downstream Step

  1. Ethereum node: resource=transaction, operation=wait, hash={{txHash}}, confirmations=2, timeoutMs=120000
  2. Condition node: status == true && timedOut == false
  3. If true, proceed (e.g. mark an invoice paid); if timedOut, branch to a manual-review step; if status == 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.

  1. 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}}"]
  2. Read decodedResult[0] downstream.

4. Batch-Read Several Token Symbols in One Step

  1. Ethereum node: resource=contract, operation=multicall, calls=[{"contractAddress":"0xdAC17F95...","abi":"[...]","functionName":"symbol"},{"contractAddress":"0xA0b869...","abi":"[...]","functionName":"symbol"}]
  2. Iterate results, checking each entry's own success before reading its decodedResult.

5. Resolve a User-Entered ENS Name Before Sending

  1. Ethereum node: resource=ens, operation=resolve, name={{userInput}}, network=ethereum
  2. Ethereum node: resource=utility, operation=validateAddress, address={{resolvedAddress}}
  3. Condition node: isValid == true — if true, use address as the real recipient for a subsequent transaction.send or token.transfer step.

6. Verify an "Off-Chain Login" Signature

  1. Generate and store a one-time nonce for the session; have the frontend ask the user's wallet to sign it.
  2. Ethereum node: resource=wallet, operation=verifySignature, message={{nonce}}, signature={{userSuppliedSignature}}
  3. Condition node: address == expectedWalletAddress — treat as authenticated only on a match.

7. Choose a Gas Strategy Before a Time-Sensitive Write

  1. Ethereum node: resource=gas, operation=optimize, strategy=fast
  2. Pass maxFeePerGasWei and maxPriorityFeePerGasWei from the result into the following transaction.send or contract.write step's maxFeePerGas/maxPriorityFeePerGas fields.

8. Fetch and Display NFT Metadata

  1. Ethereum node: resource=nft, operation=getMetadata, contractAddress={{collectionAddress}}, tokenId={{tokenId}}
  2. Transform step: parse metadataJson, extract name/image/attributes for display.