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"
]
}