An attribution rail for shared positions on Robinhood Chain
Every shared position carries an attribution key.
The trader who brings a trade into the light earns a share of the fee that trade creates. Spurline carries one identifier intact from the share to the venue's fee record — and holds nothing else.
The same key rides through every custody junction. Nothing is re-derived along the way.
Where attribution dies today
Between a trader publishing a position and a venue recording the fee it caused, the identity of the person who caused the trade is destroyed at one of five handoffs. The fee is always collected. It is never paid back.
- 1 · share_creationThe position is posted with no identifier attached.
- 2 · link_relayThe link is forwarded, screenshotted, quoted. Parameters fall off.
- 3 · surface_handoffSocial app to wallet. Session context does not follow.
- 4 · venue_executionThe venue executes without knowing who led here.
- 5 · fee_settlementThe fee lands in venue revenue. No row exists to split.
Mint
A wallet holding the position signs one mint message; the registry issues one opaque key and a link that carries it in the URL path.
Open
The link page binds the key to the follower's signing address, then hands off to the venue. Nothing is signed at Spurline.
Settle
Each attributed trade is one ledger row carrying the fee the venue actually collected; the sharer collects in the fee's own asset.
Trust by mechanism, not reassurance.
No custody. Nothing deployed in the execution path. No account system — the only identity is the self-custodied wallet that signed the mint. No wallet request is issued before its full scope is stated on the same screen.
Published rulesThree roles. One is paid today.
Opens the link, trades at the venue. Receives a verifiable mark of provenance.
How a key is verifiedExecutes the trade, records the fee. Receives an attributable fee event.
Integration tiersSharer · mint session
Mint a link
Connect the wallet holding the position
Spurline reads the wallet address and its token holdings on {{ netLabel }} through the public RPC and explorer. No approval, no signature yet. Your wallet will be asked to switch to (or add) the network.
Several wallets are installed. Choose one:
{{ walletError }}
{{ walletError }}
Choose one position
Reading balances from {{ netLabel }}…
This wallet holds nothing on {{ netLabel }} yet. Get test ETH and tokens from the faucet, then .
{{ positionsErr }}
Positions appear after connect.
Confirm what every follower will read first
The sharer of this link earns a share of the venue fee on trades you make through it. Spurline holds only the key. Your cost is the same as trading directly.
Venue route
Only venues at the settling tier are offered — a venue that carries the key but cannot release funds would only create unpayable claims.
Sign the mint message
One wallet signature over the registry row: format version, minting wallet, position reference, venue route, timestamp, surface. It proves you held the position at this moment. It moves no funds and grants no approval.
{{ signHint }}
Key issued. The link is live; its clock started at issue and will not be extended.
The sharer of this link earns a share of the venue fee. Spurline holds only the key.
Preview card as it unfurls in chat. The disclosure is the first line under the nameplate on every card.
The sharer of this link earns a share of the venue fee on trades you make through it. Spurline holds only the key. Your cost is the same as trading directly.
“{{ link.note }}”
- Seed phrase
- Private key
- Token approval
- Signature before the venue
- Wallet balance
- Email or phone
Connecting reads your address only, so the venue's fee record can be matched to this key. No signature, no approval. {{ readinessNote }}
{{ walletError }}
Your wallet is on another network. The key binds only on {{ netLabel }}. Disposition: retry_in_session.
{{ walletError }}
bind_sequence {{ binding.seq }} · {{ binding.ts }}
This wallet holds no ETH on {{ netLabel }}. The binding stays valid inside its window — fund it (faucet) and return with the same link. Disposition: resume_later_same_key.
Opens {{ venueTarget }} in a new tab. Nothing is signed here.
Before you leave: the sharer of this link earns a share of the venue fee on trades you make through it. Spurline holds only the key. Your cost is the same as trading directly.
You will sign at {{ link.venueName }}. The key travels as {{ link.carriage }}.
Trade in the venue tab from the bound address. Afterwards, attribute the transaction here: Spurline reads the receipt from {{ netLabel }}, checks that the sender is the bound address, and writes one ledger row. The key travels as {{ link.carriage }}.
{{ tradeErr }}
{{ tradeLine }}
Resolving key {{ routeKeyFmt }} in the registry…
No live key at this address
The path {{ routeKeyFmt }} does not resolve to a registry row. Keys are never reused or reconstructed; the sharer must mint a new one.
Back to SpurlineSharer · read-only ledger
Earnings
The ledger is keyed by minting wallet. Connect to read your rows. Every row is one attributed transaction on {{ netLabel }}, linked to its receipt — never an estimate, never a pending balance.
{{ walletError }}
{{ ledgerErr }}
{{ claim.feeEvent }}
{{ claim.row }}
{{ claim.root }}
{{ claim.tx }}
Attributed trades
Your links
Competing-key decision
When more than one key touched a trade, exactly one wins the whole sharer share. The ladder is total: evidence grade → age verdict → binding recency → bind sequence.
venue {{ dec.venue }}
evaluated {{ dec.evaluated }}
rule_version fee-split-v3
bound_address_join
binding_recency {{ dec.winTs }}
bind_sequence {{ dec.winSeq }}
bound_address_join
earlier binding
bind_sequence {{ dec.loseSeq }}
Venue operators
An adapter Spurline builds. A venue installs.
Spurline never enters the execution path and adds no unmeasured gas to a follower's trade. The boundary sits at your fee event: everything before it Spurline measures; everything at or inside it is yours and arrives through the adapter.
Five cumulative tiers
Payout authorization is signed before any code is written. Only venues at settling appear in a sharer's mint menu.
Integrated and observed venues
Four prerequisites
- trade_record_visibilitySpurline can read per-trade records.
- key_pass_throughThe key reaches the fee event in one declared carriage mode.
- fee_amount_visibilityFee amounts in integer base units of the asset actually collected.
- payout_authorizationA signed release of the attributed share into a claim contract each cycle.
Request an adapter
Review starts at tier observable: we verify trade record visibility before anything else.
Published rules · verifiable by identifier
What Spurline does, and refuses to do
Every claim below can be checked against chain state, a venue record, the Spurline registry, or a published rule — by copyable identifier, not by link.
{{ g.title }}
- {{ it }}






