{"skill":{"slug":"evk-live-borrow-proof","displayName":"Evk Live Borrow Proof","summary":"Prove that a deployed Euler EVK market can really borrow against the intended collateral path with tiny live canaries or dry-run previews. Use when an agent...","description":"---\nname: evk-live-borrow-proof\ndescription: Prove that a deployed Euler EVK market can really borrow against the intended collateral path with tiny live canaries or dry-run previews. Use when an agent needs to validate EVK borrowability on an EVM chain after deployment, especially for cross-vault share-token collateral, isolated collateral proofs, controller or collateral rotation in EVC, debt repayment cleanup, or adapting a known Arbitrum proof flow to other assets and chains.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - borrow-proof-config.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# EVK Live Borrow Proof\n\nTurn a successful one-off borrow probe into a repeatable agent workflow.\n\nThis skill is for proving actual borrowability onchain, not just showing that a vault deployed or that an oracle route exists on paper.\n\n## Safety expectations\n- default to preview mode first\n- only use live signer-backed execution when the user explicitly asks for it\n- require both `--live` and the config's guarded live-send acknowledgement field before any transaction is sent\n- require the configured proof account address to match the signer address before any live proof transaction is sent\n- keep signer material in environment variables or local runtime config, never in committed files\n- require explicit nonzero swap protection for every live swap\n- require explicit opt-in before using unlimited approvals\n\n## Read next\n1. `references/live-borrow-checklist.md`\n2. `references/arbitrum-eusdc1-isolated-example.json` when you want a concrete config shape\n3. Run `node scripts/evk_live_borrow_proof.js --help` for the bundled executor\n\n## Default workflow\n1. Normalize the proof target.\n   Capture:\n   - chain and RPC URL\n   - wallet address and signer env name\n   - borrow vault\n   - target collateral vault\n   - borrow asset and collateral asset\n   - EVC address\n   - tiny borrow amount\n   - any stale controllers or stale collaterals that must be disabled first\n   - whether collateral is already in the wallet or needs a swap path\n\n2. Check the acceptance criteria before touching live state.\n   Confirm all of these are true:\n   - the borrow vault oracle can quote the intended collateral vault share token into the borrow vault unit of account\n   - the borrow vault has enough cash for the tiny canary borrow\n   - the borrow vault has the required LTV link for the target collateral vault\n   - the account can rotate EVC controller and collateral state cleanly\n\n3. Use preview mode first.\n   Run the bundled executor without `--live` so the agent can inspect:\n   - current debt\n   - wallet balances\n   - enabled collaterals\n   - vault cash\n   - planned approvals, swaps, collateral rotation, and borrow\n\n4. Run live only after the preview is sane and the user has asked for a real canary.\n   Keep amounts tiny.\n\n5. Report what was actually proven.\n   Always distinguish between:\n   - mixed-collateral borrow\n   - isolated target-collateral borrow\n   - quoteability only\n   - full live borrow success\n\n## Bundled executor\nUse `scripts/evk_live_borrow_proof.js`.\n\nIt supports:\n- preview mode with a read-only account address\n- live mode with a signer loaded from an environment variable\n- optional debt repayment before the new proof\n- optional single-hop Uniswap V3 style swaps to source repay or collateral assets\n- collateral deposit into the target EVK vault\n- disabling stale collateral vaults in EVC\n- disabling stale controllers in EVC\n- enabling the target collateral and optionally the target controller\n- final tiny borrow and before/after logging\n\n## Generalization rules\n- Do not hardcode Arbitrum, WETH, USDC, `eWETH-11`, or `eUSDC-1`. Treat them as an example only.\n- Treat router address, fee tier, wrapped native token, token decimals, EVC address, and vault addresses as per-chain inputs.\n- If the collateral asset is already in the wallet, skip the swap and deposit directly.\n- If the borrow asset used for repayment is not already in the wallet, either source it first or configure `repaySwap`.\n- If the chain does not use a Uniswap V3 compatible router, do not pretend the bundled swap path is portable. Replace or bypass that step explicitly.\n- If the proof must show isolation, disable the old collaterals first and report the final enabled collateral set.\n\n## Non-negotiable EVK lessons\n- A deployed market is not proven borrowable until a real borrow succeeds.\n- Cross-vault borrowing depends on the borrow vault oracle pricing the collateral vault share token, not just the underlying asset.\n- Controller state and collateral state in EVC are separate concerns. Check both.\n- Preview mode is useful, but it is not a substitute for a live canary.\n\n## Output expectations\nAlways report:\n- chain and account used\n- preview or live mode\n- borrow vault and collateral vault\n- whether old debt was repaid first\n- whether the target collateral path was isolated\n- before and after debt\n- before and after enabled collaterals\n- collateral vault balance after deposit\n- vault cash and liquidity snapshot before borrow\n- tx hashes for live operations\n- what remains unproven or chain-specific\n\n## If deployment is still missing\nIf the user is not yet at the live-proof stage and still needs a borrowable EVK market, switch to the `agentic-lending-evk` skill first, especially for share-aware router deployment work.\n","topics":["Deployment"],"tags":{"latest":"0.1.3"},"stats":{"comments":0,"downloads":337,"installsAllTime":12,"installsCurrent":1,"stars":0,"versions":4},"createdAt":1777391842804,"updatedAt":1778492785447},"latestVersion":{"version":"0.1.3","createdAt":1778069544283,"changelog":"Bundle the executor properly, align metadata with the clean EVK skill contract, and require explicit live swap protection plus opt-in unlimited approvals.","license":"MIT-0"},"metadata":{"setup":[{"key":"LIVE_SIGNER_ENV","required":true},{"key":"borrow-proof-config.json","required":true}],"os":null,"systems":null},"owner":{"handle":"daav3","userId":"s176sa2svdwgks5ycz1yngewb184yand","displayName":"dave","image":"https://avatars.githubusercontent.com/u/49767509?v=4"},"moderation":null}