Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added bitcoin #12560

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

added bitcoin #12560

wants to merge 6 commits into from

Conversation

elRaulito
Copy link
Contributor

NOTE

Please enable "Allow edits by maintainers" while putting up the PR.


  • If you would like to add a volume adapter please submit the PR here.
  • If you would like to add a liquidations adapter, please refer to this readme document for details.
  1. Once your adapter has been merged, it takes time to show on the UI. If more than 24 hours have passed, please let us know in Discord.
  2. Sorry, We no longer accept fetch adapter for new projects, we prefer the tvl to computed from blockchain data, if you have trouble with creating a the adapter, please hop onto our discord, we are happy to assist you.
  3. Please fill the form below only if the PR is for listing a new protocol else it can be ignored/replaced with reason/details about the PR
  4. For updating listing info It is a different repo, you can find your listing in this file: https://github.com/DefiLlama/defillama-server/blob/master/defi/src/protocols/data2.ts, you can edit it there and put up a PR
  5. Do not edit/push package-lock.json file as part of your changes, we use lockfileVersion 2, and most use v1 and using that messes up our CI
  6. No need to go to our discord and announce that you've created a PR, we monitor all PRs and will review it asap

Name (to be shown on DefiLlama):
Twitter Link:
List of audit links if any:
Website Link:
Logo (High resolution, will be shown with rounded borders):
Current TVL:
Treasury Addresses (if the protocol has treasury)
Chain:
Coingecko ID (so your TVL can appear on Coingecko, leave empty if not listed): (https://api.coingecko.com/api/v3/coins/list)
Coinmarketcap ID (so your TVL can appear on Coinmarketcap, leave empty if not listed): (https://api.coinmarketcap.com/data-api/v3/map/all?listing_status=active,inactive,untracked&start=1&limit=10000)
Short Description (to be shown on DefiLlama):
Token address and ticker if any:
Category (full list at https://defillama.com/categories) *Please choose only one:
Oracle Provider(s): Specify the oracle(s) used (e.g., Chainlink, Band, API3, TWAP, etc.):
Implementation Details: Briefly describe how the oracle is integrated into your project:
Documentation/Proof: Provide links to documentation or any other resources that verify the oracle's usage:
forkedFrom (Does your project originate from another project):
methodology (what is being counted as tvl, how is tvl being calculated):
Github org/user (Optional, if your code is open source, we can track activity):

@llamatester
Copy link

Error while running adapter at projects/fluidtokens:

SyntaxError: Unexpected token ';'
Truncated error stack:

    at /home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/test.js:127:12
    at Object.<anonymous> (/home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/test.js:259:3)
Error saving cache: Error: ENOENT: no such file or directory, open '/home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/node_modules/@defillama/sdk/build/util/local_cache/zlib-1.0/BlockCache.json'

@llamatester
Copy link

Error while running adapter at projects/fluidtokens:

SyntaxError: Unexpected identifier
Truncated error stack:

    at /home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/test.js:127:12
    at Object.<anonymous> (/home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/test.js:259:3)
Error saving cache: Error: ENOENT: no such file or directory, open '/home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/node_modules/@defillama/sdk/build/util/local_cache/zlib-1.0/BlockCache.json'

@llamatester
Copy link

Error while running adapter at projects/fluidtokens:

Error: 
    Found export keys that were not part of specification: bitcoin_tvl

    List of valid keys: 
				
				tvl
				staking
				methodology
				pool2
				misrepresentedTokens
				fetch
				timetravel
				borrowed
				start
				doublecounted
				hallmarks
				isHeavyProtocol
				deadFrom
				ownTokens
				vesting
    
Error saving cache: Error: ENOENT: no such file or directory, open '/home/runner/work/DefiLlama-Adapters/DefiLlama-Adapters/node_modules/@defillama/sdk/build/util/local_cache/zlib-1.0/BlockCache.json'

@llamatester
Copy link

The adapter at projects/fluidtokens exports TVL:

cardano-staking           4.89 M
staking                   4.89 M
bitcoin                   1.57 M
cardano                   1.57 M
cardano-borrowed          691.23 k
borrowed                  691.23 k

total                    3.15 M 

@elRaulito
Copy link
Contributor Author

@g1nt0ki I think I am doing something wrong here, I should have around 500k $ of Bitcoin TVL from the API, but I think I am not defining it in the right way now that I added bitcoin

Copy link
Member

@g1nt0ki g1nt0ki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no, this will duplicate tvl between bitcoin & cardano

you need to create a new tvl function for bitcoin, also, for bitcoin, we need the staking addresses, we dont accept api for it, you can add your protocol addresses here:

https://github.com/DefiLlama/DefiLlama-Adapters/blob/main/projects/helper/bitcoin-book/index.js

and use it like: https://github.com/DefiLlama/DefiLlama-Adapters/blob/main/projects/chakra/index.js#L6

@g1nt0ki g1nt0ki self-assigned this Dec 5, 2024
@llamatester
Copy link

The adapter at projects/fluidtokens exports TVL:

cardano-staking           4.92 M
staking                   4.92 M
cardano                   1.08 M
cardano-borrowed          707.18 k
borrowed                  707.18 k
bitcoin                   514.35 k

total                    1.59 M 

@elRaulito
Copy link
Contributor Author

@g1nt0ki managed to fix, thanks a lot

However we have a not-custodial time lock script, so every user has his own address, like shown at this link

https://api2.fluidtokens.com/get-stake-amount-addresses?nameStakeVault=RAREPUPSPUPCASH

We are similar to what Babylon is doing

https://github.com/DefiLlama/DefiLlama-Adapters/blob/main/projects/babylon/index.js

and I see they also use a API, probably for the same reason, many addresses to track

@g1nt0ki
Copy link
Member

g1nt0ki commented Dec 6, 2024

hi @elRaulito we missed babylon, and currently pushing them to share bitcoin address list like the rest of the protocols.

Thought a bit more about this, think it is better to create new listing for bitcoin staking part. then we will create parent listing for you, like we have for aave: https://defillama.com/protocol/aave


This is just for my curiosity, how does the locking work? it is not like bitcoin supports proper scripting/smart contracts

@elRaulito
Copy link
Contributor Author

thanks a lot @g1nt0ki

Then I should wait for an update on your side right?

@elRaulito
Copy link
Contributor Author

@g1nt0ki completly missed the question

  • Bitcoin does not have smart contracts however has time lock scripts
  • Users can lock a certain asset until a certain date under their key
  • This makes it not custodial because they will be the only ones able to spend and also creates a lock time staking structure
  • Where do rewards come from? Projects, revenue share or just airdrops

Tldr: Bitcoin allow to say I won't spend this until X date, project can verify it onchain and reward users that do it

@llamatester
Copy link

The adapter at projects/fluidtokens exports TVL:

cardano-staking           4.90 M
staking                   4.90 M
cardano                   1.09 M
cardano-borrowed          666.34 k
borrowed                  666.34 k
bitcoin                   400.57 k

total                    1.49 M 

@g1nt0ki
Copy link
Member

g1nt0ki commented Dec 9, 2024

@g1nt0ki completly missed the question

* Bitcoin does not have smart contracts however has time lock scripts

* Users can lock a certain asset until a certain date under their key

* This makes it not custodial because they will be the only ones able to spend and also creates a lock time staking structure

* Where do rewards come from? Projects, revenue share or just airdrops

Tldr: Bitcoin allow to say I won't spend this until X date, project can verify it onchain and reward users that do it

got it. still feels like it is a different product to what we have listed now, can you create a new adapter and compute tvl on chain using calls to bitcoin chain, you can use this method to compute brc20 token tvl: https://github.com/DefiLlama/DefiLlama-Adapters/blob/main/projects/helper/chain/brc20.js#L6

@elRaulito
Copy link
Contributor Author

@g1nt0ki won't it eventually go in time-out? we have more or less 1000 users, each of them has their address to stake and we should compute the sum of the TVL

We can even provide the list of all these addresses and the tvl of each of them if that's required, we just don't want to slow down on your side

@g1nt0ki
Copy link
Member

g1nt0ki commented Dec 9, 2024

@g1nt0ki won't it eventually go in time-out? we have more or less 1000 users, each of them has their address to stake and we should compute the sum of the TVL

We can even provide the list of all these addresses and the tvl of each of them if that's required, we just don't want to slow down on your side

yeah, list of addresses and balances would be really helpful, thanks, this way, even if the api is not reachable, we will be able to compute tvl (I will cache your api response)

@g1nt0ki
Copy link
Member

g1nt0ki commented Dec 9, 2024

another reason why we prefer the address and balance list is, we want to price tokens using our coins api, this way all projects use the same token price and users can see token breakdown of a project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants