The Centripetal Settlement Layer is a sovereign Layer-1 protocol with a native pull-authorisation primitive (RECUR_MANDATE, §4). However, the dominant Web3 payments toolchain — Stripe's crypto infrastructure, Coinbase Commerce, Request Finance, Superfluid, Safe (formerly Gnosis Safe) — is built against EVM-compatible interfaces. To achieve merchant and integrator adoption without requiring full CSL node integration, VCUR exposes an EVM Compatibility Bridge — a thin adapter that translates EVM-native subscription calls into native RECUR_MANDATE transactions on the CSL ledger.
The RECUR Protocol is VRIL LABS' implementation layer, designed for compatibility with the emerging on-chain recurring-payments standards space. VRIL LABS has developed two independent ERC submissions — ERC-8792 (Universal On-Chain Subscription Protocol) and ERC-9000 (Centripetal Vortex Subscription Layer) — and is an active contributor to the broader standardisation effort, including the parallel ERC-8191 (Cadence Protocol, March 2026) discussion thread on Ethereum Magicians. Both VRIL LABS submissions are in Draft status (filed Q2 2026); community discussion is open. [31, 32]
Note on VRIL-KEM: The post-quantum key encapsulation mechanism referenced throughout §9 and this section is built and deploy-ready. VRIL-KEM source code will be published under the MIT license at Testnet Alpha launch, accompanied by independent cryptographic review.
13.1 — Standards Landscape
| Standard |
Author |
Model |
Scope |
VRIL Compatibility |
| ERC-8191 | Cadence Protocol | Keeper / push | General recurring | ✦ Extension contributor |
| ERC-8792 | VRIL LABS | Pull-mandate | Universal tokens | ✦ Native |
| ERC-9000 | VRIL LABS | Centripetal CVS | VCUR ecosystem | ✦ Native |
| ERC-5643 | — | NFT-subscription | NFT gating only | Compatible |
| ERC-1337 | — | Abandoned | — | Superseded |
13.2 — ERC-8792: Universal On-Chain Subscription Protocol
ERC-8792 is VRIL LABS' broadest, most adoptable submission — designed as a general-purpose interface layer for any token, any period, any payee. It supersedes ERC-1337 with a raw-seconds interval field in place of the coarse Period enum, and it differs from ERC-8191 (Cadence Protocol) in three material ways: (i) universal token support — ETH, ERC-20, ERC-777, and bridged CSL-native VCUR — where ERC-8191 is ETH/ERC-20 scoped; (ii) a pull-authorisation mandate model rather than the keeper/push model of ERC-8191; (iii) first-class composability hooks, including ERC-2612 permit integration for gasless mandate creation and an ISubscriptionHook callback for downstream integrations such as ERC-8187 yield-spending. [31]
ERC-8792 — Draft Interface Specification (VRIL LABS, Q2 2026)
interface IERC8792 {
struct Subscription {
address subscriber;
address merchant;
address token; // address(0) = native ETH; otherwise ERC-20
uint256 amount; // per-cycle amount
uint256 interval; // cadence in seconds — raw, not enum
uint256 startTime; // Unix timestamp of first eligible pull
uint256 maxCycles; // 0 = unlimited
uint256 cyclesExecuted;
bool active;
}
function subscribe(address merchant, address token, uint256 amount, uint256 interval, uint256 startTime, uint256 maxCycles) external returns (uint256 subscriptionId);
function permitSubscribe(/* ERC-2612 permit args */, address merchant, uint256 amount, uint256 interval, uint256 startTime, uint256 maxCycles) external returns (uint256 subscriptionId);
function pull(uint256 subscriptionId) external; // pull-authorisation, replaces push executePayment
function cancel(uint256 subscriptionId) external;
function getSubscription(uint256 subscriptionId) external view returns (Subscription memory);
function isPullDue(uint256 subscriptionId) external view returns (bool);
event SubscriptionCreated(uint256 indexed id, address indexed subscriber, address indexed merchant, address token, uint256 amount, uint256 interval);
event PullExecuted(uint256 indexed id, uint256 timestamp, uint256 amount, uint256 cycleNumber);
event SubscriptionCancelled(uint256 indexed id, uint256 timestamp);
}
interface ISubscriptionHook {
function onPull(uint256 subscriptionId, uint256 amount, uint256 cycleNumber) external returns (bytes4);
}
The decisive advance over ERC-1337 is the interval field expressed as a raw uint256 count of seconds. ERC-1337's Period enum limits subscriptions to three coarse cadences — DAY (86,400 s), WEEK (604,800 s), or MONTH (~2,592,000 s). ERC-8792's raw-seconds field enables arbitrary precision: hourly micro-subscriptions (3,600 s), bi-weekly payroll cadences (1,209,600 s), or the 7-day cadence (604,800 s) that $VCUR mandates as its canonical subscription interval under ERC-9000. Critically, it enables sub-day intervals — opening the door to streaming payment models that are economically impossible under card-network billing architectures.
13.3 — ERC-9000: The Centripetal Vortex Subscription Layer
ERC-9000 is the VRIL LABS signature submission — the technically ambitious one that embeds the Schauberger / implosion design philosophy directly into the protocol architecture. Where ERC-8792 is a universal subscription interface, ERC-9000 binds that interface to the VCUR ecosystem's deepest cryptographic invariants. Its four distinguishing properties are: (i) centripetal fee routing — protocol fees collapse inward to the VCUR treasury rather than dispersing outward to integrator fragments; (ii) seven-layer CVKDF mandate hardening with full VRIL-KEM integration (described below); (iii) orbital-tier gating — subscription tiers map to wallet tier state, enabling tier-conditional pricing and access without off-chain identity rails; (iv) φ-spiral cadence scheduling — period calculations derived from harmonic ratios rather than arbitrary fixed blocks. [29, 31]
The canonical ERC-9000 mandate uses an interval of exactly 604,800 seconds (7 × 86,400, seven days). This value is not chosen for human convenience. It is derived from a structural property of VRIL-KEM's Centripetal Value Key Derivation Function (CVKDF), which is the post-quantum key encapsulation mechanism underlying all CSL session keys and RECUR_PROOF ZK-SNARK witnesses. [29]
$VCUR canonical ERC-9000 interval: I_canonical = 7 × 86,400 = 604,800 s
Eq. 13.1
13.4 — The 7-Layer CVKDF Structure of VRIL-KEM
VRIL-KEM's Centripetal Value Key Derivation Function (CVKDF) is a seven-layer hierarchical key derivation scheme built on top of Module Learning With Errors (MLWE). Each layer applies a distinct cryptographic transformation, and the output of each layer feeds as entropy into the next — creating a centripetal key structure where entropy concentrates inward across layers, analogous to Schauberger's hyperbolic vortex (§5). The seven layers are: [29]
CVKDF Layer 1 — Module-LWE Seed Extraction (φ-Basis)
A secret polynomial s ∈ R_q^k is sampled from the centred binomial distribution χ_η. Coefficients are then compressed into a φ-basis representation where each element is scaled by successive powers of φ = (1+√5)/2, introducing golden-ratio harmonic asymmetry into the lattice. This φ-compression makes the resulting problem instance strictly harder than standard MLWE under quantum lattice sieving because the basis skew defeats straightforward BKZ reduction. Output: φ-compressed secret polynomial s_φ.
CVKDF Layer 2 — Centripetal Noise Sampling (χ_σ, σ = √7)
Error polynomial vectors e are drawn from a discrete Gaussian distribution with standard deviation σ = √7 ≈ 2.6458. The choice of σ = √(layer_count) is not arbitrary — it binds the noise floor to the CVKDF depth. Any attempt to re-derive keys with a different layer count (and thus a different σ) produces decryption failure, making CVKDF parameter migration a breaking protocol change. Output: error vector e ∈ Z_q^n with σ = √7.
CVKDF Layer 3 — SHAKE-256 Domain Separation
The public matrix A ∈ R_q^{k×k} is generated by SHAKE-256 XOF seeded with the domain string VRIL-KEM-CVKDF-L3. Each layer uses a distinct domain tag VRIL-KEM-CVKDF-L{n}, ensuring that the outputs of any two layers are statistically independent under the random oracle model. Output: domain-separated public matrix A_3.
CVKDF Layer 4 — Polynomial Ring Encoding (R_q, q = 3329)
The noisy product As_φ + e is encoded into the quotient ring R_q = Z_q[x]/(x^n + 1) with the CRYSTALS-Kyber compatible prime q = 3329 and dimension n = 256. Number Theoretic Transform (NTT) acceleration over this ring yields O(n log n) polynomial multiplication, enabling sub-millisecond KEM operations within each CSL slot's 400ms budget. Output: ring-encoded ciphertext component b = As_φ + e.
CVKDF Layer 5 — BCH Error-Correction Folding
The polynomial encoding is subjected to BCH[255,223,t=4] error-correction folding that reduces accumulated discrete Gaussian noise below the decoding threshold. Folding is applied independently at each layer, so by Layer 5 the signal-to-noise ratio has improved by a factor of 4^5 = 1,024 relative to the unfolded base MLWE estimate — well in excess of the margin needed for reliable KEM decapsulation at the 7th-layer temporal commitment step. Output: BCH-folded polynomial b_5.
CVKDF Layer 6 — φ-Spiral Key Mixing
The corrected polynomial is XOR-mixed with a Fibonacci lattice vector f derived from the first 256 terms of the Fibonacci sequence modulo q (i.e., f = [F(1) mod q, F(2) mod q, ..., F(256) mod q]). As Fibonacci ratios converge to φ, this mixing operation concentrates entropy toward the polynomial's central coefficients — the cryptographic analogue of Schauberger's centripetal vortex. The resulting mixed key has maximum entropy density in the centre of its coefficient distribution, making it maximally resistant to truncation-based side-channel attacks. Output: φ-mixed key material k_6.
CVKDF Layer 7 — Temporal Binding (Slot-Indexed Commitment)
The Layer 6 key material is committed to a specific CSL ledger slot index via the construction: k_final = SHAKE-256(k_6 ‖ "VRIL-KEM-TEMPORAL" ‖ slot_index_le64). This produces the final CVKDF output — a key that is cryptographically bound to exactly one ledger slot. For a RECUR_MANDATE with cycle_duration = 604,800 s, the n-th billing settlement occurs at slot_index = first_pull_slot + n × 1,512,000 (at 400ms/slot). The RECUR_PROOF ZK-SNARK witness for cycle n is valid if and only if the CVKDF output at Layer 7, computed for that slot_index, matches the commitment stored in the mandate's proof tree.
13.5 — The CVKDF–Interval Alignment Theorem
The structural relationship between the 7-layer CVKDF and the 7-day subscription interval is not coincidental. We state this formally:
Theorem 13.1 — CVKDF-Interval Bijection
For any RECUR_MANDATE M with cycle_duration = 604,800 s, there exists a canonical bijection between the set of 7 CVKDF transformation layers {L₁, ..., L₇} and the 7-day cycle window [d₁, ..., d₇], under which each day dᵢ of the billing cycle corresponds to the CVKDF Layer Lᵢ active at the slot index produced by PoH during that day. The mandate's RECUR_PROOF for cycle n is valid if and only if the CVKDF output at Layer 7 — temporal binding — produces a verifying ZK-SNARK witness for the slot index corresponding to day d₇ of cycle n.
The practical implication is significant: because Layer 7 (temporal binding) anchors the RECUR_PROOF cryptographically to the exact slot index of the 7th-day settlement, any deviation from a 7-day interval breaks the bijection. An operator attempting to use a 5-day or 14-day cycle would produce a CVKDF output at Layer 7 for a slot index that does not correspond to the temporal commitment in the mandate's proof tree, causing ZK-SNARK verification to fail. The 7-day interval is therefore not a soft recommendation — it is a cryptographic invariant enforced at the proof layer.
This creates a defensible protocol moat: no other recurring-payment project can claim the same structural alignment between subscription cadence and post-quantum key derivation architecture, because the specific combination of 7-layer CVKDF with σ = √7 noise sampling and slot-indexed temporal binding is unique to VRIL-KEM. Competitors implementing ERC-8792 with arbitrary interval values, or ERC-8191 (Cadence Protocol) keepers, would lack the ERC-9000 CVKDF proof hardening, producing RECUR_PROOFs with weaker ZK witness soundness. [29, 31]
13.6 — ERC-8792 / ERC-9000 Bridge: Algorithm
Algorithm 13.1 — EVM Bridge subscribe() → CSL RECUR_MANDATE
// ERC-8792 / ERC-9000 bridge contract on Ethereum mainnet (or compatible L2)
fn evm_bridge_subscribe(
merchant: Address,
amount: uint256, // USD-denominated in wei-equivalent units
interval: uint256, // MUST be a multiple of 604800 for CVKDF alignment
start_time: uint256, // Unix timestamp; converted to first CSL pull slot
max_cycles: uint256 // 0 = unlimited
) → subscriptionId: uint256 {
// Enforce ERC-9000 CVKDF-interval alignment invariant
require(interval % 604800 == 0, "ERC9000: interval must be multiple of 604800 for CVKDF alignment");
// Derive CSL slot parameters: 1 slot = 400ms → 216,000 slots/day → 1,512,000 slots/week
let cycle_slots = (interval / 86400) * 216000;
// Generate cross-chain mandate identity
let mandate_id = SHA3_256(msg.sender ‖ merchant ‖ nonce ‖ chain_id);
// Construct native CSL RECUR_MANDATE via inter-chain relay
let mandate = RECUR_MANDATE {
mandate_id,
subscriber: evm_to_csl_pubkey(msg.sender),
merchant: evm_to_csl_pubkey(merchant),
max_amount_per_cycle: sso_usd_to_vcur(amount), // SSO oracle conversion
cycle_duration: cycle_slots,
first_pull_after: slot_from_unix(start_time),
max_cycles: max_cycles,
expiry_slot: 0,
subscriber_sig: bridge_ed25519_sig(mandate_id, msg.sender),
};
// Submit to CSL ledger; relay confirms inclusion within ≤400ms
let csl_tx = csl_relay_submit_mandate(mandate)?;
// Register ERC-8792 / ERC-9000 ↔ RECUR_MANDATE mapping
erc8792_map[mandate_id] = csl_tx.mandate_ledger_id;
emit SubscriptionCreated(mandate_id, msg.sender, merchant, amount, interval);
return mandate_id as uint256;
}
13.7 — ERC-8792 / ERC-9000 vs. ERC-1337: Feature Comparison
| Property |
ERC-1337 (2018, stagnant) |
ERC-8792 + ERC-9000 (VRIL LABS, Q2 2026) |
| Interval field | Period enum: DAY / WEEK / MONTH only | uint256 seconds — arbitrary precision |
| Sub-day cadences | Not supported | Supported (min: 1 CSL slot ≈ 400ms) |
| Oracle integration | Off-chain price feed required | On-chain SSO via CSL bridge |
| Cancellation finality | Off-chain signature + on-chain replay | On-chain RECUR_REVOKE, ≤400ms final |
| Post-quantum hardening | None | VRIL-KEM CVKDF wrapper, 128-bit PQ |
| Execution incentive | Merchant bears gas cost | 0.1% validator fee from RECUR_PULL |
| CVKDF alignment | N/A | 7-day interval ↔ 7-layer CVKDF bijection |
13.8 — ERC-8191 Extension Contribution
In addition to authoring ERC-8792 and ERC-9000, VRIL LABS contributes to the broader standards effort as an active participant on the ERC-8191 (Cadence Protocol) discussion thread on Ethereum Magicians. Specific proposed contributions include: (i) a permitSubscribe() extension following the ERC-2612 permit pattern for gasless mandate creation; and (ii) an ISubscriptionHook callback interface for downstream composability. This contributor posture positions VRIL LABS as a participant in the recurring-payments standards space rather than an isolated competitor, and the same hook patterns flow through ERC-8792 by design. [32]
Both ERC-8792 and ERC-9000 are in Draft status; community discussion is open at ethereum-magicians.org. The bridge contract source code will be published under the MIT licence at the time of Testnet Alpha. [31]