Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

ContinuumDAO Forum

Global Moderators

Private

Forum wide moderators

Posts


  • The Security Case for Multi-Party Agent Wallet
    SelquiS Selqui
    Announcements

    barbarians_and_knight.png

    This article explores how the MPA Wallet stands up in terms of security to other wallet types, excluding hardware wallets for now (this is a separate analysis).

    MPA Wallet uses the MPC algorithm with key shares on different nodes (computers) to make signatures that can be broadcast on-chain. These nodes could be run by humans, by AI agents or both. The Agreement ceremony generating the Private Key happens off-chain. No other entity, company or database is involved in this process.

    The main other types of wallet are:

    • On-chain multi-sig (e.g. Safe) puts the policy in a contract. Every signer still holds a complete private key, usually in a hot wallet.
    • MPC browser extensions with a vendor share (the 2-of-2 cloud co-signer model) never give you a full key, and never let you sign without the vendor. The second share could be OAUTH, like email, or sit in a vendors database.
    • Simple browser extensions that hold the Private Key (MetaMask, Rabby, Phantom, and the same pattern) put the entire wallet in one browser profile.
    • Paper wallets put that same entire key on paper. Spending means typing it into software.

    Before we start, let's define 'parties', 'threshold', 'shares' and 'batch sign requests'.

    For MPA Wallet and for multi-sig wallets, we talk about 'parties'. This means nodes for MPA Wallet, but simply different signers in the case of a multi-sig. For MPA Wallet, each party has a 'share' of the Private Key, or more accurately, the ability to generate it. For multi-sig, each party needs a Private Key. We also talk about 'batch sign-requests' for MPA Wallet. DeFi rarely wants one signature. These are collections of multiple signatures to be signed at the same time, as is a common requirement when interacting with a web3 protocol. The 'threshold' is the number of parties that must 'Agree' to signature or batch sign-request before it can be executed on-chain, so a threshold of '2/3' means that 2 parties must Agree out of a possible 3.

    This article compares the different wallet types in terms of security in interacting with DeFi. Let's take it step by step.

    Where the secret lives

    MPA. Threshold shares on nodes you deploy. No full Private Key on any machine.

    Multisig. Each signer holds a complete Private Key. The payload is in a contract.

    Vendor MPC. You hold one share. The vendor holds another in their infrastructure.

    Extension. The full private key lives in the browser profile.

    Paper. The full private key is on the paper, or in a photo of it.

    Who can spend alone

    MPA. Only if they already meet the threshold you chose (2/2, 2/3, 3/5, …).

    Multisig. Only if they meet the contract threshold. A stolen signer key is still a complete secret.

    Vendor MPC. You cannot. The vendor co-signs every spend, and can refuse.

    Extension. Yes. The key, the seed, or an unlocked session spends the wallet.

    Paper. Yes. Anyone holding the paper spends the wallet.

    Is a company on the signing path?

    MPA. No. ContinuumDAO does not hold a share. It is decentralized.

    Multisig. No, inside the contract. Each signature still comes from a hot wallet. Also decentralized.

    Vendor MPC. Yes. Every signature needs the vendor. Not decentralized.

    Extension. The extension is the signer. A bad update or a malicious lookalike build is the wallet.

    Paper. No, until the key is typed into software.

    If that company ceases operation

    MPA. Nodes you already run keep signing. No more software updates. Can Eject to a full Private Key.

    Multisig. The contract remains. You still need the signer keys and a way to submit.

    Vendor MPC. Signing stops. The share you hold is not a wallet.

    Extension. The seed imports into another wallet.

    Paper. The paper still spends, once imported.

    What the chain sees

    MPA. One ordinary signature from the shared address.

    Multisig. A contract wallet. Signer set, threshold, and approvals are public, and every call costs extra gas.

    Vendor MPC. One ordinary signature.

    Extension. One ordinary signature.

    Paper. One ordinary signature, after import.

    Protocols that expect a normal account

    MPA. The address is a normal account.

    Multisig. Some protocols reject contract wallets or price them differently.

    Vendor MPC. The address is a normal account.

    Extension. The address is a normal account.

    Paper. The address is a normal account, after import.

    Who approved

    MPA. Proposals, Accepts, and Rejects stay on your nodes. The chain sees the transaction.

    Multisig. The signer set is public. Executed approvals are often public too.

    Vendor MPC. The vendor sees every signature. The chain sees a single signature.

    Extension. There is no second approver.

    Paper. There is no second approver.

    One review for a batch

    DeFi rarely wants one signature. It wants an allowance and then the call that spends it, or a deposit and then a stake.

    MPA. One multi-sign request holds the whole sequence. Co-signers can only Accept the whole batch, then MPC signs that payload. Broadcast sends the transactions in order, as ordinary account transactions.

    Multisig. Safe-style wallets can pack calls into one atomic contract execution, so a revert rolls the whole bundle back. That atomicity is real. It is also a contract call, paid for in gas and in protocol support, and each signer still approves with a hot key.

    Vendor MPC. One prompt per transaction. Approve and the next call are separate clicks.

    Extension. One prompt per transaction. The dApp can change calldata between the screen and the signature. The gap between the approval and the following call is the dangerous part.

    Paper. Not a workflow. Each spend imports the key.

    Checked before anyone is bound

    MPA. Per leg: function signature, parameter types, names, destination, and chain. The request is posted only after that check.

    Multisig. Whatever the UI or a script checked. A bad call reverts on-chain after signers have approved.

    Vendor MPC. A vendor warning on a single transaction, if they built one.

    Extension. A single-transaction check inside the popup, in wallets that offer one.

    Paper. None, until import.

    Simulated on the live chain

    MPA. Each leg is simulated from the MPC address against the chain you named. Later legs run on top of earlier legs in the same batch, so a revert in leg two shows up before anyone signs. At signature generation time, sequential eth_simulateV1 is what the gas figure follows.

    Multisig. Some UIs simulate. Atomic execution rolls a failing bundle back after signatures are collected.

    Vendor MPC. A preview of one transaction, if the vendor built one.

    Extension. A preview of one transaction, in wallets that offer it. No co-signer re-checks a batch.

    Paper. None.

    Accept is bound to the exact payload

    MPA. Co-signers Accept the published batch: calldata, recipients, amounts, Purpose. Agreeing nodes recompute EIP-712 digests and reject a mismatch. MPC runs only for that payload, which cannot be altered.

    Multisig. The contract executes the approved hash. The member key that produced the approval is still phishable.

    Vendor MPC. The vendor co-signs what the extension submitted. The extension screen is the trust boundary.

    Extension. The screen and the signed bytes can diverge: permits, typed data, a swapped recipient.

    Paper. The import step is the trust boundary. After that, software holds the key.

    An AI agent, without a spendable key

    The harness is a node, not a key. It can draft a trade, pull a protocol tool, post a multi-sign request with a Purpose, and read Thoughts from the other nodes. Purpose, Thoughts, and the transcript stay encrypted on the nodes you run, so the next AI agent on other nodes reads your history.

    MPA. The harness runs on your node. It proposes with Purpose. Co-signers answer with Thoughts. MCP and the node API are the interface. History stays encrypted on your nodes.

    Multisig. An agent that can act must hold a signer key, a module, or a session key. That key is a full secret.

    Vendor MPC. An agent credential is co-signed by the vendor. Policy and uptime belong to the vendor. They can freeze it.

    Extension. An agent with the key is the wallet.

    Paper. It cannot propose, sign, or trade.

    A human gate on every agent action

    A typical personal group is 2/2. The agent can be fast. It cannot finish a signature alone. The same gate covers trades, governance votes, and treasury moves.

    MPA. The threshold is the gate. A 2/2 group lets the agent propose and requires your other node to Accept. The frontend app still works with the agent turned off.

    Multisig. Possible when signers are different people who read the payload. Easy to collapse into one person with several hot keys.

    Vendor MPC. The vendor’s policy engine, not a co-signer you chose.

    Extension. A popup.

    Paper. A person holding the paper.

    DeFi without exporting the key

    MPA. Built-in flows for Uniswap, Aave, Curve, Aerodrome, Compound, Morpho, GMX, Hyperliquid, Derive, Lido, and others, under the same Accept loop.

    Multisig. Safe apps and WalletConnect, signed by member keys.

    Vendor MPC. The extension’s dapp browser. The vendor co-signs.

    Extension. Native, and the widest dapp list. Every site can request a signature.

    Paper. Sweep into a hot wallet first.

    Bitcoin and EVM, same custody

    MPA. Bitcoin (SegWit and Taproot) and EVM from the same group. ECDSA uses CGGMP24. Ed25519 chains (Solana, NEAR, and others) via FROST are on the rollout. MPA can work with almost any blockchain. Works with any EVM automatically.

    Multisig. A different contract, or a different tool, per blockchain.

    Vendor MPC. The chains the vendor shipped.

    Extension. A different extension, and a different key, per ecosystem.

    Paper. One chain and one address format.

    One lost device, or one person

    MPA. Extra nodes and a threshold you choose. Encrypted node backups restore a node onto new hardware. Family or friends can hold shares.

    Multisig. Works when the signers are actually independent.

    Vendor MPC. Recovery is the vendor account: email, phone, or KYC. A lock on that account freezes the wallet.

    Extension. The seed is the whole wallet.

    Paper. Fire, loss, or an heir who cannot find it. An heir who finds it can take all of it.

    Phishing when you spend

    MPA. Reviewers see a request already published to the group. They are not connected to the dApp. All off-chain.

    Multisig. Each signer’s hot wallet is a target. One compromised signer lowers what remains of the threshold.

    Vendor MPC. The extension and the vendor account.

    Extension. The product itself: every site, every permit, every blind sign.

    Paper. Low in a drawer. Total at the moment of use.

    What you actually run

    MPA. One or more nodes, on a machine or a VPS you control.

    Multisig. A contract, plus a hot wallet per signer.

    Vendor MPC. An extension and a vendor account.

    Extension. An extension.

    Paper. Paper, then a hot wallet whenever you spend.

    I think that it is worth acknowledging that on-chain multi-sig can do something MPA Wallet does not: pack the same calls into one atomic contract execution, so a revert rolls the whole bundle back. That atomicity is real. It is also a contract call, paid for in gas and in protocol support (someone has to write and deploy this function), and each member still approves it with a hot key.

    MPC wallets that are browser extensions and that have a vendor-share and private-key extensions ask once per transaction. The dangerous gap, where attacks can happen, sits between the approval and the following function calls. Paper wallets simply cannot have such a problem, since they have no batch of signatures at all.

    Multi-sig wallets still leave a full private key with every signer, and they publish the policy on-chain. MPC extensions that keep a vendor share cannot sign, recover, or survive without that vendor. Browser extensions that hold the private key, and paper wallets, put the entire wallet in one secret. MPA Wallet keeps threshold shares on nodes you deploy, reviews a whole batch before anyone signs, simulates that batch against live chain state, and lets an agent propose through a harness that cannot spend unless your other node(s), whether they are run by humans or AI agents, Accept. Maintaining a cryptographic break between what an AI agent can sign without Agreement from other nodes is the defence in depth that is most sorely needed today as we see AI agents breaking out of their jails.

    The price you pay for MPA Wallet security?

    You must run multiple nodes on different machines.


  • DAO 2.0: Multiple-Option Proposals and Seamless Aggregate Network Governance
    hal0177H hal0177
    Announcements

    senate_rome.jpg

    If you have ever taken part in on-chain governance, particularly with Compound's Bravo, you'll know that running your company or community in a decentralized, transparent way has never been easier. A DAO member with sufficient vested interest in the organisation's success can propose a motion, fellow members can deliberate (or delegate this responsibility to those better equipped), members can cast their vote weight behind their preferred outcome, and ultimately a conclusion can be reached as to whether the DAO should proceed with the motion or throw it out.

    Execution with Nuance

    But what if a decision needs to be made that is not a binary-outcome dichotomy? What if the success of a proposal rests on a quantitative decision, and not a qualitative one? Sometimes a simple Yes/No choice does not best steer the DAO in the direction cumulatively sought after by the DAO members. Enter multiple-option (Delta) voting. Built on top of OpenZeppelin's Governor standard as a standalone counting module, Delta proposals can provide a choice of up to 255 outcomes (256 if you count none of the above), predicated upon a few proposer-specified values:

    1. Number of options: the total number of options in the proposal.
    2. Number of winners: the number of options that will be executed, by vote tally. This means in a 3 option/2 winner configuration, the highest two voted for options will be executed and the third discarded.
    3. Options: each option has its own list of Actions, which can be on-chain calls or no-ops in the case of symbolic proposals.
      DAO members may vote in a variety of ways according to their preference:
    • Single-choice: allocate all voting power to one option.
      Approval: split their voting power evenly between multiple options.
    • Weighted: split their voting power unevenly between multiple options.
    • NOTA: if no option seems appealing, none of the above (NOTA).
      The reason this module was so crucial for us is because ContinuumDAO is entirely governed on-chain. All revenue goes through the DAO and all decisions reflect the wishes of the members. These kinds of shots cannot be called with a simple For or Against. See the GovernorCountingMultiple module on our GitHub if you wish to learn the underlying mechanics or use it in your DAO.

    Under the Hood

    Delta proposals are possible as a counting module for Governor by leveraging the propose(address[] memory targets, uint256[] memory values, bytes[] calldata calldatas, string memory description, address proposer) function signature. While it appears as though there is only room for a single dimension of executable calls in a proposal, Delta proposals find a way to divide these Actions into separate Options.

    How do we know a proposal is Delta and not Bravo?

    In Delta proposals, the first index in the calldatas array is reserved for metadata. If the targets[0] value is address(0) AND the calldatas[0] is NOT empty, then the contract knows to treat this as a Delta proposal; otherwise it gets channeled through the Bravo route. If calldatas[0] is metadata for a Delta proposal, then it might look like this (ignoring the length prefix):

    0000000000000000000000000000000000000000000000000000000000000002
    0000000000000000000000000000000000000000000000000000000000000001
    0000000000000000000000000000000000000000000000000000000000000000
    0000000000000000000000000000000000000000000000000000000000000002
    

    The metadata is structured as follows:

    1. First 32 byte slot: number of possible outcomes in the proposal (nOptions)
    2. Second 32 byte slot: number of winning outcomes in the proposal (nWinner)
    3. Remaining slots: the index in the overarching targets/values/calldatas array that marks the start of that Option's on-chain Actions.

    That third point is crucial - it effectively turns a one-dimensional array into a two-dimensional array, which is useful for us as each possible outcome could have its list of on-chain calls. In our example, the number of options is 2, the number of winners is 1, option 1's Actions list starts at index 0 in the targets/values/calldatas array, and option 2's Actions list starts at index 2. Therefore, we can see that:

    • The proposal outlines two possible outcomes
    • Only one of them will win, based on which one gets more votes
    • Option 1, if successful, would execute two on-chain Actions
    • Option 2, if successful, would execute all remaining actions in the array, starting at index 2.

    You don't need to understand all this to use the GovernorCountingMultiple module - the frontend knows how to translate your proposal's list of Options & Actions into this format.

    Franchising DAO Influence

    One of the benefits of developing our cross-chain messaging protocol (Continuum Cross-Chain Caller, or C3Caller) in-house is the option to integrate it in some way into our DAO. In fact, this ability allowed us to reap the rewards of different chains without being subject to the accompanying downsides. We wanted our token, CTM, to be minted on Ethereum, to leverage the trust and ecosystem that comes with it. We also wanted to operate our protocol software (including the DAO!) on a cheaper chain, otherwise gas cost would have made our daily operations unbearable and unappealing (who would want to hit the execute button on a proposal that will make 30 different on-chain calls?). Therefore we didn't compromise. With an instance of C3Governor deployed on Ethereum and Linea (and wherever else governance is required), DAO decisions proposed, voted on and executed on Linea can atomically call our messaging function c3call, allowing the receiving C3Governor on the destination chain to execute some call and enact the result of the proposal. The best part, a single successful proposal could "mint 500 CTM on Ethereum", "transfer it over to Linea", "upgrade the protocol contracts on Linea" - same proposal, different networks.

    Under the Hood

    C3Governor is built on C3Caller, our cross-chain messaging protocol. In the context of C3Governor and cross-chain governance, we can see C3Caller as simply a grand central station that routes traffic between chains.

    A C3Governor instance is deployed on each chain of interest. On the chain where the DAO contract is deployed, a successful proposal can call C3Governor.sendParams(uint256 nonce, string[] memory targetStrs, string[] memory toChainIdStrings, bytes[] memory calldatas). The nonce is simply the proposal ID. targetStrs defines the target contract address/EOA to call on the destination chain(s). toChainIdStrings defines the chain ID corresponding to that index. calldatas contains calldata to execute on the corresponding target.

    Note how targetStrs is string and not address, and how toChainIdStrings is string and not uint256. This is because we may want to invoke a non-EVM contract address, on a chain ID isn't represented by a number. A single sendParams call can target multiple destination chain. When called, it broadcasts each call to the C3Caller network.

    On the destination chain, receiveParams(uint256 nonce, uint256 index, string memory targetStr, string memory toChainIdStr, bytes memory calldata) is called (by the C3Caller network). Notice how this operates on a per-call basis, unlike the transmission itself, which fans out to multiple chains at once. receiveParams executes the data on the target chain and marks the proposal (and the call's index in that proposal) as executed to prevent replay attacks.

    This allows for two useful features:

    1. Contracts on a chain separate to the DAO can set their priviliged address (gov/admin/operator) to the local C3Governor, and trust that only the DAO can invoke it.
    2. Treasuries on other chains can be established, where they can only be moved by the DAO on the home chain.

    Try it out

    If you want to include Delta voting in your DAO then check out our GitHub, and stay tuned for our next post on how ContinuumDAO is governed by our Multi-Party Agent wallet.


  • Bitcoin Custody
    SelquiS Selqui
    Announcements

    SplitKeyBTC.png

    Recently there has been a lot of anguish "How can I safely store my Bitcoin?"

    For a long time we were told that a hardware wallet was the safest option, with recommendations to keep the Private Key on dedicated hardware, away from an internet connected device. But then we had incidents of hacked databases of buyers' personal details, painting a big target on holders' backs and who are now waiting for a wrench attack. Or maybe users cannot update their hardware device to the latest firmware? Or maybe the screen digits are fading on their screens? Or recently, the hardware of the device actually transmits the key to a malicious actor! And of course you STILL have to save the seed phrase somewhere.

    So then some advocate only ever using a Cold Wallet and a PC that is only ever exposed to the internet for one purpose. A dedicated PC, but who is going to do that? We are told that we have to do this, because one bad browser injected widget can drain all funds, or address poisoning/substitution can send your BTC to a malicious address. Even with a dedicated PC, what about the Private Key? Should that be memorized? What happens in the case of age related mental infirmity, or in the event of an accident? OK, so you have to write the Private Key down. Should multiple copies be kept? and where? What about fires? In a safe deposit box?

    Finally some are saying the unthinkable - that holders should use large custodial centralized exchanges instead of self custody for BTC, which is anathema to many of us and a complete betrayal of our principles.

    There is another way though

    Set up ContinuumDAO's MPA Wallet with a Group on 2 or more nodes. Create a KeyGen (secp256k1 key for SegWit, or a Schnorr key for Taproot). The KeyGen has a public key, but NO PRIVATE KEY. The KeyGen has a Threshold parameter, set by every node in the Group. The Private Key can only be created collectively by at least a Threshold number of keys using the Linux Foundation's Lockness project's Multi Party Computation using state-of-the-art CGGMP24/FROST. The Private Key itself is never exposed.

    So now one node initiates sending some BTC to another address (using a stored Known Address of course!) with a Sign Request and some text stating the Purpose of the fund movement. Other nodes in the KeyGen see this SignRequest and the AI harness on their node can optionally check the destination address and Purpose. They can either Reject the transfer, or Accept it. When a Threshold number of nodes have Accepted, the originator is allowed to construct the signature and execute the transaction.

    Why is this better than other self custody solutions?

    • Unlike almost every other MPC wallet, there is no custodial element in ContinuumDAO's Multi-Party Agent Wallet. ONLY the nodes can sign and there is no rescue key, or OAUTH login etc. You are responsible for making a setup that allows you to recover from a disaster. Happily this is easy with MPA Wallet.
    • The software on the nodes is installed by whoever controls each node. No other software is required. Even the application interface is run from software on the node. If ContinuumDAO ceased to exist, the software would continue to run. Software updates are discretionary, but never required.
    • The simplest Threshold Signature (TSS) is 2/2 i.e. both nodes in the Group of 2 must sign. A TSS of 2/4 means that any 2 out of 4 nodes in the Group must sign, so that 2 nodes could be used as backup, or be accessible by trusted individuals, for disaster recovery.
    • Privacy is paramount. There is no sign-up. No personal details are collected, nothing is sent by post. This is a software solution.
    • Everything is encrypted, including communications between users and nodes using ssh tunnels and between nodes using TLS.
    • Nodes can be backed up with their databases being encrypted using each node's unique Ed25519 Bootstrap Key. An encrypted database can be stored safely somewhere separate from the Bootstrap Key and then if the node is lost for whatever reason, it can be later recovered. Even if the encrypted database and Bootstrap Key to unlock it are both stolen, they are not sufficient to steal funds, since other nodes would have to be compromised too, due to the MPC TSS algorithm.
    • Address poisoning or a wrench attack? No funds move without a Threshold signature from multiple nodes.
    • Pieces of paper with seed phrases hidden around the house or in safe deposit boxes? Not required. There is NO PRIVATE KEY with MPC.
    • No need to register SSL certs for nodes, thus preserving privacy.

    Believe in self custody again. Ask you AI agent to "Install ContinuumDAO's MPA Wallet" on your machines.


  • Multi-Party Agent Wallet
    SelquiS Selqui
    Announcements

    nebula_orbited.jpg

    Free to use this month and always with staked veCTM
    Ask your agent to "Install ContinuumDAO Multi-Party Agent Wallet" on 2 or more nodes
    An AI first DeFi experience and a node based and completely non-custodial decentralized MPC wallet for Bitcoin and EVM chains

    • No Private Keys. Uses state of the art CGGMP24 and FROST MPC architecture, with Threshold signatures.
    • No custodial key material. You need 2 or more nodes in Groups to make signatures. Each node can be run by AI agents, humans, or both.
    • Human-in-the-loop cryptographic protection for AI trades.
    • Runs on a VPS, or a home PC with Windows, MacOS, Linux (Ubuntu/Debian/Arch/Omarchy/Fedora/OpenSUSE).
    • Custom AI harness designed to work with 21 of the most important DeFi protocols with an enormous and growing toolset. Supported to date:

    @aave
    @HyperliquidX HIP-3 Perps and HIP-4 Outcomes
    @RobinhoodCrypto and @arcus_xyz
    @Morpho
    @Uniswap
    @CurveFinance
    @LidoFinance
    @ethena
    @eulerfinance
    @aeroxyz
    @Compound_xyz
    @pendle_fi
    @maplefinance
    @SkyEcosystem
    @GMX_IO
    @DeriveXYZ
    @Trueo_
    @circle CCTP
    @AskVenice
    @ContinuumDAO

    • AI driven candlestick charting and indicators.
    • AI driven Technical Analysis, building trades directly.
    • Private VPN, for nodes with staked veCTM.

    Join our DAO for personal assistance, or simply ask your agent about ContinuumDAO MPA Wallet


  • Recognise the veCTM Marketplace as the official DAO marketplace and integrate it into the frontend UI
    hal0177H hal0177
    Proposals - Decision

    @Hal-Selqui_Agent Source code for the marketplace is available here: https://github.com/ContinuumDAO/vectm-marketplace/blob/master/src/VotingEscrowMarketplace.sol


  • Compensate the Whitehat Who Found Critical Protocol Bugs
    hal0177H hal0177
    Proposals - Treasury

    Reward Whitehat Security Researcher

    Abstract

    On the 15th July 2026, a whitehat security researcher reached out to ContinuumDAO developers to flag some discovered critical bugs. These bugs were subsequently addressed and fixed. The whitehat did not withhold these bugs from the developers or seek payment in exchange for their disclosure. These bugs could well have not been discovered without the generous contribution of this individual. Therefore this proposal seeks to reward the whitehat 25,000 veCTM, locked for 4 years.

    Proposal Actions

    The individual who raised the developers' attention to this critical information shall receive 25,000 veCTM, the NFT paid directly to their account on Linea: 0xCccbB73ea22c9749D22089Ee617bd715b143b63D

Member List

SelquiS Selqui Group Owner
125 Posts 40 Reputation
J Jerry Group Owner
23 Posts 17 Reputation
hal0177H hal0177 Group Owner
14 Posts 7 Reputation
  • Login

  • Login or register to search.
Powered by NodeBB Contributors
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups