> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eco.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Become a solver

> Prepare a quoting service, register with Eco, and operate the fulfillment and settlement loop.

A solver quotes and fulfills intents in exchange for source-chain rewards. This guide separates service registration from the onchain fulfillment loop.

## Prerequisites

* RPC access and transaction-signing accounts for the chains you support.
* Destination assets, gas funds, and a plan for proof fees and reward settlement.
* Portal and prover addresses with ABIs matching their deployed versions.
* An HTTPS quoting service and a registration configuration agreed with Eco.

## Implement quoting

The [solver OpenAPI document](/solver_openapi.json) describes the V2 quote request shapes. The reference service exposes `POST /api/v2/quote` and `POST /api/v2/quote/reverse`; the registry stores your configured URLs as `quotesV2Url` and `reverseQuotesV2Url`.

Calculate prices from the requested pair, amounts, gas, liquidity, and settlement costs. Reject requests you cannot fulfill. Do not infer request or response fields from the public Routes API: solver-facing and integrator-facing APIs use different schemas.

The published solver schema does not fully specify authentication, response bodies, error codes, or rate limits for these handlers. Confirm those requirements with Eco before production registration.

## Register the service

The [registry OpenAPI document](/openapi_1.json) documents `POST /api/v1/solverRegistry/registerSolver` and `PATCH /api/v1/solverRegistry/updateSolver` on `quotes.eco.com`.

Registration and updates require signed-request headers: `x-beam-sig`, `x-beam-sig-expire`, and `x-beam-sig-address`. An API key alone does not replace this authentication.

The published registration schema contains both V1 and V2 URL fields and still marks some V1 fields as required. It does not specify the complete signature construction, error responses, or rate limits. [Contact Eco](/resources/support) to confirm the current registration payload and signing procedure rather than submitting an unsigned or incomplete request.

## Observe and validate intents

For onchain publication, watch the source Portal's `IntentPublished` events and check actual vault funding. Deduplicate by intent hash and account for reorganizations.

Match the full route and reward against your supported execution, pricing, deadlines, and prover configuration. Reward-token matching alone does not identify an intent that used your quote.

## Fulfill and prove

1. Simulate the route and estimate gas on the destination chain.
2. Approve the destination Portal to spend the tokens in `route.tokens`.
3. Submit `fulfill` or `fulfillAndProve` with the intended source-chain reward claimant.
4. Check the confirmed receipt and `IntentFulfilled` event.
5. Arrange proof delivery through the intent's configured prover.

The Portal transfers destination **route tokens**, not source reward tokens, to its Executor. A reverted fulfillment transaction consumes gas but does not record a completed fulfillment.

## Withdraw and monitor

Once the source prover exposes a valid claimant and destination, call `withdraw` through the source Portal. `batchWithdraw` accepts several rewards in one transaction. Monitor each reward until the withdrawal is confirmed; destination fulfillment and source settlement are separate milestones.

For eligible same-chain intents, [Flash Intents](/routes/capabilities/flash-intents) can use the intent's vaulted reward during fulfillment.

## Troubleshooting

| Symptom | Check |
| - | - |
| Registration rejected | Signed headers and the current registration schema agreed with Eco |
| No supported quotes | Route configuration, request decoding, available inventory, and pricing constraints |
| Fulfillment reverts | Deadline, Portal address, route hash, approvals, native value, and target call errors |
| Reward unavailable | Source-chain proof, prover domain configuration, and reward state |
| Duplicate events | Existing intent state before retrying work |

## Next steps

Read [Portal](/routes/architecture/portal), [Provers](/routes/architecture/provers/overview), and [Contract addresses](/resources/contract-addresses).
