SN distributes the sats it earns back to its best stackers daily. These sats come from jobs, boosts, posting fees, and donations. You can see the daily rewards pool and make a donation here.
click for details
)
}
function RevenueNotification ({ n }) {
return (
you stacked {numWithUnits(n.earnedSats, { abbreviate: false })} in territory revenue{timeSince(new Date(n.sortTime))}
As the founder of territory ~{n.subName}, you receive 50% of the revenue it generates and the other 50% go to rewards.
)
}
function SubStatus ({ n }) {
const dueDate = nextBillingWithGrace(n.sub)
return (
{n.sub.status === 'ACTIVE'
? 'your territory is active again'
: (n.sub.status === 'GRACE'
? <>your territory payment for ~{n.sub.name} is due or your territory will be archived in >
: <>your territory ~{n.sub.name} has been archived>)}
click to visit territory and pay
)
}
function Invitification ({ n }) {
return (
<>
your invite has been redeemed by
{numWithUnits(n.invite.invitees.length, {
abbreviate: false,
unitSingular: 'stacker',
unitPlural: 'stackers'
})}
)
}
function Referral ({ n }) {
return (
someone joined via one of your referral links
{timeSince(new Date(n.sortTime))}
)
}
function Votification ({ n }) {
let forwardedSats = 0
let ForwardedUsers = null
if (n.item.forwards?.length) {
forwardedSats = Math.floor(n.earnedSats * n.item.forwards.map(fwd => fwd.pct).reduce((sum, cur) => sum + cur) / 100)
ForwardedUsers = () => n.item.forwards.map((fwd, i) =>
@{fwd.user.name}
{i !== n.item.forwards.length - 1 && ' '}
)
}
return (
<>
your {n.item.title ? 'post' : 'reply'} stacked {numWithUnits(n.earnedSats, { abbreviate: false })}
{n.item.forwards?.length > 0 &&
<>
{' '}and forwarded {numWithUnits(forwardedSats, { abbreviate: false })} to{' '}
>}
{n.item.title
?
: (
)}
>
)
}
function ForwardedVotification ({ n }) {
return (
<>
you were forwarded {numWithUnits(n.earnedSats, { abbreviate: false })} from
{n.item.title
?
: (
)}
>
)
}
function Mention ({ n }) {
return (
<>
you were mentioned in
{n.item.title
?
: (
)}
>
)
}
function JobChanged ({ n }) {
return (
<>
{n.item.status === 'ACTIVE'
? 'your job is active again'
: (n.item.status === 'NOSATS'
? 'your job promotion ran out of sats'
: 'your job has been stopped')}
>
)
}
function Reply ({ n }) {
return (
{n.item.title
?
: (
)}
)
}
function FollowActivity ({ n }) {
return (
<>
a stacker you subscribe to {n.item.parentId ? 'commented' : 'posted'}
{n.item.title
?
: (
)}
>
)
}
function TerritoryPost ({ n }) {
return (
<>
new post in ~{n.item.sub.name}