folvra

Project paper · local Demo

A voluntary connection.
Nothing implied.

Folvra is a small public wallet relationship primitive. A wallet can follow another address, or remove its own follow. It does not ask a basic record to become a social network.

What a follow records Illustrative example, not live data.
CallerWallet AChooses the connection
followsfrom A to B
TargetWallet BNo response required
A follows B
True
A's following count
1
B follows A
False · not automatic

Only the relationship changes. No value transfer or token allowance. A future onchain write uses network Gas.

A simple expression
of interest.

A wallet address can represent a point of interest without proving a person or claiming trust. Folvra makes that directional choice explicit: this caller follows that target. The target does not need to respond, consent to a mutual connection or create an account.

The project solves the narrow recording problem. It does not supply a feed, message delivery, moderation, recommendations or a verified identity system. Those would be separate products with separate privacy and operational needs.

One direction.
One current state.

The contract stores a boolean relationship for each caller–target pair and an outbound following count for each caller. Follow requires a non-zero target different from the caller and a relationship that is not already active. It sets that pair to true and increments the caller's count.

Unfollow requires an existing relationship from the caller to that target. It sets the pair to false and decrements the count. Duplicate follows and duplicate unfollows are rejected. There is no obligation for the target to follow back.

The current contract has no relationship version counter. The interface rereads current state before sending, but does not promise replay protection against an intervening unfollow/re-follow cycle. No stronger capability is invented in the website.

Your wallet is the caller.

The actor is always the transaction sender, not an author address entered into a form. Each caller controls only its own outbound relationships. A wallet cannot remove another wallet's follow by typing that other wallet into the interface.

The contract is immutable, with no privileged administrator, proxy or upgrade key. A future revision needs a separately reviewed address, clearly identified as a new version. Migration cannot rewrite historical events or silently redirect writes.

Read the prepared contract

No payment.
No allowance.

Follow and unfollow are nonpayable. There is no application fee, deposit, funds custody, token, reward, payout or token approval. A future deployed action would consume native network Gas. Merely connecting a wallet does not send an action.

Before a future wallet request, the interface shows the exact account, target, action, reviewed network and contract, estimated Gas, buffered Gas limit, fee cap and maximum estimated fee. It rechecks account/network/code/state/balance and binds the outgoing transaction to that reviewed chain.

A successful result must have a successful receipt matching the hash, sender and contract, plus the exact Followed or Unfollowed event for the selected caller and target. A changed or failed context invalidates the review.

Public does not mean verified.

The relationship state, counts and events can be public and persistent. An unfollow changes the current boolean; it does not erase public history. Other services may correlate a graph with other wallet activity.

No address proves a unique person, organization or safe counterparty. A follow is not an endorsement. This project promises neither privacy nor notifications, and it does not connect a private calendar, contact list or account database.

Prepared locally.
Not deployed.

The project includes this long website, an independent follow page, the same-project Solidity source, temporary-chain tests and an unsigned deployment preview. No public network, address or runtime hash is configured. All real reads, Gas estimates and writes are disabled.

The follow page offers a separate memory-only practice using labelled example wallets. It does not use a wallet, network, backend, persistent storage or Gas. Reloading or clearing removes its state. Practice success is never labelled as a chain receipt.

A future deployment requires a selected compatible network/RPC, verified public deployment account, bytecode and Gas/balance/nonce checks, and a specifically authorized controlled signer. The preview neither signs nor broadcasts; private keys do not belong in the website.

Read-only graph exploration could follow later. It is not current functionality. The project's X account is pending rather than replaced with another brand's account. Local tests are not an independent security audit.