# build a DeFi app on Arbitrum One

- Chain-scoped: arbitrum-one (https://composewith.eth/chains/arbitrum-one)

> Arbitrum One is the registry's DeFi wedge: deep liquidity, mature infrastructure, and the broadest verified protocol coverage. A credible DeFi stack pairs liquidity with a low-latency oracle, indexing, automation, and multisig admin — using protocols the registry verifies for Arbitrum One.

## Recommended stack

- **Uniswap** (supporting_protocol) — readiness 94/100, difficulty medium — Core liquidity and AMM routing — the deepest on-chain liquidity surface on Arbitrum One.
- **Pyth Network** (oracle_and_price_data) — readiness 82/100, difficulty medium — Low-latency pull-based price feeds for pricing, collateral, and liquidation logic.
- **The Graph** (indexing_and_data) — readiness 80/100, difficulty medium — Subgraph indexing for positions, pools, and activity instead of hand-rolling an indexer.
- **Gelato** (automation) — readiness 79/100, difficulty medium — Keepers and event-driven execution for liquidations, rebalances, and limit orders.
- **Safe** (supporting_protocol) — readiness 80/100, difficulty low — Multisig treasury and admin control over protocol parameters and upgrades.

## Considered and excluded

- biconomy — Account abstraction and paymasters are orthogonal to a DeFi protocol's core; add only if gasless UX is a product requirement.
- chainlink — A strong alternative oracle; pick one price-feed provider rather than wiring two unless you need cross-validation.

## Risks

- Arbitrum's sequencer and finality timing affect oracle staleness and liquidation safety — tune heartbeats accordingly.
- Confirm each dependency's Arbitrum One contract addresses; deployment coverage varies by protocol.

## Next steps

- Point your deployment and RPC at Arbitrum One (chain id 42161) and verify each dependency's addresses.
- Pick a single primary oracle and define staleness/heartbeat thresholds for liquidations.
- Stand up a subgraph for positions and pool state before building dashboards.

## What the agent receives

```json
{
  "intent": "I want to build a DeFi app on Arbitrum One",
  "matched_intent": "arbitrum-defi-app",
  "recommended_stack": [
    {
      "slug": "uniswap",
      "name": "Uniswap",
      "role": "supporting_protocol",
      "readiness_score": 94,
      "integration_difficulty": "medium",
      "reason": "Core liquidity and AMM routing — the deepest on-chain liquidity surface on Arbitrum One."
    },
    {
      "slug": "pyth",
      "name": "Pyth Network",
      "role": "oracle_and_price_data",
      "readiness_score": 82,
      "integration_difficulty": "medium",
      "reason": "Low-latency pull-based price feeds for pricing, collateral, and liquidation logic."
    },
    {
      "slug": "the-graph",
      "name": "The Graph",
      "role": "indexing_and_data",
      "readiness_score": 80,
      "integration_difficulty": "medium",
      "reason": "Subgraph indexing for positions, pools, and activity instead of hand-rolling an indexer."
    },
    {
      "slug": "gelato",
      "name": "Gelato",
      "role": "automation",
      "readiness_score": 79,
      "integration_difficulty": "medium",
      "reason": "Keepers and event-driven execution for liquidations, rebalances, and limit orders."
    },
    {
      "slug": "safe",
      "name": "Safe",
      "role": "supporting_protocol",
      "readiness_score": 80,
      "integration_difficulty": "low",
      "reason": "Multisig treasury and admin control over protocol parameters and upgrades."
    }
  ],
  "excluded_candidates": [
    {
      "slug": "biconomy",
      "reason": "Account abstraction and paymasters are orthogonal to a DeFi protocol's core; add only if gasless UX is a product requirement."
    },
    {
      "slug": "chainlink",
      "reason": "A strong alternative oracle; pick one price-feed provider rather than wiring two unless you need cross-validation."
    }
  ],
  "risks": [
    "Arbitrum's sequencer and finality timing affect oracle staleness and liquidation safety — tune heartbeats accordingly.",
    "Confirm each dependency's Arbitrum One contract addresses; deployment coverage varies by protocol."
  ],
  "next_steps": [
    "Point your deployment and RPC at Arbitrum One (chain id 42161) and verify each dependency's addresses.",
    "Pick a single primary oracle and define staleness/heartbeat thresholds for liquidations.",
    "Stand up a subgraph for positions and pool state before building dashboards."
  ],
  "generated_with": "composewith.eth",
  "registry_version": "2026.06.10-8752c9d"
}
```

---
Canonical: https://composewith.eth/intents/arbitrum-defi-app
