Governance

The router holds no admin key. Every parameter it reads (whether it is paused, how many steps a plan may have, what the fee is, which targets are denied) belongs to the governor, and the governor moves only by a vote that has cleared a timelock.

governor 0x05bd98…6984 · router 0x008498…3a7e

What the router is running on

Read from the governor at block 14,239,282. The router asks for these on every single plan, so this is not a mirror of the settings. It is the settings.

paused
no
max steps
8
max calldata
64 felts per step
fee
0 bps, nothing is taken
fee recipient
0x129478…73ca
voting window
2,000 blocks
timelock
500 blocks after voting closes

The voting window and the timelock above are measured, not configured here: subtracted from a real proposal's own blocks. Quorum cannot be shown, because the governor stores it and exposes no view for it. A governance parameter nobody can read is a governance parameter nobody can check, and that is our omission rather than the protocol's. It is enforced at execution, so a proposal below can look ready and still fail on it.

Proposals (2)

Ballots do not arrive here. They arrive through the pool, as privacy_invoke — the governor is an anonymizer helper like the router is. So the weight of a vote is public and the voter is not, and the stake stays escrowed here until the vote closes, which is what stops one set of funds voting twice.

  • #2 · labelexecutable

    Say what a contract is, without deciding whether you may call it

    target
    0x8498d7…3a7e
    label
    JALIN_ROUTER
    for / against
    100000000000000000 / 0 · 100% for
    voting closed
    block 14,154,028
    executable from
    block 14,154,528

    Anyone may send this. It can still fail on quorum, which is enforced here and cannot be read first.

  • #1 · labelrejected · nobody voted

    Say what a contract is, without deciding whether you may call it

    target
    0x8498d7…3a7e
    label
    JALIN_ROUTER
    for / against
    0 / 0
    voting closed
    block 13,773,935
    executable from
    block 13,774,435

Stuck on the router

A plan must leave every token it touched at zero. Anyone can break that for a token by transferring it straight to the router, and every later plan touching that token then reverts — a denial of service costing the attacker one transfer. sweep is the way out: anyone may call it, and it sends to the fee recipient governance chose rather than to the caller, so calling it is never profitable.

Nothing stuck. Checked against the 6 tokens this app knows — a contract cannot enumerate its own balances and neither can this page, so a token it has never heard of would not show up here.

Propose something

Permissionless, and the one part of Jalin that works end to end today: proposing is an ordinary public transaction, so it needs no STRK20 wallet support and no proving service. Spam is answered by quorum rather than by a gate on who may speak — a gate would only move the admin key somewhere less visible.

up to 31 characters

the exact call this would send
{
  "contract_address": "0x05bd985e794aee4c12d529ab50a68e5a40c7e28a36642b2b8e2ccdb373346984",
  "entry_point": "propose",
  "calldata": [
    "0x4",
    "0x8498d79ca390b34a6416cc45fb375ad9b921eefd8d4531d99a2d775feb3a7e",
    "0x4a414c494e5f524f55544552",
    "0x0"
  ]
}