# For builders (https://docs.helico.site/docs/builders)

The repository, how to run the whole flow on a fork, and where each piece lives.

Everything is in [one repository](https://github.com/0xHelico/helico): the contract, the two packages, the runnable CRE
project, the landing, the blog API, the plans written before the code, and the log of AI
assistance.

| Directory                   | What                                                          |
| --------------------------- | ------------------------------------------------------------- |
| `contracts/`                | `HelicoVault` and its tests, Foundry                          |
| `packages/plugins/uniswap/` | Uniswap v4 on chain, `@helico/plugin-uniswap`                 |
| `packages/plugins/cre/`     | the Chainlink CRE confidential workflow, `@helico/plugin-cre` |
| `apps/cre/`                 | what the CRE CLI compiles and simulates, and `rehearse.sh`    |
| `apps/landing/`             | helico.site, Astro                                            |
| `apps/be/`                  | the blog API, Go and SQLite                                   |
| `docs/plans/`               | implementation plans, written before the code                 |

## Run the whole flow
You need `bun`, Foundry (`anvil`, `cast`, `forge`), the `cre` CLI, and `jq`.

```bash
git clone https://github.com/0xHelico/helico && cd helico
bun install
cp apps/cre/.env.example apps/cre/.env
cd apps/cre && ./rehearse.sh
```

About two minutes. It forks Arbitrum One, deploys the vault onto the fork, mints a position
that has drifted below the market, commits a mandate, and runs the workflow twice. The first
run re-centres the position and reads it back; the second holds on the cooldown.

> **warn:** That proves the delivery path and the vault's execution. It does not prove authorisation by a
decentralised oracle network: the simulator is not a TEE, and the mock forwarder verifies no
signatures. Only the position moving counts as evidence; a transaction hash on this path does
not, because the forwarder swallows a revert and still reports success.

## The tests
```bash
cd contracts && ARBITRUM_RPC_URL=https://arb1.arbitrum.io/rpc forge test   # 100, 11 on the fork
bun run --filter @helico/plugin-cre test                                     # 116
bun run --filter @helico/plugin-uniswap test                                 # 52
```

Counts as of 2026-09-06; the commands print the current ones. CI leaves the RPC unset, so the
fork suite reports `SKIP` there rather than a green tick for tests that did not run.

## Read next
[Contracts](https://docs.helico.site/docs/contracts), [Chainlink CRE](https://docs.helico.site/docs/chainlink-cre),
[Uniswap plugin](https://docs.helico.site/docs/uniswap-plugin), [Backend API](https://docs.helico.site/docs/backend-api),
[Evidence](https://docs.helico.site/docs/evidence).
