Proof Cycle mark Proof Cycle
read at block {{ liveBlockStr }}
day count {{ progDayStr }}
{{ ctaNav }}
Gate 017·Day 17·NEAR function call

Solve today’s gate.

Craft the proof. Watch the state flip.

Check lamp: oxide red and granted green lens in a milled steel ring
Day count · bench preview
0
1
2
3
4
5
6
7
8
9
{{ demoStatus }}
Gate 017 frame on a steel rail with five call plates half-seated and the check lamp glowing oxide red
GATE 017 · RAIL POS {{ railPos }} {{ sceneBadge }}
move the pointer to tilt the frame
Seat wheel{{ demoSeatedStr }}
Drag clockwise. Each quarter-plus turn seats one plate.
Dry-run trace
tx {{ demoTypedShown }}▌
Call order
{{ r.n }} {{ r.label }} {{ r.value }}
Next gate deploys in
{{ cdNext }}
Gate 017 open for
{{ cdOpen }}
{{ latchLabel }}
01 / 00:00 UTC

One gate a day

At 00:00 UTC a new gate contract deploys. Its view method check(args) defines what passes. Build the call, dry-run it, then sign it. When check returns true, the lamp turns green and your day counter advances.

{{ f.t }}
02 / the keyed slot

Five plates, one call

Receiver, method, args, gas, deposit. Each field is a plate in the slot. Leave one wrong and the lamp stays red, and the dry-run tells you which plate failed.

{{ p.n }} {{ p.label }} {{ p.value }}
Bench conditions · the chain the gates live on
{{ chainLogo.mono }}

{{ chainName }}

{{ t.label }} {{ t.value }} {{ t.src }}
Top pools by volumeapi.geckoterminal.com/…/near/pools · {{ snapAt }}
{{ p.base.mono }} {{ p.quote.mono }}
{{ p.name }} ↗
{{ p.dex.mono }} {{ p.dex.name }}· {{ p.base.sym }} {{ p.base.sym }} / {{ p.quote.sym }} {{ p.quote.sym }}
pricevol 24hreserve {{ p.price }}{{ p.vol }}{{ p.reserve }}
{{ topShownStr }}
New poolsapi.geckoterminal.com/…/near/new_pools · {{ snapAt }}
{{ p.base.mono }} {{ p.quote.mono }}
{{ p.name }} ↗ {{ p.dex.mono }}{{ p.dex.name }} · created {{ p.age }}
vol {{ p.vol }}reserve {{ p.reserve }}{{ p.txns }}
sources {{ s.txt }} {{ chainSrcLabel }}
gate 017 · closes {{ cdNextLong }}

Four steps to check() = true

Choose the contract, craft the call, verify the proof, confirm the grant. The dry-run is free and tells you exactly which plate is wrong.

A receipt strip feeding from a granted gate frame, green lamp lit
receipt printed · GATE 016 · GRANTED · DAY 16
step 01 / 04

Choose contract

One gate is open per UTC day. Earlier gates sit on the rail with their receipts; tomorrow’s is not deployed yet.

{{ gateMsg }}
gate-017.proofcycle.near · source
// deployed 00:00 UTC · day 17
impl Gate {
pub fn check(&self, day: u32, key: u32) -> bool {
day == 17 && (key * 7 + day) % 31 == 0
}
#[payable]
pub fn submit(&mut self, day: u32, key: u32) {
require!(env::prepaid_gas() >= Gas::from_tgas(30));
require!(env::attached_deposit() == NearToken::from_millinear(17));
require!(self.check(day, key), "DENIED");
self.grant(env::predecessor_account_id());
}
}
step 02 / 04 · gate 017

Craft call

Set each plate. The dry-run in the next step checks them in call order and stops at the first one that fails.

01 · Receiver
02 · Method
{{ k.label }}{{ k.sub }}
{{ k.display }}
Function call · as it will be signed
{
"receiver_id": "{{ jReceiver }}",
"method_name": "{{ jMethod }}",
"args": {{ jArgs }},
"gas": "{{ jGas }}",
"deposit": "{{ jDep }}"
}
{{ craftErr }}
step 03 / 04 · dry-run, nothing signed

Verify proof

view gate-017.proofcycle.near check(day, key) · simulated
{{ r.n }} {{ r.label }} {{ r.value }} {{ r.msg }}
check() = false · {{ failMsg }}
check() = true · all five plates pass call digest {{ proofDigest }}
step 04 / 04 · review before signing

Confirm grant

{{ r.label }} {{ r.value }}
Turn one full revolution to sign Drag the wheel clockwise, or focus it and press → four times. Signing is simulated on this page; nothing is broadcast. {{ signPctStr }}
gate 017 · signed {{ rcpAt }}

{{ cerTitle }}

plates seated {{ cerSeatStr }} {{ cerOkText }} tx {{ cerTyped }}▌ {{ dayNote }}
GATE 017 · GRANTED · DAY 17 receiver gate-017.proofcycle.near method submit {{ jArgs }} gas {{ gasStr }} · deposit {{ depStr }} NEAR tx {{ rcpFull }} signed {{ rcpAt }} Simulated in this browser. Nothing was broadcast.
Share card: receipt strip feeding from a granted gate
GATE 017 · GRANTED · DAY 17tx {{ rcpShort }}
Share on X Back to the rail
How it works

One gate per UTC day

Proof Cycle is a daily contract puzzle on NEAR. Each gate is a small contract with one view method, check(args). You compose a function call that makes it return true, dry-run it against the gate, then sign it. The lamp above the slot reports the result.

Gate 017 frame with five call plates half-seated
{{ c.n }} {{ c.t }} {{ c.d }}

Anatomy of the call · gate 017

{{ a.n }} {{ a.label }} {{ a.field }} {{ a.rule }}
Check lamp

The check lamp

Denied. check() = false. The dry-run names the first plate that failed and why.
Granted. check() = true. The day count advances by one and the receipt is printed.
Receipt strip feeding from a granted frame

The rail

Granted frames slide one position down the rail and carry their printed receipts. One frame per day, each with its tx hash.

What is real on this site

Gate contracts, calls and receipts are illustrative and run in your browser. The chain figures on the overview come from a snapshot of NEAR Protocol taken at block {{ snapBlock }} ({{ snapAt }}); the live block head is read every six seconds from free.rpc.fastnear.com and hidden whenever that read fails.