We made it easier to search addresses. To find an address, enter a Farcaster username or ENS, or begin typing in the To field to see results. You'll see a list of matching users, with info like their profile picture, ENS name, and connected wallet address.
Once you've selected the person, when you hover over their name you'll see an info panel, which lets you quickly add them to your contacts. Click add contact, add a name, and click save. That will save it to your teams shared contacts.
When you hover over their name, the info panel shows relevant connections. This includes whether they've connected their Farcaster account to the address, and if they're using ENS. This helps you ensure you're sending to the right address.
We made it easier to find and choose the right tokens to send. Now when you click the token selector, you can immediately type to filter the list of possible tokens. And we'll remember which tokens and networks you use, saving you time in the future.
You can now reject transactions in your team workspace. If a transaction was created accidentally, or you just no longer wish to execute it, you can click the ellipses menu and select "Reject transaction". This will remove it from your team.
You now have more peace of mind over your opsec by verifying access to any of your passkeys. From your passkey settings, click the ellipses menu and select "Verify access". You'll be prompted to sign with your passkey.
Our app has evolved a lot over the past 3 years. It's grown from a lightweight app to create and view Split contracts, to more of a purpose-built block explorer servicing all Splits contracts (Split, Waterfall, Swapper, etc). And now we have Teams, too.
Combining all this functionality, which caters to both individuals and teams, into a single product has proven challenging. It makes it harder to build, and it results in a confusing, bloated user experience for both audiences.
So moving forward, teams will access their shared wallets and team workspace features at teams.splits.org. And individuals will continue to access their smart contracts at app.splits.org. We'll write a more in-depth breakdown of this soon.
If you're a team owner, you can now make changes to your checking accounts. You can add and remove signers, and update the approval thresholds. You'll soon be able to add automations and other rule-based permissions.
Getting this right is both hard and important. This is because the "state" of your account (i.e. signers, threshold, etc) needs to stay in sync across all chains it is active on. Manysmartpeople are working on this, and it's something we expect will evolve significantly in the future.
Quick reminder: if you're in the Bay Area, we're hosting our first Splits Picnic this Saturday (28 September) from 3 to 6pm in the Presidio in SF. All are welcome!
Audit has finished on the smart accounts contracts and we have integrated them into the product. We've opened a private beta and have started onboarding teams. Please reach out or drop us a line on Warpcast if you're interested in using it. Learn more at splits.org/vault.
In preparation for the private beta, our main focus this past cycle was building a basic onboarding flow for smart accounts.
If you're in the Bay Area, you're invited to the Splits Picnic on Saturday, September 28 in San Francisco. Meet the team, share some snacks with us, and discuss the onchain ecosystem. Find more details and RSVP on Partiful — or, if you have a Farcaster account, on events.xyz.
Smart accounts can now bridge and swap in a single transaction transfer.
Smart account contract integration continues and more#
This cycle we built the Root setup flow and laid the non-UI foundations for merkelized transactions (one signature over multiple transactions, which can be on separate networks – like if you wanted to add or remove a multisig signer on all of your active chains at once).
Other smart account updates include:
Group overview assets by token instead of network
Polish transaction signing flows
Update overview asset tooltip
Improve transaction loading and caching
Show user signing keys on team dialog
Restrict settings to admins
Fix signature display order bug
We'll be rolling out access to this feature to more teams in the coming weeks. Reach out if you're interested in being an early user.
We made a lot of progress on smart accounts. Here's a quick overview.
We made it easier to see which chains your assets are held on.
We improved the WalletConnect flow. Your smart account now automatically connects on all supported chains when using WalletConnect.
We improved the smart account transaction signing flow, by adding the ability to sign transactions immediately or queue up transactions for another team member.
We added the ability to edit your smart accounts (name, signers, chains, etc).
And you can now hide spam NFTs for your team (similar to the spam token blocklist).
We also wrapped up the audit of the smart accounts contracts, so we're currently integrating the finalized contracts into the app. We'll be rolling out access to this feature to more teams in the coming weeks. Reach out if you're interested in being an early user.
You can now send someone a token you don't have. Just specify the token you want the recipient to get, and if you don't have it you can select which token of yours you want to swap during the transfer.
Say I want to send Alice 100 USDC but I only have ETH. Previously, I would need to swap ETH into USDC and then send Alice the USDC. Now, you can just send Alice the USDC and your smart account handles the swapping for you.
Think "just in time assets". H/t @androidsixteen.eth and @kia.eth for this helpful framing.
We're heading into an audit for the smart account contracts on Monday. We expect the audit to take a week. After that's done and we've addressed any found issues, we'll start integrating those contracts into our app and begin rolling out the smart accounts feature to more folks.
If you're a team operating onchain—income and expenses across multiple chains—please reach out. We'd love to hear what tools you're currently using and see where smart accounts could make your life easier.
We improved the design on the swap flow, making it easier to use and more similar to patterns you've come to expect
We now preserve the page you were viewing upon signing in (i.e., we don't automatically redirect you to the Dashboard page if you were viewing a Split page)
We now show pending team member invites in your team account settings
We improved some of our toast messages (i.e., adding a token to your blocklist now links to the Settings page, accepting a team invite now shows a confirmation toast)
Fixed a number of outdated queries on our Dune dashboards
You can now manually hide spam tokens for your team. Hiding a token will prevent it from showing up in the app for all team members.
Right now this is done through the smart account assets tab, but we'll be bringing it to other parts of the app soon. You can unhide hidden tokens from the token blocklist section of your team settings page.
We redesigned the settings page to be easier to navigate. There are two types of settings: account settings, which are related to only your account, and team settings, which affect all members of your team.
We reworked the distribution bounty (i.e., distributor fee) section on the new Split form. This allows Split balances to be automatically distributed. You now have the option to turn it on—using either a chain-specific default value or custom value—or turn it off for manual distributions.
You can now swap tokens directly within a smart account. No need to connect your account to a third party app to perform the swap. And no need to pre-approve each token, since ERC20s are natively batched into a single transaction thanks to smart accounts.
Swapping is one of the most common actions people take with their smart accounts—often because they need to send someone a token they don't currently have—so we're excited to bring this functionality into the app directly. We charge no fees on these swaps.
Most of our product and engineering focus the past few weeks has gone towards app performance (i.e., page load times) and tech debt. We also optimized a number of internal processes around developer experience, which will result in faster development times for our team moving forward.
You can now use passkeys to sign in on the app. This is considerably faster than having to open your email and follow a link. You can add passkeys from your account settings page. Currently this functionality is limited to desktop - mobile support is coming soon.
The new Address Book feature lets you save regularly used addresses in the app. You're able to replace the hexadecimal addresses (e.g., 0x1234...) with human-readable names (e.g., "Songcamp treasury"). This is built on top of the names feature we launched a few months ago. We'll be adding support for this in more parts of the product soon (e.g., when creating a new contract, transferring assets, etc).
We shipped a bunch of updates to beta users of smart accounts. Some of these include: creating smart accounts with a custom number of signers and threshold, adding memo's to transactions to help with accounting, and adding roles to teammates (e.g., admins, members).
If you’re using our SDK, you should upgrade to the latest version. The Graph is sunsetting their hosted subgraphs in a few weeks, and as a result we needed to move our SDK off their service.
If you’re only creating or updating Splits, the old SDK will continue to work. However, if you’re fetching data—displaying recipients, distributing balances, getting metadata, etc—you must upgrade to the latest version.
We're continuing to makesteadyprogress on our smart accounts product. As a reminder, this product makes it super easy for teams to manage all their accounts (revenue, expenses, etc) across dozens of chains at once.
Here are some of the things we shipped since our update two weeks ago:
You can now add teammates to your workspace, letting you share things like smart accounts, tags, labels, etc
Each transaction now has its own page (example), making it easier for folks to share specific transactions with others
You can transfer assets to any Farcaster user by entering their username
You can simulate transactions (we use Tenderly for this right now)
We improved the transaction data display, including adding decoded calls
You can sign messages via a smart account prior to it being deployed (ERC 6492)
You can delete unused passkeys from your account
...and a ton of small UX improvements and bug fixes
The team is on a tear. We're shipping updates every day and publishing videos each week. The best way to stay in the loop is by following along on Warpcast.
We launched Splits v2 earlier this week. This is an entirely new set of smart contracts that incorporate over 2 years of feedback and learnings.
v2 was audited by Zach Obront and is already being used in our own app and a few early partners. Check out the launch post for more information on what changed from v1.
We continue to make progress and publish videos on our new smart accounts product. This product makes it easy for teams to manage all their wallets across dozens of chains at once. We've been using it ourselves and it's already sped up our internal operations 10x over our previous tools (a mix of Safes + EOAs).
Some of the things we've shipped in the past 2 weeks include:
Using WalletConnect to connect your smart accounts to other apps
Viewing and transferring NFTs owned by your smart accounts
Creating new operating wallets (1-of-n multisigs) that use passkeys as signers
We recommend following along on Warpcast since we post regular updates there. Using this product has made us realize how much today's tools have compromised usability in favor of self-custody, and we're fired up to be closing this gap.
We are expanding the team! You can read more about the company and what roles we're looking for here. Please keep us in mind if you or anyone you know of would make a good fit.
Last week we released a walkthrough video of our new smart accounts feature. This feature is a way for teams to set up crosschain multisig wallets that use passkeys as signers. You can check it out below and on Warpcast.
We're working with a handful of design partners to get the product dialed in before a wider release. If you're managing an onchain team and want to beta test the product, please reach out on Warpcast.
We also launched a new version of our landing page at splits.org. This new visual identity better aligns our brand with our vision and where the product is headed.
We're working on a system for teams to better manage their shared wallets using smart accounts, multisigs, and passkeys. In preparation for this new product line launching soon, we spent some time last week reworking our Help Center to position us better for this new set of features.
We made a number of improvements, the biggest being the ability to browse articles by category. We've also reworked most of the articles for more coverage, and will be adding more in the coming days.
Earlier this week, we launched our multichain app. This is a big upgrade to the app since you can now access your Splits, balances, and activity across all the chains in a single view. Gone are the days of manually switching between chains to see your activity.
For those interested, we'll be releasing a blog post that outlines our new architecture and how we built the multichain app.
This new architecture sets us up well for the next few features we're launching, since both v2 and smart accounts (more on these below) will take advantage of the multichain functionality.
V2: As mentioned before, we wrapped up an audit on a V2 of the contracts and are currently integrating the new system into the SDK and app. We expect V2 to go live in the next week or two.
Smart accounts: We're also working on a new team-based smart account system, which will make it easy for onchain teams to manage their earnings across all chains at once. The MVP will use multisig wallets and passkeys to allow teams to operate safely cross chain without worrying about bridging funds between networks. Please reach out if you're interested in being a beta tester for this new product.
We deployed the contracts to Blast, making them accessible via Zora and other integrations. We haven't yet added Blast support to the app, but plan to do that soon.
We added proper API keys for developers integrating Splits into their own apps. The API lets you do things like add names and tags to Splits created through your app.
To create a new API key, just go to your account setting page and generate a new key in the "API Keys" section.
Our API is still in beta so we're onboarding developers manually. Please reach out if you'd like to use it and we'll follow up.
We just finished a security audit on the Splits V2 smart contracts. V2 is an entirely new system (V1 will continue to operate as it does today) that is primarily focused on improving developer experience. Some of the changes include:
Separating the splitting logic from the token warehouse, allowing third-party devs to deposit directly into the warehouse and more easily iterate on different types of payment flows.
Using CREATE2 for all contracts (including mutable Splits), allowing contracts to be counterfactually deployed at the same address on multiple networks.
Making the warehouse ERC-6909 compatible, allowing tokens stored in the warehouse will be visible in wallets and other third-party products and offer different modules that rely on approval/operator flows.
We'll be writing more about the full list of improvements, so stay tuned.
We added a warning if creating an ownerless Swapper, since doing so could result in loss of funds if the oracle is unable to determine a clearing price.
We fixed a UI bug causing double counting in our app after distributing a Split on certain networks.
Developers integrating Splits into their app can now add tags via the API endpoint. We’re onboarding developers to the API manually, so please reach out if you’ve integrated Splits and want to use the API to add names or tags to our app for the contracts created through your app.
Last week we deployed the Swapper and Diversifier contracts to Arbitrum. We also added Sepolia testnet support for all our contracts on Optimism, Base, and Zora. And we added Holesky support in the app.
The contracts are all verified on these networks, and you can use them in the app as well. You can see the networks on which each contract is deployed (including the testnets) in our docs.
This week we shipped multichain earning statements. Now, you can view your earnings from each contract across all your preferred networks in one statement. You can create your own statement here.
When creating a statement, all networks are included by default. If you only care about a subset of networks, just deselect the ones you don't want.
If any of your wallets on your dashboard had activity last year, you should have received an email yesterday with your 2023 earning statement.
You can turn on weekly emails for any account or contract, not just your own wallets. Just click the "Subscribe" button in the account/contract's activity section.
Changing the network no longer redirects the page back to the dashboard. Now when you change the network, you'll remain on whatever page you were viewing.
We upgraded the avatars shown in the app. User accounts show an ENS avatar if they have one set, and Splits contracts will show their contract icon (i.e., Split, Waterfall, Swapper, etc).
On an individual Split page, you can now see exactly how much each recipient has earned (in addition to their ownership share).
Starting today, you can create Swappers on Optimism, Base, and Polygon directly through our app. When we announced Swapper in June, it was available only on Ethereum. As more transactions move to L2s, we're ensuring that all Splits infrastructure is accessible there as well.
Swapper is a payable smart contract that swaps ETH & ERC20 tokens into a predefined output token before sending those tokens to its beneficiary. As the beneficiary, this gives you control over the tokens you receive, no matter what is sent to you.
Since its launch, Swapper has been used by forward-thinking teams such as Airswap, Transient Labs, and Props to automatically convert volatile currencies into ETH or stablecoins like USDC. This automation saves them the trouble of manually swapping into stablecoins after receiving funds. It lets these teams set it and forget it.
As with all Splits contracts, Swapper is entirely free to use since there are no fees whatsoever. Just BYO-gas.
We're also observing an increase in DAOs, which have their own ERC20 tokens, using Swapper to convert a portion of their income (typically in ETH) into their native tokens. Applying continuous buy pressure is an innovative strategy to increase the value of their network, and we're excited to see more teams explore this on L2s.
When you hover over an address in the app, a preview of the account appears. This includes the network, contract details (like number of recipients for Splits, output token for Swappers, etc), and total earnings or volume within Splits. Try it on desktop here.
From within the preview you can copy the account's address, and if signed in with email, you can also change the account's name and tags by clicking the pencil icon.
Not product related but a fun update nonetheless! Using our SDK, Zora recently integrated Splits natively into their app, making it super easy for creators on Zora to split NFT rewards and revenue with collaborators.
Hundreds of creators on Zora have already been manually pasting in Split addresses, and this native platform integration makes this process much easier. Creators can now create Splits inline while deploying their NFT contracts.
You can read more about how it works in their support center.
We added an "account type" affordance next to the account's avatar. This is helpful as the number of non-Split contracts in the ecosystem continues to grow.
We replaced the old toast notifications with a more performant, modern component. These toasts will now display in the bottom right of the screen.
Switching networks/chains now keeps you on your current page, instead of redirecting to the dashboard.
We've significantly enhanced the app's search functionality, making it easier to find and discover accounts. As you type, search results now instantly appear, matching both names and tags.
You can also link directly to search results, as demonstrated here. You're still able to paste in an address or enter an ENS and navigate directly to that page.
Our weekly email summaries have been revamped for clarity. You'll now clearly see "Last week's earnings" and "Last week's withdrawals" for each account you monitor, in addition to the individual events that contributed to those earnings & withdrawals.
We've created shareable images (og:image) for all accounts within the Splits ecosystem. Now, when you share an account on platforms like Twitter, Discord, iMessage, etc., you'll see more detailed information about the account.
Similar shareable images have also been created for other parts of the system, including docs, statements, etc.
The contracts have been deployed to the Sepolia and Holesky testnets. All deployment addresses are available in the docs.
We resolved a UI bug that caused a "no chain provided" error. A big thank you to those who reported this issue!
We enhanced earning statements by adding collapsible headers, displaying token totals (not just dollar amounts), and omitting transactions with zero value.
We fixed a UI issue regarding text wrapping in the Swapper/Diversifier earnings section.
Earnings statements allow you to easily answer the question, "How much did I earn from all my projects in the past month/quarter/year?" Once you're logged in, simply set the start and end dates, select a network, and choose a wallet (EOA or multisig) to generate the statement.
Once your statement is created, you can share it by downloading a CSV or getting a shareable link.
Statements include any names and tags you've added to the contracts, making it easy for people who haven't used Splits before to see at a glance exactly how much they've earned.
We've released an API endpoint that allows third-party apps to add public names to contracts in Splits. This is helpful for platforms that have integrated Splits and want their users to understand what projects are contributing to their income (vs just seeing the hex addresses in the app).
If you're a developer interested in using this, please reach out to us at support at splits dot org.
Fixed a wallet bug causing Metamask to auto-open on page load.
Fixed a display bug causing the explore page would show contracts from other chains.
Next week we'll be shipping a new feature that makes generating custom earning statements easy. We'll also be increasing Swapper coverage by launching a Chainlink oracle and deploying the contracts to L2s.
Today we’re introducing SplitsKit, a React library designed specifically for the Splits contracts. With SplitsKit, it's easy to create and view Splits in your app without having to build any custom UI. You can learn more in our docs or at kit.splits.org.
To get started, just run yarn add @0xsplits/splits-kit.
Import the components, pass in any default values you need, and let SplitsKit handle the rest. Features include:
Minimally styled with light & dark modes: the UI elements come with sensible, minimal styles that match the aesthetic of our app, including light and dark modes.
Optimized inputs with ENS support: input elements come with masking, styling, error handling, and client-side validation. Address inputs also support ENS out of the box.
Multichain: SplitsKit works on Ethereum, Polygon, Optimism, Zora, Base and all of the EVM chains on which the Splits contracts are deployed.
When creating a Waterfall, you can now specify multiple recipients for each tranche. More often than not, Waterfall users want to split payments among multiple people, and previously this required separate transactions.
As part of this process, we removed Recoup since it was duplicative and caused confusion in the app. So now it's just Waterfall - no more Recoup. Give it a try at waterfall.new.
We built out a new ecosystem Dune dashboard that shows where Splits is being used across the EVM ecosystem.
ENS names set on mainnet now work properly on other networks (Optimism, Base, Zora, etc), even if the ENS name is not set on those networks.
We added additional checks to reduce the number of spam tokens showing up in the app. Note: if you're no longer seeing tokens you expect to see, go to Settings > Token Whitelist and paste in token addresses - this will override our default settings for your account.
Most of our engineering effort this past cycle went towards automating funds flowing through the system. We added automation support for Waterfalls and Recoups that are upstream of incentivized Splits or Swappers. This means that if a Waterfall or Recoup points to a Split or Swapper, all of the contracts in the payment flow will be automatically distributed (assuming it's economically viable to do so). Here is an example of a Waterfall that points to an incentivized Split that's benefiting from this upgrade.
We also expanded automation support to other ERC20 tokens including USDC, USDT, DAI, and WBTC. Previously, the automation layer only handled ETH and WETH.
Waterfalls, Recoups, Swappers, and Diversifiers all now show up on the Explore view under the "existing contracts" section.
We upgraded both the app and SDK to use Viem, improving performance and composability.
We simplified the process of adding names and tags to your contracts by combining two steps into one. Just click the pencil icon and add a name and tags in the same flow.
We fixed a bug where Rabby wallet users were unable to connect to the app.
We added the ability to name contracts during the creation flow (previously you could only add a name retroactively, after the contract was deployed).
We improved the flow for automating distributions on other networks (ie not mainnet) and now use more sensible default distribution thresholds on other networks since gas needs vary by network.
We deployed the contracts on Holesky (note: we did not add app support for Holesky, so let us know if you need it and we'll add it).
We fixed a bug related to network switching and page loads.
Shortly after launching names the other week, we noticed many folks would follow a specific naming convention. They'd add names like "Nathaniel x Sasha [ArtBlocks] [Primary]" or "Heavy Calm (Songcamp Sessions)". And they'd use the same "tags" across several of the names they added.
So today we're launching Tags - a way for you to easily organize and filter your wallets and contracts within Splits.
To get started with tags, just navigate to your Settings page and create whatever tags you'd like.
Then, when viewing a list of accounts just hit the 3 dots menu and select "Add tags".
You can also add tags from the account detail page, by clicking the tag icon in the header.
Once you've added tags to accounts, you can filter by those in your dashboard. We'll be adding more robust filtering options soon.
As part of this update, we deprecated the bookmarks feature. If you were using bookmarks, we automatically created a tag for you called "Bookmarks", so you don't lose track of any accounts you'd bookmarked. That said, if you were primarily using bookmarks just to name accounts, you can delete the "Bookmarks" tag from your settings since names were migrated to the names feature already.
The other big feature we're launching is the ability to withdraw from all the Splits you earn from at once, even if some of those Splits have balances that have not been distributed.
To do this, just hit the withdraw button from the dashboard and select balances to withdraw as you normally would. You'll notice some of the balances have a Split name next to them - those balances are still sitting in the Split. So when you withdraw those balances, you will also be distributing that balance in the Split (so the other recipients don't have to!) before withdrawing.
We've also added a "estimated gas" cost feature, so you can easily see how much it will cost to withdraw all these balances at once (since withdrawing undistributed balances will increase the gas).
You can now add names to contracts while you're creating them (if you're signed in with email). We saw many folks naming contracts immediately upon creating them, so we made this flow easier for you.
We finalized our migration from 0xsplits.xyz to splits.org. This means the app, docs, website, etc all now exist at our new website (and visiting the old website will redirect you to the new one).
We shipped a bunch of performance updates, making app and account detail page load times much faster.
We added pagination to the contracts table.
We fixed a bug in the transactions table pagination logic, where it would sometimes reset to the first page.
Diversifiers will now be automatically distributed once it's economically viable to do so.
When we launched the multi-wallet dashboard, we knew there were a bunch of improvements we wanted to make. We've been steadily chipping away at them, and today we're excited to launch a much requested feature: withdrawing for multiple wallets in a single transaction.
If any of your watched wallets has a balance, when you click on "Withdraw" from your dashboard, you'll now be able to withdraw balances across any of your wallets. For detailed instructions, check out this article in our Help Center.
We worked with the talented Russell Matthews to start building out a set of video tutorial for Splits. The videos have been published to our Help Center, and you can find the full collection on our YouTube channel.
We organized our first team offsite and brought everyone together for a few days in northern California. Creating space to come together as a team is important, especially as the team grows. We're glad to have finally created this space for the team and are looking forward to kicking off the next set of big projects.
Humans aren't equipped to understand hexadecimal addresses. Similar to IP addresses, these hexadecimal addresses are designed for machines. Yet, the standard in most onchain applications today, including ours, is to display these complex addresses to people. While ENS has significantly improved this situation, it remains challenging, if not impossible, to set an ENS for a smart contract such as a Split.
So today we're releasing Named Splits - a way for you to replace the hexadecimal address with a human readable name in our app.
Logged-in users can add a name, which can be either public or private. Public names are visible to all users (after review by our team), while private names are only visible to the user who created it.
Public names are great for things like NFT projects, protocol fees, shelling points, and anything public facing. Private names, on the other hand, are useful when readability and organization are desired but visibility isn't.
Readability of the app is important since Splits is powering a new class of businesses that are emerging onchain. To date, Splits has distributed over $40 million to nearly 10,000 unique creators, makers, artists, and developers across 11 different chains.
And as more businesses of increasing complexity are powered by Splits, more people need to understand where funds are coming and going. Naming Splits makes the app far more legible and human readable.
The introduction of named Splits is just the beginning of an entirely new app experience we're building. We're doubling down on the inherently social nature of Splits by making tracking and reporting on earnings across wallets, networks, and teams considerably easier.
We want to hear your feedback—the good and bad—so please don't hesitate to reach out and let us know what you think!
We released the multi-wallet dashboard view a few weeks ago and have been iterating on it since then. We'll be improving this design in the coming weeks, but in the meantime a quick reminder that all Splits/contracts displayed in the below table are a function of what watched wallets and filters you've applied.
With today's release, you can now sort the table by any of the columns. Either click on the column header, or select the sort from the dropdown in the top right of the view.
We've also seen firsthand how valuable it is to name your Splits (more on that coming soon!), so we added a text search field which lets you very easily filter the table by your named Splits. Just enter text and the table will immediately display those results.
And finally, we added a summary table row so you can easily see in aggregate how funds have flowed through the contracts.
This summary row updates based on the selected filters to reflect the currently displayed contracts.
In addition to the work done on improving the contracts table, we also created an all new transactions table view. This view allows you to easily see all the transactions that have occurred for your watched wallets.
Now, instead of going to each individual watched wallet's page to see the relevant transactions, you're able to see all the transactions in a single view. You can see the Splits/contracts your watched wallets interacted with, as well as exactly the token value for each transaction.
We also updated the weekly email summaries so that it's easier to parse through the information. Each email now includes the date period listed in the subject line, and the formatting of the emails was improved for readability.
We've heard how important it is to be able to see how much a given person/wallet has earned from a specific Split. Maybe it's understanding how much a musician earned from a single song, or perhaps a business running on Splits wants to see how much revenue they've generated from a specific client—there are lots of times when seeing earnings by contract for a given wallet is useful.
The "Earned" column now shows this right on your dashboard page.
People often use one wallet for day-to-day operations (their "hot wallet") and another wallet for storing assets (multisig, hardware wallet, etc). This is great for a number of reasons, however, it makes it difficult to see "the whole picture" when earnings are spread across multiple wallets. And this problem is exacerbated if you have more complex payment flows like one of the many businesses built on top of Splits.
The assumption that 1 person = 1 wallet is not true, and, more often than not, simply connecting your wallet does not give you the full picture. We built an entirely new multi-wallet dashboard to solve this.
Now, regardless of whether your wallet is connected or not, once you sign in (using a password-free magic email link) you can add as many external wallets and multisigs as you want to your dashboard. All you have to do is enter the address/ENS and the earnings and associated Splits will be added to your dashboard.
But before getting into all the dashboard updates...
Many people are earning money through Splits on a daily basis, yet it's hard to understand just how much you're making and where that money is coming from. To solve this, we built email notifications which sends you a weekly summary of all earnings and activity for all the wallets you're watching.
It's very basic right now, but we'll be iterating on this over the coming weeks so if you've signed up for an account please just reply to the weekly email and let us know what information you'd like to see included.
We opted to ship a quick MVP of this feature instead of trying to perfect it, so your feedback will help make it much better.
Okay, on to the multi-wallet dashboard improvements.
You can easily see how much you've earned across all your watched wallets. We'll be adding more functionality to this soon, like showing your total balances and adding the ability to withdraw balances for all your wallets in a single transaction.
You can filter by any of your watched wallets to quickly see only the Splits and earnings associated with those wallets. You can also filter by tags (i.e., bookmarks), which we'll be enhancing the functionality of soon™.
Now that you're able to sign in/up with email, we've also released an account settings page. You can access it by clicking the gear icon in the top left (if you're signed in).
The account settings page lets you do things like update your email address, turn on/off email notifications, and add a list of additional tokens (ERC20 addresses) you want displayed in the app (this is particularly important for non-mainnet networks where all ERC20s are not displayed by default).
There's more to these features than meet the eye, so these initial feature set the stage for a lot more fully-baked product enhancements that are coming soon.
We've received a ton of great feedback from makers and teams using Splits to power their businesses, and are dedicated to continually improving the app. Thanks for your support!
Splits is now live on Zora Network! Just select Zora in the network selector and approve the network change in your wallet. (If this is your first time using Zora Network, you will need to approve your wallet adding Zora to your list of supported networks.)
We've received a bunch of requests from creators to support Zora Network, and are excited to support the growing landscape of L2s. As a reminder, all networks Splits is deployed on can be found here.
One thing to note: Splits are chain-specific, meaning that a Split created on Zora can only be used on Zora. Said differently, if an NFT collection exists on Chain A, you must also deploy a Split on Chain A—you cannot (currently) use a Split on Chain A that was created on Chain B.
We built out a creator-focused Help Center, making it easy to get answers to frequently asked questions and learn more about how Splits works in the broader Ethereum ecosystem.
We'll continue to add more content over time, so please reach out if there's anything you'd like to see us cover.
Last week we announced the newest contract to the Splits ecosystem - Swapper. It lets you specify the token you want to receive, regardless of what you’re sent. It does this by automatically swapping any tokens (ETH or ERC20s) it receives into a predefined output token. For more details, check out our launch post, Introducing Swapper.
We’re thrilled to launch this publicly; it’s been a long time in the making. And what we’re arguably more thrilled about are all the new uses cases this modular contract unlocks. To this end, we also announced Diversifier, which stacks a Split and Swapper(s) together to create a wallet that auto diversifies any income stream before funds hit your account.
For creators, this means you can create a tax withholding wallet that swaps 40% of your income to USDC (or any stable coin) and set aside for taxes, with the remainder going to your hot wallet. We wrote about this use case in the Introducing Swapper launch post, so please check it out and let us know what you think.
We began the migration to splits.org. We can’t migrate everything just yet since we have a few product features we’re still building that will make this process seamless for users, but over time you’ll see more of our brand move over to our new domain.
We added the ability to sponsor Splits on all chains. Previously this was only supported on mainnet, and now it’s supported on all chains supported by the UI (full list is here).
We also fixed a number of bugs, including incorrectly showing “Account not found” due to a subgraph query limit, and implemented a number of design updates.
Over the next few months, we’re going to be investing heavily into the product and user experience. Now that more of the “building blocks” are in place from a smart contract standpoint (ie Split, Swapper, Waterfall) we're going to be doubling down on the app to ensure deploying and using these building blocks in creative ways is seamless.
We've made a number of design improvements to the new Split flow.
Creating a Liquid Split is now a template. We did this because it's fundamentally different than just creating a Split, since when creating a Liquid Split you're actually deploying an NFT contract in addition to a mutable Split. Given our future product direction we felt pulling Liquid Split out into it's own template makes the most sense.
Previously, choosing to make a Split mutable was separate from choosing the controller. Since a Split can only be mutable if a controller is set, we decided to combine these two steps into one by allowing you to make a selection. If you want the Split to be immutable, just select "no controller". Otherwise, you can either select yourself (if your wallet is connected) or you an enter in any address you wish.
Adding a distribution bounty is the best way to automate your Splits. By adding a bounty, you're encouraging third-parties to come and distribute balances for the recipients. In an effort to more clearly communicate how this bounty works, we've redesigned this input to let you select the amount at which balances will be distributed. You can see (on the right side) what percentage the distributor fee will be based on the threshold you've selected.
We're grateful for the folks who have chosen to donate a portion of their Split's earnings back to the team building Splits. It's an honor knowing that people are choosing to pay us—not because they have to, but because they want to. We want to both celebrate the people who have chosen to donate, and also make it easier to donate. Now, the last part of creating a new Split is deciding whether you want to become a sponsor.
If you choose to become a sponsor, anytime your Split is viewed or shared online, everyone will see the sponsorship badge displayed at the top of your page and know that you've chosen to sponsor the development of Splits.
People have increasingly been creating larger and larger Splits. We've seen several Splits with hundreds of recipients! This is great to see, and we need to ensure that creating large Splits is as easy as possible. To this end, we redesigned the "bulk upload" flow to make it both easier to use and more apparent as an option.
Now when creating a Split, next to "Add Recipient" there is an "Upload CSV" option. Clicking it will open a dialog where you can either upload a CSV or paste in a list of addresses and amounts. Once you hit "Validate", those recipients will be added as recipients.
Finally, we took the changes we made to the new Split form, including the CSV upload flow, and added them to the new Recoup page as well. We have seen more and more folks use the Recoup flow, like this Metalabel drop, and have found that the process of creating a Recoup with many recipients was tedious. Plus, there were a number of bugs we learned about. So we fixed the bugs and brought all the Split improvements over to Recoup.
Most of our effort has been focused on getting Swapper into a launch-ready state – keep an eye out for more news on that front in the coming weeks!
Our radio silence and general lack of changelog updates is because we've been focused on Swapper, a new contract we're about to launch. We have been working on this contract for a few months now and just opened up a Sherlock competition for it and a handful of related contracts.
This is our first time doing a Sherlock competition and we're excited to have obront be our Lead Senior Watson. We'd love for you to join and see what vulnerabilities you can find. The competition ends on April 24th.
We'll be launching Swapper into the app (along with a handful of related products) in the coming weeks once the Sherlock competition is complete.
When creating new contracts, we've separated the main building blocks (Split and Waterfall) from the templates. Templates stack different building blocks together, so we wanted to make a clearer distinction between the types of contracts being created. We're also developing more contracts and templates, and this separation will help users understand how everything works together.
When creating a Recoup, multiple contracts are involved. To make it easier to understand how funds will flow through the contract once it's created, we added a contract preview to the creation process.
We made some improvements to the new contract creation process, including removing unnecessary components, improving the mobile experience, and hiding infrequently used actions.
We believe the onchain ecosystem as a whole benefits greatly from simple, modular, and reusable tools. We also understand that it's oftentimes the combination of simple tools that unlock new workflows.
When Waterfall launched a few months ago, we thought about how great it would be to pair it with Splits. In fact, Metalabel did just this. This combination of Waterfall + Splits lets you create all sorts of interesting structures that revolve around splitting profits instead of revenue. Most projects have upfront costs, and the person who covers those costs wants to be repaid before profits are split among the group. Musicians, VC, PE, debt—tons of workflows exist that need to combine these contracts together.
The problem is that to do so requires deep knowledge of how the system as a whole operates, since you can't create a Waterfall that points to a Split unless that Split already exists. Recoup solves this problem. It's a very simple contract paired with a UI that lets you, in a single transaction, create a Waterfall that points to multiple Splits.
When creating a new Recoup, just list all the recipients you want paid out for each tier. As long as more than one recipient is added, when you create the Recoup a Split will also be created. And if there's only one recipient, no Split will be created.
And once again, Metalabel is already using this. For their most recent Quality Drops, they teamed up with Songcamp and Catalog to create a Recoup for an event they're hosting around NFT NYC in April. You can see their Recoup here, and you can read more about the event and tickets here.
We think of Recoup as being the first template - a pre-built collection of contracts that solve a very specific problem. We have a number of additional templates we we'll be launching in the coming months, stay tuned.
We wanted to make the app easier to use on mobile, particularly for folks just connecting their wallet to withdraw their balances. This should be simple, and previously it required a number of steps and an unintuitive withdraw flow. We improved this on mobile by combining the various actions—network selector, navigation, account menu—into one coherent section.
There’s a lot of activity going on within the Splits protocol. Unless you know exactly what you’re looking for, it can be rather intimidating to see just a list of all the Splits ever created, which is what we were previously displaying for new users.
We improved this experience by launching an all new Explore page, which allows you to see how a handful of different groups—from DAOs to artists to collectives—are getting the most out of the Splits ecosystem.
It’s important for Splits to be available where the people are, so we’ve deployed the contracts onto a number of new networks including Gnosis, Aurora, Fantom, Avalanche and more. The full list is here. We’ve updated the app to support all these networks and their testnets as well. You won’t see them all in the network selected, but you can still access them by changing the network in your wallet provider.
Due to the nuances of fetching ERC-20 token information on each new chain, we’ve added the ability for people to customize their own token whitelist in the app. In addition to the tokens on the app's global whitelist, all tokens added to this whitelist will show up in your app.
Note that this whitelist is saved only to local storage and is associated to the network and connected wallet, meaning if you change network and/or connected wallet, the whitelist will also change.
We added gas estimates to the SDK. When using the SDK, it’s easy to fetch the estimated gas cost for any transaction. More in the docs here.
We’re now displaying all contracts in a more consistent manner, making it easier to see any account’s earnings, balance, and last activity. Additionally, when viewing a Split on an account page, you can see the percentage of the Split that account is earning.
We removed the testnets from the network selector in the app. You can still access the app on the various testnets by manually changing the network in Metamask/your wallet.
We take pride in what we build. And since launching 0xSplits to the world in February 2022, more often than not, much of what we build is never publicly documented. Sometimes we tweet about some big new features, but that typically only happens for…big features. Yet so much of our time is invested in sweating the details and getting the small interactions right.
So today, we’re introducing the Changelog, a dedicated space to share all the things we've shipped. So let's get to it.
We have big plans for the app and will be launching a ton of new features in the next few months. As a result, we needed to introduce a new layout that will provide more flexibility and support for these new features. The new layout gives us this flexibility while making navigation easier on mobile devices and improving the withdraw flow for connected accounts.
There are many times when you may want to distribute a Split and then immediately withdraw for those recipients. Maybe because some of the recipients are smart contracts that cannot withdraw for themselves, or perhaps you’re just feeling generous. Regardless of the reason, there are times when pushing funds to the end recipients is useful.
Previously, this required going to each recipient’s account page and hitting withdraw. While you can still do that, we’ve made this process a lot easier. Just select the Split balances you wish to distribute, and then hit the down icon within the distribute button. You’ll be able to select what recipients—either all, or if you’re part of the Split, just yourself—for whom you wish to withdraw.
We’ve heard time and again the need to create multiple Splits that are nearly identical. A 5-way Split where 4 of the recipients never change. Whether you’re a music label, podcast host, or musician, there are often times when you want a very similar but not identical configuration.
Instead of downloading the CSV and then uploading that each time, now you can just hit the Duplicate Split button within the “Split Recipients” tab. This will take you to the new Split page with the configuration pre-filled, allowing you to make whatever modifications you’d like.
You may notice that when you do this, we’re actually adding a bunch of params to the URL on the new Split page. We built this feature in this way so that 3rd party apps can deep-link into the new Split flow, allowing users to create pre-defined Split according to 3rd party apps.