Arb RWA flow listen tool: mint / PairCreated
Arbitrum official frames the tape around RWA deployments + stablecoin flow—this post watches mint / Transfer / PairCreated on one panel: contract mints, size Transfers, fresh pools. Base stock-token Swap watch watches whitelist big prints; here we watch the Arb RWA / stablecoin flow layer.
Run on the public endpoint · blockreq.com register for 3M free requests monthly.
| Use | Endpoint |
|---|---|
| Public HTTPS | https://arbitrum-one-rpc.blockreq.com/v1/rpc/public |
| Public WSS | wss://arbitrum-one-rpc.blockreq.com/v1/rpc/public |
| Private | Trailing public → {API_KEY} (keys stay local) |
Chain: Arbitrum One EVM chainId = 0xa4b1 (42161). Public endpoints · eth_subscribe · Plans · Register.
1. Hook: RWA flow × three subscriptions
| Tape feel | On-chain signal | Watch |
|---|---|---|
| RWA mint | ERC20 Transfer · from = zero | mint size · contract |
| Stablecoin flow | Transfer amount ≥ threshold | USD notionals / raw amounts |
| Pool open | Factory PairCreated | token0 / token1 ∈ RWA·stable tables |
| Flow panel | three lanes → one screen | Dedupe = txHash + logIndex |
Same family, different grain: Base stock-token converges on Swap big prints; this Arb post converges on mint + Transfer + PairCreated flow cards.
2. Event: mint / Transfer / PairCreated
Keep local JSON RWA_TOKEN_LIST + STABLE_LIST + FACTORY_LIST + MIN_TRANSFER_*. One Arb public WSS: subscribe three log lanes in parallel, decode into flowState.
Step A · Subscribe Transfer (mint when from = zero)
{
"jsonrpc": "2.0", "id": 1, "method": "eth_subscribe",
"params": ["logs", {
"address": ["RWA_OR_STABLE_LIST"],
"topics": ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"]
}]
}
topics[0]: ERC20Transfer(address,address,uint256).topics[1](from) =0x000…000→ tag mint; size ≥ threshold → large flow.
Step B · Subscribe Factory PairCreated (parallel OK)
{
"jsonrpc": "2.0", "id": 2, "method": "eth_subscribe",
"params": ["logs", {
"address": ["FACTORY_LIST"],
"topics": ["0x0d3648bd0f6ba80134a33ba9275ac585d9d315f0ad8355cddefde31afa28d0e9"]
}]
}
- Decode
token0/token1/pair→ either side ∈RWA_TOKEN_LIST ∪ STABLE_LIST→ pool-open card.
Step C · Flow card fields
{ chain: "arbitrum-one", pad: "rwa-flow", kind: "mint|transfer|pair", token, amount, counterparty, pair, factory, txHash, blockNumber, ts }
Dedupe on txHash + logIndex; demo knobs: thresholds and address tables.
3. Browser demo (StackBlitz)
Default Arbitrum One public WSS; paste RWA / stablecoin / Factory tables + Transfer threshold, hit Start, stream flow cards. Code lives in StackBlitz — the post only embeds the preview:
Repo: blockreq/blog-demos → examples/arbitrum-rwa-flow-listen.
WSS → wss://arbitrum-one-rpc.blockreq.com/v1/rpc/public
HTTPS→ https://arbitrum-one-rpc.blockreq.com/v1/rpc/public
env → RWA_TOKEN_LIST · STABLE_LIST · FACTORY_LIST · MIN_TRANSFER_USD · MIN_RAW
Keyed: swap trailing public for {API_KEY}. Quota: blockreq.com register for 3M free requests monthly.
4. Alert rhythm
- log arrives → route mint / Transfer / PairCreated.
- Table + threshold → contract ∈ tables; Transfer size clears the bar; Pair sides hit RWA·stable.
- Outbound →
Arb RWA flow · kind=… · token=… · amt=… · blk=…. - Dedupe → one push per
txHash+logIndex.
On disconnect: reconnect and re-subscribe; gap-fill with HTTPS eth_getLogs on the same address set. POST → https://arbitrum-one-rpc.blockreq.com/v1/rpc/public.
5. Summary + CTA
- Grain: Arb RWA watch = mint / Transfer / PairCreated flow.
- Recipe: address tables + Transfer topic + Factory PairCreated + size threshold → flow card.
- Runnable: browser on BlockReq Arbitrum One public WSS; demos1 paths above.
- Start: Public endpoints + blockreq.com register for 3M free requests monthly.
Next: pin RWA / stablecoin / Factory JSON → webhook → stack on-screen with Base stock-token Swap print cards. Docs · Pricing · Register.