Vault Rebalanceactive
Rebalances an EVM-side vault to target weights. Demo custom hook showing an allowlisted, spend-capped integration.
vault.rebalance.v1v1.3.0Baseby Demo author: keeper-vaults
Executions · 7d23
Success rate95.7%
Median latency26.4s
Calling apps1
Interface
REBALANCE
15–25s to receiptMove the vault to the provided target weights within a slippage bound.
Inputs
| vault | address | Vault address. |
| weights | uint16[] (bps) | Target weights summing to 10,000. |
| maxSlippageBps | uint16 | Abort above this slippage. |
Outputs
| executed | bool | Whether the rebalance ran. |
example payload
{
"vault": "0x51c2e7a0b9d3f6e14a8c7b2d09e3f5a6c1d4b7e8",
"weights": [
6000,
3000,
1000
],
"maxSlippageBps": 30
}Usage
@wormhook/sdkvault-rebalance.ts
import { WormHookClient } from "@wormhook/sdk";
const client = new WormHookClient({ network: "devnet", appId: YOUR_APP_ID });
const call = await client.prepareCall({
hookId: "vault.rebalance.v1",
action: "REBALANCE",
payload: {
"vault": "0x51c2e7a0b9d3f6e14a8c7b2d09e3f5a6c1d4b7e8",
"weights": [
6000,
3000,
1000
],
"maxSlippageBps": 30
},
maxSpend: "5000", // ≤ per-call cap (5000 USDC)
ttl: 900,
});
const execution = await client.simulate(call);
const receipt = await execution.waitForReceipt();Registration
- hook id
- vault.rebalance.v1
- version
- 1.3.0
- destination
- Base
- permissions
- Allowlist
- spend cap
- 5000 USDC / call
- author
- Demo author: keeper-vaults0xfe49f0…fa5a
Routes
- Solana→Baseenabled
- Wormhole 1 → 30 · receipt returns on the same route
Adapter
- kind
- Custom
- contract
- VaultAdapter0x57e3fb…f054
IWormHookAdapter.solconceptual
// Conceptual: final interface is defined in phase 2 (CORE_TECH_PLAN.md §Adapters)
interface IWormHookAdapter {
function execute(
bytes32 callId,
bytes calldata payload
) external returns (bytes memory output);
}Source & audit
- repository
- github.com/example/vault-hooks (demo)
- commit
- 77de1c3
- audit
- not audited
Risk notes
- Third-party hook. WORMHOOK does not review custom hook logic.
- Not audited.
Versions
- 1.3.0current2026-09-22Slippage bound per call.
- 1.2.02026-08-14Three-asset vaults.
Allowlisted apps
Execution history
latest 10| Status | Call ID | Hook | Route | Created | Latency | Receipt |
|---|---|---|---|---|---|---|
| Rejected | 0x6bf36e…61a2#17444 · delivery 2 | vault.rebalance.v1REBALANCE | SOL→BASE | 55m ago | 17.7s | none |
| Success | 0x6bf36e…61a2#17444 | vault.rebalance.v1REBALANCE | SOL→BASE | 1h ago | 27.8s | ✓ returned |
| Success | 0x7fba4b…567c#17411 | vault.rebalance.v1REBALANCE | SOL→BASE | 17h ago | 25.4s | ✓ returned |
| Success | 0x13ef90…18bc#17407 | vault.rebalance.v1REBALANCE | SOL→BASE | 24h ago | 27.4s | ✓ returned |
| Success | 0x58424f…9781#17435 | vault.rebalance.v1REBALANCE | SOL→BASE | 26h ago | 28.1s | ✓ returned |
| Success | 0xddc9ec…1eff#17404 | vault.rebalance.v1REBALANCE | SOL→BASE | 32h ago | 26.5s | ✓ returned |
| Success | 0xec3753…86e3#17408 | vault.rebalance.v1REBALANCE | SOL→BASE | 37h ago | 23.2s | ✓ returned |
| Success | 0x1b8525…432a#17424 | vault.rebalance.v1REBALANCE | SOL→BASE | 2d ago | 24.6s | ✓ returned |
| Success | 0x1b4e12…895b#17438 | vault.rebalance.v1REBALANCE | SOL→BASE | 2d ago | 27.9s | ✓ returned |
| Success | 0x198504…9fef#17414 | vault.rebalance.v1REBALANCE | SOL→BASE | 2d ago | 25.2s | ✓ returned |
- Rejected55m agovault.rebalance.v1SOL→BASE0x6bf36e09…2e61a2 · #1744417.7s
- Success1h agovault.rebalance.v1SOL→BASE0x6bf36e09…2e61a2 · #1744427.8s
- Success17h agovault.rebalance.v1SOL→BASE0x7fba4b59…43567c · #1741125.4s
- Success24h agovault.rebalance.v1SOL→BASE0x13ef9044…a418bc · #1740727.4s
- Success26h agovault.rebalance.v1SOL→BASE0x58424f15…059781 · #1743528.1s
- Success32h agovault.rebalance.v1SOL→BASE0xddc9ecd4…b01eff · #1740426.5s
- Success37h agovault.rebalance.v1SOL→BASE0xec37531d…0286e3 · #1740823.2s
- Success2d agovault.rebalance.v1SOL→BASE0x1b85257f…15432a · #1742424.6s
- Success2d agovault.rebalance.v1SOL→BASE0x1b4e1220…33895b · #1743827.9s
- Success2d agovault.rebalance.v1SOL→BASE0x19850441…ec9fef · #1741425.2s